ppmquant(1)ppmquant(1)NAMEppmquant - quantize the colors in a portable pixmap down
to a specified number
SYNOPSISppmquant [-floyd|-fs] ncolors [ppmfile]
ppmquant [-floyd|-fs] -map mapfile [ppmfile]
DESCRIPTION
Reads a portable pixmap as input. Chooses ncolors colors
to best represent the image, maps the existing colors to
the new ones, and writes a portable pixmap as output.
The quantization method is Heckbert's "median cut".
Alternately, you can skip the color-choosing step by spec-
ifying your own set of colors with the -map flag. The
mapfile is just a ppm file; it can be any shape, all that
matters is the colors in it. For instance, to quantize
down to the 8-color IBM TTL color set, you might use:
P3
8 1
255
0 0 0
255 0 0
0 255 0
0 0 255
255 255 0
255 0 255
0 255 255
255 255 255
If you want to quantize one pixmap to use the colors in
another one, just use the second one as the mapfile. You
don't have to reduce it down to only one pixel of each
color, just use it as is.
The -floyd/-fs flag enables a Floyd-Steinberg error diffu-
sion step. Floyd-Steinberg gives vastly better results on
images where the unmodified quantization has banding or
other artifacts, especially when going to a small number
of colors such as the above IBM set. However, it does
take substantially more CPU time, so the default is off.
All flags can be abbreviated to their shortest unique pre-
fix.
REFERENCES
"Color Image Quantization for Frame Buffer Display" by
Paul Heckbert, SIGGRAPH '82 Proceedings, page 297.
SEE ALSOppmquantall(1), pnmdepth(1), ppmdither(1), ppm(5)
12 January 1991 1
ppmquant(1)ppmquant(1)AUTHOR
Copyright (C) 1989, 1991 by Jef Poskanzer.
12 January 1991 2