pnmremap (1)
NAME
pnmremap - replace colors in a PPM image with colors from another setSYNOPSIS
pnmremap [-floyd|-fs|-nfloyd|-nofs] [-firstisdefault] [-verbose] [-mapfile=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 colormap 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-Steinberg 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 example,
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
-firstisdefault
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
-firstisdefault
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.