香港马会开奖结果,六合彩资料 六开彩开奖现场直播 六合彩资料大全 地下六合彩 六合彩图库 六合彩图 香港六合彩网站 六合彩大全 香港六合彩图库 六合彩开 六合彩挂牌 香港六合彩挂牌 六合彩票 六合彩现场直播 六合彩玄机 香港六合彩公司 www.dq-ccg.com六合彩官网 香港六合彩特码 六合彩管家婆 六合彩走势图 六合彩结果 六合彩马报 香港六合彩现场直播 六合彩白小姐 白小姐六合彩 六合彩直播 六合彩特码资料 六合彩免费资料 六合彩曾道人 香港六合彩资料大全 六合彩开码结果 香港六合彩管家婆 六合彩综合资料 香港六合彩网址 六合彩彩图 香港六合彩图 六合彩信息 今晚六合彩开什么 六合彩开什么 六合彩图纸 香港六合彩特码资料 香港马会六合彩 六合彩图片 六合彩预测 香港六合彩网 香港六合彩直播 香港地下六合彩 香港六合彩官方网站 六合彩全年资料 六合彩脑筋急转弯 六合彩官方网站 六合彩查询 六合彩开码现场 六合彩报 香港六合彩论坛 六合彩天线宝宝 香港六合彩结果

Baidu

一聚教程网:一个值得你收藏的教程网站

Js利用Canvas实现图片压缩功能

时间:2017-10-10 09:55:24 编辑:猪哥 来源:转载

最近做的APP项目涉及到手机拍照上传图片,因为手机拍照的图片通常都比较大,所以上传的时候就会很慢。为此,需要对图片进行压缩处理来优化上传功能。以下是具体实现:

/* 
 * 图片压缩
 * img    原始图片
 * width   压缩后的宽度
 * height  压缩后的高度
 * ratio   压缩比率 
 */
 function compress(img, width, height, ratio) {        
   var canvas, ctx, img64;
        
   canvas = document.createElement('canvas');        
   canvas.width = width;
   canvas.height = height;
        
   ctx = canvas.getContext("2d");        
   ctx.drawImage(img, 0, 0, width, height);
        
   img64 = canvas.toDataURL("image/jpeg", ratio);
        
   return img64;
 }

上面是一个图片压缩函数,返回 base64 格式的图片数据。 其中压缩比率取值(0 - 1 之间)越大图片质量越高。建议不要将图片转为 png 格式,因为转为 png 格式,图片的 base64 比转为 jpeg 的要长不少。下面是实际调用:

var image = new Image();
image.src = "/img/test.jpg";
      
image.onload = function(){
  var img64 = compress(image, 500, 400, 0.7);
  document.getElementById("test").src = img64;
}

注意: 压缩方法的调用以及图片src赋值必须放在图片的 onload 方法里面。因为只有等图片加载完成后才能进行压缩处理,从而转换为base64 进行赋值。 如果放在 onload 方法外面,则可能压缩代码无效,或者会生成一张纯黑色的图片。

文章评论

热门栏目

香港马会开奖结果,六合彩资料 六开彩开奖现场直播 六合彩资料大全 地下六合彩 六合彩图库 六合彩图 香港六合彩网站 六合彩大全 香港六合彩图库 六合彩开 六合彩挂牌 香港六合彩挂牌 六合彩票 六合彩现场直播 六合彩玄机 香港六合彩公司 六合彩官网 香港六合彩特码 六合彩管家婆 六合彩走势图 六合彩结果 六合彩马报 香港六合彩现场直播 六合彩白小姐 白小姐六合彩 www.dq-ccg.com六合彩直播 六合彩特码资料 六合彩免费资料 六合彩曾道人 香港六合彩资料大全 六合彩开码结果 香港六合彩管家婆 六合彩综合资料 香港六合彩网址 六合彩彩图 香港六合彩图 六合彩信息 今晚六合彩开什么 六合彩开什么 六合彩图纸 香港六合彩特码资料 香港马会六合彩 六合彩图片 六合彩预测 香港六合彩网 香港六合彩直播 香港地下六合彩 香港六合彩官方网站 六合彩全年资料 六合彩脑筋急转弯 六合彩官方网站 六合彩查询 六合彩开码现场 六合彩报 香港六合彩论坛 六合彩天线宝宝 香港六合彩结果