Story
PNG 的麻烦在于它看起来“已经压缩过了”,但很多截图和透明素材仍然很大。pngquant 做的事情很窄:不负责裁剪、不负责格式转换、不负责复杂处理,只负责把 PNG 变小。窄有时是优点,因为参数少、结果稳定,很适合放进发布前的检查流程。

pngquant 是一个专门压缩 PNG 的命令行工具。它通过调色板量化把 24/32-bit PNG 转成更小的 8-bit PNG,通常能明显减小体积,同时保留透明通道和还不错的视觉质量。
我用它处理网站里的截图、图标和小型界面素材。ImageMagick 适合“改图”,pngquant 更适合“把 PNG 压小”。如果目标是保留 PNG 格式,但让文件体积降下来,它比通用图片工具更直接。
适合
不适合
--quality 是质量范围,不是 JPEG 那种单点质量值-fs8 后缀;想覆盖或自定义后缀要显式设置# 压缩单张 PNG,质量控制在 65-85
pngquant --quality=65-85 image.png
# 覆盖原文件,谨慎使用
pngquant --quality=65-85 --force --ext .png image.png
# 批量压缩当前目录 PNG
pngquant --quality=65-85 --skip-if-larger --ext .png --force *.png
# 去掉元数据,减少一点体积
pngquant --strip --quality=65-85 image.pngPNG 的麻烦在于它看起来“已经压缩过了”,但很多截图和透明素材仍然很大。pngquant 做的事情很窄:不负责裁剪、不负责格式转换、不负责复杂处理,只负责把 PNG 变小。窄有时是优点,因为参数少、结果稳定,很适合放进发布前的检查流程。
# 生成 image-fs8.png
pngquant image.png
# 原地压缩,质量不足则跳过
pngquant --quality=70-90 --skip-if-larger --force --ext .png image.png
# 批量压缩 assets 里的 PNG
pngquant --quality=70-90 --skip-if-larger --force --ext .png assets/**/*.png