默认输出文件名带 -or8.png 或 -fs8.png 后缀,不会覆盖原图;用 --ext=.png --force 才会原地覆盖,需谨慎;转换质量低于 --quality 下限时不会保存文件并返回退出码 99;--floyd 参数必须写成等号形式如 --floyd=0.5;在非 GPL 项目中使用需另购商业许可。
pngquant *.pngREADME 未说明具体硬件要求;仅提到通过 OpenMP 支持多核、并有 Intel SSE 优化。
把 PNG 转成带 alpha 的 8-bit 调色板格式,通常缩小 60-80% 体积
用有损量化把 PNG 压到原体积的几分之一,肉眼几乎看不出差别,适合给网页和 App 里的图片瘦身。
核心能力
- 用高级量化算法生成高质量调色板,支持 gamma 校正与预乘 alpha
- 内置不引入多余噪点的抖动算法,可调抖动强度或关闭
- 用 --quality min-max 自动选最少颜色数,不达标则跳过不保存
- 支持多文件批量转换与 stdin/stdout 管道串联
- 基于 libimagequant,支持 OpenMP 多核与 Intel SSE 优化
容易踩的坑
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
pngquant 3 
pngquant is a PNG compressor that significantly reduces file sizes by converting images to a more efficient 8-bit PNG format with alpha channel (often 60-80% smaller than 24/32-bit PNG files). Compressed images are fully standards-compliant and are supported by all web browsers and operating systems.
This is the official pngquant repository. The compression engine is also available as an embeddable library.
Usage
- batch conversion of multiple files:
pngquant *.png - Unix-style stdin/stdout chaining:
… | pngquant - | …
To further reduce file size, try oxipng, ImageOptim, or zopflipng.
Features
- High-quality palette generation
- advanced quantization algorithm with support for gamma correction and premultiplied alpha
- unique dithering algorithm that does not add unnecessary noise to the image
- Configurable quality level
- automatically finds required number of colors and can skip images which can't be converted with the desired quality
- Fast, modern code
- based on a portable libimagequant library
- C99 with no workarounds for legacy systems or compilers (apart from Visual Studio)
- multicore support (via OpenMP) and Intel SSE optimizations
Options
See pngquant -h for full list.
--quality min-max
min and max are numbers in range 0 (worst) to 100 (perfect), similar to JPEG. pngquant will use the least amount of colors required to meet or exceed the max quality. If conversion results in quality below the min quality the image won't be saved (if outputting to stdin, 24-bit original will be output) and pngquant will exit with status code 99.
pngquant --quality=65-80 image.png
--ext new.png
Set custom extension (suffix) for output filename. By default -or8.png or -fs8.png is used. If you use --ext=.png --force options pngquant will overwrite input files in place (use with caution).
-o out.png or --output out.png
Writes converted file to the given path. When this option is used only single input file is allowed.
--skip-if-larger
Don't write converted files if the conversion isn't worth it.
--speed N
Speed/quality trade-off from 1 (slowest, highest quality, smallest files) to 11 (fastest, less consistent quality, light comperssion). The default is 4. It's recommended to keep the default, unless you need to generate images in real time (e.g. map tiles). Higher speeds are fine with 256 colors, but don't handle lower number of colors well.
--nofs
Disables Floyd-Steinberg dithering.
--floyd=0.5
Controls level of dithering (0 = none, 1 = full). Note that the = character is required.
--posterize bits
Reduce precision of the palette by number of bits. Use when the image will be displayed on low-depth screens (e.g. 16-bit displays or compressed textures in ARGB444 format).
--strip
Don't copy optional PNG chunks. Metadata is always removed on Mac (when using Cocoa reader).
See man page (man pngquant) for the full list of options.
License
pngquant is dual-licensed:
-
Under GPL v3 or later with an additional copyright notice that must be kept for the older parts of the code.
-
Or a commercial license for use in non-GPL software (e.g. closed-source or App Store distribution). You can get the license via Super Source. Email [email protected] if you have any questions.