canvas压缩图片的秘密

本文探讨了canvas在压缩大图片时的作用,解释了为何图片尺寸小会导致压缩效果不佳,并介绍了处理手机拍摄图片方向变化的方法。通过exif-js获取图片Orientation值来旋转画布。建议在比较处理后与原始文件大小后选择合适的一份上传。
摘要由CSDN通过智能技术生成

开篇

首先明确canvas只适合压缩大的图片,图片size过小并不能有什么用处。那么为什么size过小canvas并不能压缩呢

  • 如果不压缩质量,经过canvas的图片变大了
  • 图片在经过img标签的时候方向改变了
  • 什么时候使用canvas压缩

我们来看看canvas toDataURL toBlob 方法

// 不压缩,原画质
canvas.toBlob(callback, "image/jpeg", {quality: 1});
canvas.toDataURL( "image/jpeg", {quality: 1});
复制代码

图片在经过canvas后变大了,口怕。我们对比了两组不同的数据,我们发现原始图片越大,变大的比例越小,如果一张图片越小经过canvas的图片变大的比例也就越大。那么为什么会这样呢

5.3M
5284528<6228026

229kb
229214<242046

60kb
60022<229214
复制代码

图片越小说明本身被压缩的越厉害,其中存在的空白像素点越多,进过drawImage绘制的时候,drawImage才不会去管空白像素,canvas本身绘制的是矢量图所以没有像素的概念࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值