需求是如果用户选择的图片超过 300kb 就不断循环压缩直到小于 300kb ,然后获取图片的 base64 。
客户给的需求,就不用管需求的合理性,能做到就行了
客户给的需求,就不用管需求的合理性,能做到就行了

1 cydysm Dec 29, 2022 via iPhone canvas 重画 |
2 hiro0729 Dec 29, 2022 |
3 mikewang Dec 29, 2022 压缩图片有两种途径,一种是直接缩小图片尺寸,另一种是改变压缩参数,两种方式都可以通过 canvas 实现。 如果要导出为 JPEG 图片,可以使用 canvas.toDataURL("image/jpeg", 0.75) 这种方式改变压缩参数,意思是使用 75%的压缩。 |
4 kop1989smurf Dec 29, 2022 via iPhone script 引用你想用的库 btw:webpack 和实现功能有什么关系? |
5 edis0n0 OP @kop1989smurf #4 不用就不能方便地调 npm 上的包了 |
7 IvanLi127 Dec 29, 2022 用 canvas 重新画,这个不复杂,缩小分辨率然后用 jpg 输出,如果大了用原始文件,调低分辨率和 jpg 质量再来一次,直到文件大小合适。 |
8 dengshen Dec 29, 2022 via iPhone webpack ????????跟 npm node 都无关好吧! 直接 script 引入一个压缩图片的库在 html 文件里调用都行 |