为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬指点哈!怎么利用toDataURL压缩图片至固定大小怎么回事哈啊?

求大佬指点哈!怎么利用toDataURL压缩图片至固定大小怎么回事哈啊?

aluckdog 2019-06-09 11:01:54
在使用canvas的toDataURL方法压缩图片的时候如何计算quality使图片压缩至固定大小。用size算比例好像不行。
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

做过类似的工作,在前端采用canvas压缩jpg图片,但是代码没有留存下来,大致的思路是采用二分法,也就是设定目标文件体积和精度,然后反复压缩直到文件体积与目标体积之差小于设定的精度。采用二分法的原因是生成jpeg的算法的压缩比和图片色彩丰富度、图片频率等图片本身的性质相关,因此quality和压缩比的关系不太好计算(计算过程需要对压缩算法有透彻的了解,这样一来还不如自己写压缩算法)。精度不能设太小,不然可能导致脚本运行时间过长甚至死循环,当然还可以限制循环次数,然后选择符合条件且最接近目标体积的文件输出。这里还有一个难点就是文件体积的计算,我采用的方法是将文件转成base64字符串,然后去掉占位的等号,再计算字符串长度来获得,这个过程也比较费事,可以考虑WebWorker。
                            
查看完整回答
反对 回复 2019-06-09
  • 2 回答
  • 0 关注
  • 616 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信