pgmtoppm - colorize a PGM (grayscale) image into a PGM (color) image
pgmtoppm colorspec [pgmfile]
pgmtoppm colorspec1-colorspec2 [pgmfile]
pgmtoppm -map mapfile [pgmfile]
Reads a PGM as input. Produces a PPM file as output with a specific color assigned to
each gray value in the input.
If you specify one color argument, black in the pgm file stays black and white in the pgm
file turns into the specified color in the ppm file. Gray values in between are linearly
mapped to differing intensities of the specified color.
If you specify two color arguments (separated by a dash), then black gets mapped to the
first color and white gets mapped to the second and gray values in between get mapped lin-
early (across a three dimensional space) to colors in between.
You can specify the color in one of five ways:
o A name, from an X11-style color names file.
o An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are each 1- to
4-digit hexadecimal numbers.
o An X11-style decimal specifier: rgbi:r/g/b, where r g and b are floating point num-
bers between 0 and 1.
o For backwards compatibility, an old-X11-style hexadecimal number: #rgb, #rrggbb,
#rrrgggbbb, or #rrrrggggbbbb.
o For backwards compatibility, a triplet of numbers separated by commas: r,g,b, where
r g and b are floating point numbers between 0 and 1. (This style was added before
MIT came up with the similar rgbi style.)
Also, you can specify an entire colormap with the -map option. The mapfile is just a ppm
file; it can be any shape, all that matters is the colors in it and their order. In this
case, black gets mapped into the first color in the map file, and white gets mapped to the
last and gray values in between are mapped linearly onto the sequence of colors in
NOTE - MAXVAL
The "maxval," or depth, of the output image is the same as that of the input image. The
maxval affects the color resolution, which may cause quantization errors you don't antici-
pate in your output. For example, you have a simple black and white image (in fact, let's
say it's a PBM file, since pgmtoppm, like all Netpbm programs, can accept a PBM file as if
it were PGM. The maxval of this image is 1, because only two gray values are needed:
black and white. Run this image through pgmtoppm 0f/00/00 to try to make the image black
and faint red. Because the output image will also have maxval 1, there is no such thing
as faint red. It has to be either full-on red or black. pgmtoppm rounds the color
0f/00/00 down to black, and you get an output image that is nothing but black.
The fix is easy: Pass the input through pnmdepth on the way into pgmtoppm to increase its
depth to something that would give you the resolution you need to get your desired color.
In this case, pnmdepth 16 would do it. Or spare yourself the unnecessary thinking and
just say pnmdepth 255 .
pnmdepth(1), rgb3toppm(1), ppmtopgm(1), ppmtorgb3(1), ppm(5), pgm(5)
Copyright (C) 1991 by Jef Poskanzer.
24 January 2001 pgmtoppm(1)