JavaScript,等比例缩放图片的函数

    在Web上显示图片,通常都会有图片显示比例问题,如果不给<img />限制width和height,那么如果图片大了就会将整个页面挤乱,图片小了又会使图片失真。
    我的需求如下:
        1、预先定义好图片显示的标准宽度和高度。
        2、如果图片的大小超过了标准定义,那么等比例压缩图片。
        3、如果图片的大小等于标准定义,那么按照标准宽度和高度显示图片。
        4、如果图片的大小小于标准定义,那么不对图片进行任何压缩处理。
    可能是我搜索的关键字不对吧,在网上找了很长时间,才找到,感觉很好使。

 

代码如下
<script language="JavaScript">
<!--
//图片按比例缩放
var flag=false;
function DrawImage(ImgD,iwidth,iheight){
    //参数(图片,允许的宽度,允许的高度)
    var image=new Image();
    image.src=ImgD.src;
    if(image.width>0 && image.height>0){
    flag=true;
    if(image.width/image.height>= iwidth/iheight){
        if(image.width>iwidth){ 
        ImgD.width=iwidth;
        ImgD.height=(image.height*iwidth)/image.width;
        }else{
        ImgD.width=image.width; 
        ImgD.height=image.height;
        }
        ImgD.alt=image.width+"×"+image.height;
        }
    else{
        if(image.height>iheight){ 
        ImgD.height=iheight;
        ImgD.width=(image.width*iheight)/image.height;       
        }else{
        ImgD.width=image.width; 
        ImgD.height=image.height;
        }
        ImgD.alt=image.width+"×"+image.height;
        }
    }
}
//-->
</script>


调用:<img src="images/toplogo.gif" οnlοad="javascript:DrawImage(this,100,100)">

 

另一种写法:

<SCRIPT   LANGUAGE="JavaScript"> 
  <!-- 
  function   setImg(img,   width,   height) 
  { 
      var   s1   =   width/height; 
      var   s2   =   img.offsetWidth/img.offsetHeight; 
      if(s1>s2)   img.height   =   img.offsetHeight>height   ?   height   :   img.offsetHeight; 
      else     img.width   =   img.offsetWidth>width   ?   width   :   img.offsetWidth; 
  } 
  //--> 
  </SCRIPT> 
  <img   border=0   src="http://community.csdn.net/images/CSDN_logo.GIF" 
    οnlοad="setImg(this,   100,   100)"><br> 
  <img   border=0   src="http://community.csdn.net/images/CSDN_logo.GIF" 
    οnlοad="setImg(this,   50,   100)"><br> 
  <img   border=0   src="http://community.csdn.net/images/CSDN_logo.GIF" 
    οnlοad="setImg(this,   80,   50)"><br>

 
 

 <SCRIPT   LANGUAGE="JavaScript"> 
  //按比例缩放图片 
  <!-- 
  function   setImg(img,width,height){ 
  //参数说明:img:图片对象;width:允许的最大宽度;height:允许的最大高度 
  var   scale_w=img.width/width;   //按宽度得到的缩放比例 
  var   scale_h=img.height/height;//按高度得到的缩放比例 
  var   scale=scale_w>scale_h?scale_w:scale_h;//得到缩放比例(取最大值) 
  img.width=img.width/scale;//缩放宽度 
  //img.height=img.height/scale;     //这一句加上后高度会按比例缩小两次,奇怪,代码中前面未对高度作修改。 
  return   false; 
  } 
  //--> 
  </SCRIPT> 
  <BODY   οnlοad="javascript:setImg(bm1,200,200);"> 
  <img   src="aa.jpg"   id="bm1"   border="0"></img>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值