pngquant 3
pngquant 是一个PNG压缩工具,通过将图像转换为更高效的8位PNG格式(带有alpha通道),可以显著减小文件大小(通常比24/32位PNG文件小60-80%)。压缩后的图像完全符合标准,并受所有网页浏览器和操作系统支持。
这里是官方的pngquant
仓库。压缩引擎也可作为可嵌入的库使用。
使用方法
- 批量转换多个文件:
pngquant *.png
- Unix风格的标准输入/输出链接:
… | pngquant - | …
要进一步减小文件大小,可以尝试oxipng、ImageOptim或zopflipng。
特性
- 高质量调色板生成
- 先进的量化算法,支持伽马校正和预乘alpha
- 独特的抖动算法,不会给图像添加不必要的噪点
- 可配置的质量级别
- 自动找到所需的颜色数量,可以跳过无法以所需质量转换的图像
- 快速、现代的代码
- 基于可移植的libimagequant库
- C99标准,无需为旧系统或编译器做兼容性处理(除了Visual Studio)
- 多核支持(通过OpenMP)和Intel SSE优化
选项
完整列表请参见pngquant -h
。
--quality min-max
min
和max
是0(最差)到100(完美)之间的数字,类似于JPEG。pngquant将使用满足或超过max
质量所需的最少颜色数。如果转换结果的质量低于min
质量,图像将不会被保存(如果输出到标准输入,将输出24位原图),pngquant将以状态码99退出。
pngquant --quality=65-80 image.png
--ext new.png
为输出文件名设置自定义扩展名(后缀)。默认使用-or8.png
或-fs8.png
。如果使用--ext=.png --force
选项,pngquant将直接覆盖输入文件(谨慎使用)。
-o out.png
或 --output out.png
将转换后的文件写入指定路径。使用此选项时只允许单个输入文件。
--skip-if-larger
如果转换后的文件不值得保存,则不写入。
--speed N
速度/质量权衡,从1(最慢,最高质量,最小文件)到11(最快,质量较不稳定,轻度压缩)。默认值为4。建议保持默认设置,除非需要实时生成图像(如地图瓦片)。更高的速度对256色图像效果较好,但对更少颜色数的处理不佳。
--nofs
禁用Floyd-Steinberg抖动。
--floyd=0.5
控制抖动级别(0 = 无,1 = 全)。注意=
字符是必需的。
--posterize bits
通过指定位数减少调色板的精度。在图像将显示在低深度屏幕上时使用(如16位显示器或ARGB444格式的压缩纹理)。
--strip
不复制可选的PNG块。在Mac上(使用Cocoa读取器时)始终会移除元数据。
完整选项列表请参见手册页(man pngquant
)。
许可证
pngquant采用双重许可:
-
在GPL v3或更高版本下,附加一个必须为代码的旧部分保留的版权声明。
-
或者商业许可证,用于非GPL软件(如闭源或App Store分发)。您可以通过Super Source获取许可证。如有任何问题,请发送邮件至kornel@pngquant.org。