JavaScript控制图片等比例缩放

图片等比例缩放

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

JavaScript代码
  1. function DrawImage(ImgD,iwidth,iheight){   
  2.     //参数(图片,允许的宽度,允许的高度)   
  3.     var image=new Image();   
  4.     image.src=ImgD.src;   
  5.     if(image.width>0 && image.height>0){   
  6.       if(image.width/image.height>= iwidth/iheight){   
  7.           if(image.width>iwidth){     
  8.               ImgD.width=iwidth;   
  9.               ImgD.height=(image.height*iwidth)/image.width;   
  10.           }else{   
  11.               ImgD.width=image.width;     
  12.               ImgD.height=image.height;   
  13.           }   
  14.       }else{   
  15.           if(image.height>iheight){     
  16.               ImgD.height=iheight;   
  17.               ImgD.width=(image.width*iheight)/image.height;           
  18.           }else{   
  19.               ImgD.width=image.width;     
  20.               ImgD.height=image.height;   
  21.           }   
  22.       }   
  23.     }   
  24. }  

调用:<img src=”images/toplogo.gif” onload=”javascript:DrawImage(this,100,100)”>

如果图片较大,建议在图片标签里面同时设置期望的图片大小,这样不会导致页面在加载中撑开,该大小不会影响最终缩放效果。可以修改上面的代码为:

<img src=”/images/NullPic.gif” alt=”自动缩放后的效果” width=”200″ height=”200″ onload=”javascript:DrawImage(this,100,100)” />

你可能感兴趣的:(Web)