压缩图片文件大小有什么好的方案?

2022 年 7 月 2 日
 a132811

想寻找一款压缩图片大小的库。

背景: 我是用 vscode 中使用 paste image 给自己的 markdown 插入截图,大部分是 png 图,有些比较大需要压缩一下。

我谷歌搜索了一些压缩图片的方法:

  1. 使用 python 的 PIL.Image 自带的pic.save("a.png",optimize=True,quality=80)压缩, 35K 能到 27K ,压缩效率不太高( png quality 再降低不会有影响了)
  2. 改用 webp 格式:
    1. p.save('a.png.webp', 'webp', optimize = True, quality = 88)35K 压缩到 15K, 质量刚好能接受,不过体积希望尽可能小
    2. p.save('a.png.webp', 'webp', optimize = True, quality = 50)到 8k  图片质量有点糊了,不理想。
  3. 使用在线的 tinypng 压缩,输出格式 png ,压缩到了 8K ,质量非常好,没有失真
    1. 看了输出的格式,发现 tinypng 是把8-bit/color RGBA 转成了 8-bit colormap
    2. tinypng 提供 api 实现压缩,每月有免费额度,还是挺不错的
    3. 不过我的需求还是离线用,我找到一篇 colormap 文章,自己实现看起来要花很多时间 https://towardsdatascience.com/simple-steps-to-create-custom-colormaps-in-python-f21482778aa2

有更好的离线方案、库吗?

7290 次点击
所在节点    程序员
30 条回复
zcf0508
2022 年 7 月 2 日
dcsuibian
2022 年 7 月 2 日
Squoosh ?
sommio
2022 年 7 月 2 日
jpeg: imagemagick, graphicsmagick
webp: google/libwebp
a132811
2022 年 7 月 2 日
看起来 Squoosh  可以,离线并提供 api
kkocdko
2022 年 7 月 2 日
我的方案是,先使用 pngquant 有损压缩(优化色板),再使用 cwebp 无损压缩为 webp 图片。
成品如图: https://kkocdko.site/res/20210612-0010-001.webp ,按下 F12 可以看到图片体积。
上边提到的工具:
https://github.com/kornelski/pngquant
https://chromium.googlesource.com/webm/libwebp
foam
2022 年 7 月 2 日
可以试试 libvip. python 对应的 binding 应该是 https://github.com/libvips/pyvips
thedrwu
2022 年 7 月 2 日
pngout ,但是效果不如 tinypng
littleJohn
2022 年 7 月 2 日
我一直在用 utool
abcyuxue123
2022 年 7 月 2 日
tinypng +1
ByteCat
2022 年 7 月 3 日
Squoosh ,Google 开源的方案,用了很久了感觉还可以
AItsuki
2022 年 7 月 3 日
换一个截图工具?例如 Snipaste ,可以设置截图的质量。
mikewang
2022 年 7 月 3 日
JPEG 压缩:mozjpeg ,支持无损压缩优化(输入输出均为 JPEG )
PNG 压缩:pngquant ,使用该技术的有 tinypng.com

https://squoosh.app 使用 WebAssembly 集成了以上工具,可以在前端完成压缩操作。
zhuweiyou
2022 年 7 月 3 日
我在线用 tinypng, 离线用 pngyu
soraginko
2022 年 7 月 3 日
squoosh 超好用
610915518
2022 年 7 月 3 日
如果对图片质量要求不那么高,png 转成 jpg 更好
dingdangnao
2022 年 7 月 3 日
只有我一个人在用 pp 鸭么😂 https://ppduck.com
iyour
2022 年 7 月 3 日
https://www.photofun.cn/compress/,同样采用 squoosh 实现的完全基于本地处理的图片压缩工具
iyour
2022 年 7 月 3 日
kergee
2022 年 7 月 3 日
PPDUCK
loginv2
2022 年 7 月 3 日

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

https://study.congcong.us/t/863667

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

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

© 2021 V2EX