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] [-nofloyd|-nofs] -mapfile mapfile
[ppmfile]
All options can be abbreviated to their shortest unique
prefix. You may use two hyphens instead of one to desig
nate an option. You may use either white space or equals
signs between an option name and its value.
DESCRIPTION
pnmquant is a newer, more general program that is backward
compatible with ppmquant. ppmquant may be faster, though.
Reads a PPM image as input. Chooses ncolors colors to
best represent the image, maps the existing colors to the
new ones, and writes a PPM image 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 -mapfile option.
The mapfile is just a ppm file; it can be any shape, all
that matters is the colors in it. For instance, to quan
tize 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 image 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.
If you use a mapfile, the output image has the same maxval
as the mapfile. Otherwise, the output maxval is the same
as the input maxval, or less in some cases where the quan
tization process reduces the necessary resolution.
The -floyd/-fs option enables a Floyd-Steinberg error dif
fusion 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.
-nofloyd/-nofs means not to use the Floyd-Steinberg error
diffusion. This is the default.
REFERENCES
"Color Image Quantization for Frame Buffer Display" by
Paul Heckbert, SIGGRAPH '82 Proceedings, page 297.
SEE ALSOpnmquant(1), ppmquantall(1), pnmdepth(1), ppmdither(1),
ppm(5)AUTHOR
Copyright (C) 1989, 1991 by Jef Poskanzer.
12 January 1991 ppmquant(1)