pnmremap Man page

pnmremap General Commands Manual pnmremap

NAME

pnmremap – replace colors in a PPM image with colors from another set

SYNOPSIS

pnmremap [-floyd|-fs|-nfloyd|-nofs] [-firstisdefault] [-verbose] [-map‐
file=mapfile] [-missingcolor=color] [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 an equals sign between an option name and its
value.

DESCRIPTION

pnmremap replaces the colors in an input image with those from a col‐
ormap you specify. Where a color in the input is not in the colormap,
you have three choices: 1) choose the closest color from the colormap;
2) choose the first color from the colormap; 3) use a color specified
by a command option. (In this latter case, if the color you specify is
not in your color map, the output will not necessarily contain only
colors from the colormap).

Two reasons to do this are: 1) you want to reduce the number of colors
in the input image; and 2) you need to feed the image to something that
can handle only certain colors.

To reduce colors, you can generate the colormap with ppmcolormap.
Example:

ppmcolormap testimg.ppm 256 >colormap.ppm
ppmremap -map=colormap.ppm testimg.ppm
>reduced_testimg.ppm

To limit colors to a certain set, a typical example is to create an
image for posting on the World Wide Web, where different browsers know
different colors. But all browsers are supposed to know the 216 “web
safe” colors which are essentially all the colors you can represent in
a PPM image with a maxval of 5. So you can do this:

ppmcolors 5 >websafe.ppm
ppmremap -map=webafe.ppm testimg.ppm >websafe_testimg.ppm

The output image has the same type and maxval as the map file.

PARAMETERS

There is one parameter, which is required: The file specifcation of
the input PNM file.

OPTIONS

-floyd -fs -nofloyd -nofs These options determine whether Floyd-Stein‐
berg dithering is done. Without Floyd-Steinberg, the selection
of output color of a pixel is based on the color of only the
corresponding input pixel. With Floyd-Steinberg, multiple input
pixels are considered so that the average color of an area tends
to stay more the same than without Floyd-Steinberg. For exam‐
ple, if you map an image with a black, gray, gray, and white
pixel adjacent, through a map that contains only black and
white, it might result in an output of black, black, white,
white. Pixel-by-pixel mapping would instead map both the gray
pixels to the same color.

-fs is a synomym for -floyd. -nofs is a synonym for -nofloyd.

The default is -nofloyd.

-firstisdefault
This affects what happens with a pixel in the input image whose
color is not in the map file. If you specify neither -firstis‐
default nor -missingcolor, pnmremap chooses for the output the
color in the map which is closest to the color in the input.
With -firstisdefault, pnmremap instead uses the first color in
the colormap.

If you specify -firstisdefault, the maxval of your input must
match the maxval of your colormap.

-missingcolor=color
This affects what happens with a pixel in the input image whose
color is not in the map file. If you specify neither -firstis‐
default nor -missingcolor, pnmremap chooses for the output the
color in the map which is closest to the color in the input.
With -missingcolor, pnmremap uses color. color need not be in
the colormap.

If you specify -missingcolor, the maxval of your input must
match the maxval of your colormap.

-verbose
Display helpful messages about the mapping process.

SEE ALSO

pnmcolormap, ppmcolors, pnmquant, ppmquantall, pnmdepth,
ppmdither, ppmquant, ppm(5)

AUTHOR

Copyright (C) 1989, 1991 by Jef Poskanzer. Copyright (C) 2001 by Bryan
Henderson.

01 January 2002 pnmremap