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

2022-07-02 19:50:50 +08:00
 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

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

5266 次点击
所在节点    程序员
30 条回复
zcf0508
2022-07-02 19:53:46 +08:00
dcsuibian
2022-07-02 19:55:15 +08:00
Squoosh ?
sommio
2022-07-02 20:05:21 +08:00
jpeg: imagemagick, graphicsmagick
webp: google/libwebp
a132811
2022-07-02 20:17:11 +08:00
看起来 Squoosh  可以,离线并提供 api
kkocdko
2022-07-02 20:53:48 +08:00
我的方案是,先使用 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-07-02 23:15:57 +08:00
可以试试 libvip. python 对应的 binding 应该是 https://github.com/libvips/pyvips
thedrwu
2022-07-02 23:31:42 +08:00
pngout ,但是效果不如 tinypng
littleJohn
2022-07-02 23:39:55 +08:00
我一直在用 utool
abcyuxue123
2022-07-02 23:41:29 +08:00
tinypng +1
ByteCat
2022-07-03 00:17:20 +08:00
Squoosh ,Google 开源的方案,用了很久了感觉还可以
AItsuki
2022-07-03 01:09:35 +08:00
换一个截图工具?例如 Snipaste ,可以设置截图的质量。
mikewang
2022-07-03 01:12:56 +08:00
JPEG 压缩:mozjpeg ,支持无损压缩优化(输入输出均为 JPEG )
PNG 压缩:pngquant ,使用该技术的有 tinypng.com

https://squoosh.app 使用 WebAssembly 集成了以上工具,可以在前端完成压缩操作。
zhuweiyou
2022-07-03 07:42:10 +08:00
我在线用 tinypng, 离线用 pngyu
soraginko
2022-07-03 07:54:51 +08:00
squoosh 超好用
610915518
2022-07-03 10:01:54 +08:00
如果对图片质量要求不那么高,png 转成 jpg 更好
dingdangnao
2022-07-03 11:49:20 +08:00
只有我一个人在用 pp 鸭么😂 https://ppduck.com
iyour
2022-07-03 11:50:52 +08:00
https://www.photofun.cn/compress/,同样采用 squoosh 实现的完全基于本地处理的图片压缩工具
iyour
2022-07-03 11:51:41 +08:00
kergee
2022-07-03 12:43:19 +08:00
PPDUCK
loginv2
2022-07-03 14:18:27 +08:00

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

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

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

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

© 2021 V2EX