Javascript按比例压缩图片,解决onload无法读取图片的高度和宽度问题
 /**//**
/**//** * 自动按比例压缩图片
 * 自动按比例压缩图片 * i--图片对象
 * i--图片对象 * w--最大宽度
 * w--最大宽度 * h--最大高度
 * h--最大高度 */
 */ function fixImage(i,w,h)
function fixImage(i,w,h) {
{ var ow = i.width;
  var ow = i.width; var oh = i.height;
    var oh = i.height; var rw = w/ow;
    var rw = w/ow; var rh = h/oh;
    var rh = h/oh; var r = Math.min(rw,rh);
    var r = Math.min(rw,rh); if (w ==0 && h == 0)
    if (w ==0 && h == 0) {
{ r = 1;
        r = 1; }else if (w == 0)
    }else if (w == 0) {
{ r = rh<1?rh:1;
        r = rh<1?rh:1; }else if (h == 0)
    }else if (h == 0) {
{ r = rw<1?rw:1;
        r = rw<1?rw:1; }
    } if (ow!=0 && oh!=0)
    if (ow!=0 && oh!=0) {
{ i.width = ow * r;
    i.width = ow * r; i.height = oh * r;
      i.height = oh * r; }else
    }else {
{ var __method = this, args = $A(arguments);
      var __method = this, args = $A(arguments); window.setTimeout(function()
        window.setTimeout(function()  {
{ fixImage.apply(__method, args);
          fixImage.apply(__method, args); }, 200);
        }, 200); }
    } i.onload = function()
    i.onload = function() {}
{} }
}用法如下:
1. 图片按比例压缩为120 X 60宽度,范围之内的图片不压缩
<img src="test.jpg" onload="fixImage(this,120,60)"/>
2.图片只按高度比例压缩,或者只按高度比例压缩
<img src="test.jpg" onload="fixImage(this,0,60)"/>
<img src="test.jpg" onload="fixImage(this,120,0)"/>
3.不压缩,按原图显示
<img src="test.jpg" onload="fixImage(this,0,0)"/>
 
                     
                    
                 
                    
                 用法如下:
1. 图片按比例压缩为120 X 60宽度,范围之内的图片不压缩
2.图片只按高度比例压缩,或者只按高度比例压缩
3.不压缩,按原图显示
用法如下:
1. 图片按比例压缩为120 X 60宽度,范围之内的图片不压缩
2.图片只按高度比例压缩,或者只按高度比例压缩
3.不压缩,按原图显示
    
 
     
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号