pgmtoppm - colorize a PGM (grayscale) image into a PGM
(color) image
SYNOPSIS
pgmtoppm colorspec [pgmfile]
pgmtoppm colorspec1-colorspec2 [pgmfile]
pgmtoppm -map mapfile [pgmfile]
DESCRIPTION
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 spec
ified 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
linearly (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 numbers between 0 and 1.
o For backwards compatibility, an old-X11-style hex
adecimal 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 between.
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
anticipate 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 .
SEE ALSO
pnmdepth(1), rgb3toppm(1), ppmtopgm(1), ppmtorgb3(1),
ppm(5), pgm(5)
AUTHOR
Copyright (C) 1991 by Jef Poskanzer.
Man(1) output converted with
man2html