二维码生成图片 canvas.toDataURL()降低图片质量,以减少图片上传大小

本文介绍了如何使用canvas和jQuery来降低jpg/jpeg格式二维码图片的质量,从而减少图片上传的大小。通过设置不同的encoderOptions值,可以在保持可接受的视觉效果的同时,将图片大小控制在特定范围。不过,这种方法不适用于png和gif格式的图片,因为它们的大小可能会增加。代码示例展示了如何处理本地图片,并提供了调整图片质量的选项。
摘要由CSDN通过智能技术生成
  1. 目前只针对jpg/jpeg格式少部分测试,图片最终是以降低图片质量来限制图片大小,与原图差异较大,如果图片本身是以固定宽高(约150px * 150px)展示时,看不出来差异。
  2. canvas针对png、gif图片的质量降低,处理后图片大小反而增加。不适用于png、gif格式图片
  3. canvas转换成url前,需要已加载一张图片(称为原图),因此前后将保留两张图片的加载(了解)
  4. 代码仅处理了本地图片jpg转换(使用new FileReader()创建本地图片路径并以此加载原图),如果需要处理远程图片,则不需要借助new FileReader()来创建本地图片url,但需要为原图增加属性crossOrigin并赋值Anonymous字符串,且原图在页面中加载,才能使用canvas做图片大小转换
  5. 从控制台输出来看,应该在是图片大小的2.7倍左右。

<input type="file" name="" id="file"> <img src="" alt="" id="preimg" style="width: 150px; height: 150px;"/> <img src="" alt="" id="img" style="width: 150px; height: 150px;"/>

// 测试后定义降低图片质量的encoderOptions值
// 转换后的大小不能保证准确,尽量在800KB以下了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值