tinypng.org 令人惊叹的 PNG 压缩比率

2013-05-28 16:35:33 +08:00
 NemoAlex
http://tinypng.org/
似乎可以把一切 PNG24 压缩成 PNG8,而不损失画质
随便试了一下本地的几张图,都达到了接近70%左右的压缩比
网站做得也很好用,可以批量上传
可惜少个打包下载的功能

顺便说一下:IE6 支持 PNG8 的透明,只是把带有 Alpha 通道的像素全部判定为100%透明了
所以用它压过的 PNG 在 IE6 中也可以实现一部分的透明效果
如果你需要做一些在 Web 上显示的 icon,用这个压一遍是再好不过了
24025 次点击
所在节点    前端优化
24 条回复
efi
2013-05-29 14:58:25 +08:00
后台使用开源组合 pngquant + optipng + advdef/advpng

有一些私有程序号称更好 一个评测:http://css-ig.net/png-tools-overview
efi
2013-05-29 15:17:25 +08:00
优化png基本上是这几个方面:

1. 减少颜色数量。比如24位色深RGBA每个像素压缩前要4字节,通过颜色量化算法提取出256种常见颜色作为调色板,那么1个像素就1字节。这个的颜色量化,必然是有损的,只是说通过图像质量的较少损失换取较多的空间节省。这里有pngquant用中位切分算法,pngnq用神经网络算法。颜色量化另一个复杂之处是对于怎样用较少的颜色dither出较好的渐变效果。
2. 去除png文件格式中非必要的数据块。optipng做这个事情。
3. 图像预处理过滤调优,通过类似相邻像素查分的方法,让图像数据更适合压缩。optipng。
4. Deflate优化。zlib的deflate算法通用压缩器都可以加入使用。advdef/advpng使用了7zip的优化deflate,PNGOUT用了一种私有的Kflate。3月份Google发表的Zopfli原则上也可以整合进来。encoder.ru上还有一些私有的号称更好。
Kai
2013-05-31 07:03:49 +08:00
目前发现的不足是,压缩后的图片如果用 PIL 库处理的话,很容易出现 transparency mask 方面的错误。
saitjr
2016-02-22 18:03:26 +08:00
虽然过了很久了,还是安利下写的批量压缩下载的脚本,官网现在也有 api 可用,方式很多
https://github.com/saitjr/STTinyPNG-Python

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

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

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

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

© 2021 V2EX