97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
#pngquant 2
|
|
|
|
This is the official `pngquant` and `libimagequant`.
|
|
|
|
[pngquant](http://pngquant.org) converts 24/32-bit RGBA PNGs to 8-bit palette with *alpha channel preserved*.
|
|
Such images are compatible with all modern browsers, and a special compatibility setting exists which helps transparency degrade well in Internet Explorer 6.
|
|
|
|
Quantized files are often 40-70% smaller than their 24/32-bit version.
|
|
|
|
This utility works on Linux, Mac OS X and Windows.
|
|
|
|
##Usage
|
|
|
|
- batch conversion of multiple files: `pngquant *.png`
|
|
- Unix-style stdin/stdout chaining: `… | pngquant - | …`
|
|
|
|
To further reduce file size, try [optipng](http://optipng.sourceforge.net) or [ImageOptim](http://imageoptim.pornel.net).
|
|
|
|
##Improvements since 1.0
|
|
|
|
Generated files are both smaller and look much better.
|
|
|
|
* Significantly better quality of quantisation
|
|
|
|
- more accurate remapping of semitransparent colors
|
|
- special dithering algorithm that does not add noise in well-quantized areas of the image
|
|
- uses variance instead of popularity for box selection (improvement suggested in the original median cut paper)
|
|
- feedback loop that repeats median cut for poorly quantized colors
|
|
- additional colormap improvement using Voronoi iteration
|
|
- supports much larger number of colors in input images without degradation of quality
|
|
- gamma correction (output is always generated with gamma 2.2 for web compatibility)
|
|
|
|
* More flexible commandline usage
|
|
|
|
- number of colors defaults to 256
|
|
- long options and standard switches like `--` and `-` are allowed
|
|
|
|
* Refactored and modernised code
|
|
|
|
- C99 with no workarounds for old systems
|
|
- floating-point math used throughout
|
|
- Intel SSE optimisations
|
|
- multicore support via OpenMP
|
|
- quantization moved to standalone libimagequant
|
|
|
|
##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 (brute-force) to 11 (fastest). The default is 3. Speed 10 has 5% lower quality, but is 8 times faster than the default. Speed 11 disables dithering and lowers compression level.
|
|
|
|
###`--nofs`
|
|
|
|
Disables Floyd-Steinberg dithering.
|
|
|
|
###`--floyd=0.5`
|
|
|
|
Controls level of dithering (0 = none, 1 = full).
|
|
|
|
###`--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).
|
|
|
|
###`--version`
|
|
|
|
Print version information to stdout.
|
|
|
|
###`-`
|
|
|
|
Read image from stdin and send result to stdout.
|
|
|
|
###`--`
|
|
|
|
Stops processing of arguments. This allows use of file names that start with `-`. If you're using pngquant in a script, it's advisable to put this before file names:
|
|
|
|
pngquant $OPTIONS -- "$FILE"
|
|
|