不用 webpack,如何纯前端实现压缩图片?

2022-12-29 00:03:34 +08:00
 edis0n0
需求是如果用户选择的图片超过 300kb 就不断循环压缩直到小于 300kb ,然后获取图片的 base64 。

客户给的需求,就不用管需求的合理性,能做到就行了
3065 次点击
所在节点    程序员
8 条回复
cydysm
2022-12-29 00:21:18 +08:00
canvas 重画
hiro0729
2022-12-29 00:30:15 +08:00
https://www.npmjs.com/package/browser-image-compression

不用 npm install 就下载 js 用 script 标签引用
mikewang
2022-12-29 00:41:43 +08:00
压缩图片有两种途径,一种是直接缩小图片尺寸,另一种是改变压缩参数,两种方式都可以通过 canvas 实现。
如果要导出为 JPEG 图片,可以使用 canvas.toDataURL("image/jpeg", 0.75) 这种方式改变压缩参数,意思是使用 75%的压缩。
kop1989smurf
2022-12-29 08:33:41 +08:00
script 引用你想用的库

btw:webpack 和实现功能有什么关系?
edis0n0
2022-12-29 10:38:01 +08:00
@kop1989smurf #4 不用就不能方便地调 npm 上的包了
zzx0403
2022-12-29 16:47:32 +08:00
@edis0n0 搞错了 node npm webpack 他们的关系呀
IvanLi127
2022-12-29 17:34:37 +08:00
用 canvas 重新画,这个不复杂,缩小分辨率然后用 jpg 输出,如果大了用原始文件,调低分辨率和 jpg 质量再来一次,直到文件大小合适。
dengshen
2022-12-29 17:44:37 +08:00
webpack ????????跟 npm node 都无关好吧!
直接 script 引入一个压缩图片的库在 html 文件里调用都行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/905251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX