NAME
pnmquant - quantize the colors in a Netpbm image to a smaller set
SYNOPSIS
pnmquant [-center|-meancolor|-meanpixel] [-floyd|-fs] [-nofloyd|-nofs] [-spreadbrightness|-spreadluminosity] {[-norandom]|[-randomseed=n]} ncolors [pnmfile]
All options can be abbreviated to their shortest unique prefix. You may use two hyphens instead of one to designate an option. You may use either white space or equals signs between an option name and its value.
DESCRIPTION
This program is part of Netpbm(1).
pnmquant reads a PNM image as input. It chooses ncolors colors to best represent the image, maps the existing colors to the new ones, and writes a PNM image as output.
This program is simply a combination of pnmcolormap and pnmremap, where the colors of the input are remapped using a color map which is generated from the colors in that same input. The options have the same meaning as in those programs. See their documentation to understand pnmquant.
You may
actually get fewer than ncolors colors in the output
because
the method pnmcolormap uses to choose the best set of
colors for the
image is not the same as the method pnmremap uses to
determine the
best color from the set to represent an individual color.
For example,
pnmcolormap may include salmon in the color map as the
best
representative of a pink pixel in the input and include
coral in the color
map as the best representative of an actual coral pixel in
the input. But
pnmremap is free to use any color in the color map to
represent that
pink pixel and would find coral is a closer match for pink
than salmon and
therefore use coral for pink. pnmremap might not use
salmon
for any pixel.
This waste of a
slot in the color map is a consequence of the approximate
method pnmcolormap uses in order to compute the color
map with a
practical amount of computation.
Running
pnmcolormap and pnmremap Separately
It is much faster to call pnmcolormap and
pnmremap directly than to run pnmquant. You
save the overhead of the Perl interpreter and creating two
extra processes. pnmquant is just a convenience.
Here is an example of the relationship between the programs:
This:
$ pnmquant 256 myimage.pnm >/tmp/colormap.pnm >myimage256.pnm
does essentially this:
$ pnmcolormap
256 myimage.pnm >/tmp/colormap.pnm
$ pnmremap -mapfile=/tmp/colormap.pnm myimage.pnm
>myimage256.pnm
OPTIONS
In addition to the options common to all programs based on libnetpbm (most notably -quiet, see Common Options ), pnmquant recognizes the following command line options:
Options
Passed to pnmcolormap
These options control the selection of the palette. They are
options to pnmcolormap(1).
-center
-meancolor
-meanpixel
-spreadbrightness
-spreadluminosity
Options
Passed to pnmremap
These options control which color from the palette the
program uses to
replace a pixel of a certain color from the input. They are
options to pnmremap(1).
-floyd |
||
-fs |
-nofloyd
-nofs |
-norandom
-randomseed
-norandom
HISTORY
pnmquant did not exist before Netpbm 9.21 (January 2001). Before that, ppmquant did the same thing, but only on PPM images. ppmquant continues to exist, but is only a front end (for name compatibility) to pnmquant.
-version did not exist before Netpbm 10.75 (June 2016).
-norandom did not exist before Netpbm 10.82 (March 2018).
SEE ALSO
pnmcolormap(1), pnmremap(1), pnmquantall(1), pamdepth(1), ppmdither(1), ppmquant(1), pnm(1)
DOCUMENT SOURCE
This manual page was generated by the Netpbm tool ’makeman’ from HTML source. The master documentation is at