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的范围之内。