按比例自动缩放图片的大小

来源:互联网 发布:顶尖数据恢复下载 编辑:程序博客网 时间:2024/05/07 13:06

1、简单的按比例缩放图片:

    设置好图片的宽度,图片就会自动缩放高度。比如:<img src="http://img93.pp.sohu.com/images/blog/2006/10/21/17/7/10efe26831e.jpg" onload='javascript:if(this.width>180)this.width=180' alt="用户头像" />

或者:

if(width>164){
   imgObj.width=164;
   imgObj.height=imgObj.height/(imgObj.width/164);
 }

    缺点就是不能控制高度。

2、完全可控制的按比例缩放图片:

    function ResizeImage(obj, MaxW, MaxH) {

if (obj != null) imageObject = obj;

var state=imageObject.readyState;

if(state!='complete') {

setTimeout("ResizeImage(null,"+MaxW+","+MaxH+")",50);

return;

}

var oldImage = new Image();

oldImage.src = imageObject.src;

var dW=oldImage.width;

var dH=oldImage.height;

if(dW>MaxW || dH>MaxH)

{ a=dW/MaxW; b=dH/MaxH; if(b>a) a=b; dW=dW/a; dH=dH/a; }

if(dW > 0 && dH > 0)

{ imageObject.width=dW; imageObject.height=dH; }

}

    调用方法:<img oncontextmenu="return false;" id="photoImg" name="photoImg" src="images/images.gif" onclick="openPicWin(this.src)" onload="ResizeImage(this,400,253);">

    ResizeImage(this,400,253)调用中 this是图片的路径,400和253分别是自己设定的宽度和高度。如果宽度<400,高度<253,图片就显示原来的大小。相反如果图片宽度>400图片宽度就缩小到400,这个时候如果高度>253图片会继续按比例缩放,直到进入到400和253的范围之内。