pngquant
开源的 PNG 有损压缩命令行工具与库,用调色板量化把体积压掉约七成并保留 alpha 透明通道,支持批量处理与管道调用,适合前端开发者在图片上传流程里自动压缩。
pngquant 是一个命令行工具,也是一个可嵌入的库,专门做 PNG 图片的有损压缩。它把图片的颜色数降到 256 色以内,用调色板重新映射像素,文件体积往往能减掉七成左右,同时保留完整的 alpha 透明通道。压缩后的图片在各类浏览器和操作系统上都能正常显示,不会出现兼容问题。
主要功能
核心是调色板生成:它用矢量量化算法挑选颜色,再配合一套自适应抖动,噪点比常见的 Floyd-Steinberg 抖动更少。命令行支持批量处理,比如 pngquant 256 *.png 一次压完整个目录;也能走 Unix 管道,把结果直接交给下一个程序。它提供 --quality min-max 控制质量下限,低于下限的图不保存;--speed 在 1 到 10 之间调节速度与质量,默认 3,速度 10 大约快 8 倍但质量低 5%。
怎么用
官网直接提供 macOS、Windows、Linux 的二进制包,macOS 也可以用 brew 安装,Debian、Snap 等渠道有现成包。不想碰命令行的话,可以配合图形界面:macOS 上的 ImageOptim、跨平台的 Pngyu、Windows 的 PNGoo,以及 Photoshop 的 SuperPNG 插件,底层都调用它。它也能被 PHP 等服务器端脚本调用,适合在图片上传流程里自动压缩。
授权与限制
最新版本用 Rust 重写,早前版本是 C99,源码托管在 GitHub,采用 GPL 或商业授权双许可,商用集成需要留意许可证。它是有损压缩,颜色复杂的照片类 PNG 压完可能出现色带,处理前最好留原图。作者是 Kornel Lesiński,项目由 Greg Roelofs 和 Jef Poskanzer 的早期工作演变而来。