Provided by: netpbm_10.0-15.4_amd64 bug

NAME

       ppmchange - change all pixels of one color to another in a portable pixmap

SYNOPSIS

       ppmchange  [  -closeness  closeness_percent  ]  [  -remainder remainder_color ] [ oldcolor
       newcolor ] ...  [ppmfile]

DESCRIPTION

       Reads a portable pixmap as input.  Changes all pixels of oldcolor to  newcolor.   You  may
       specify  up  to  256  oldcolor/newcolor  pairs  on the command line.  ppmchange leaves all
       colors not mentioned unchanged, unless you specify the -remainder option,  in  which  case
       they are all changed to the single specified color.

       You  can  specify  that  colors  similar,  but  not identical, to the ones you specify get
       replaced by specifying a "closeness" factor.

       The colors can be specified in five ways:

       o      A name, assuming that a pointer to an X11-style color names file was compiled in.

       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 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.)

              If a pixel matches two different oldcolors, ppmchange replaces it with the newcolor
              of the leftmost specified one.

OPTIONS

       -closeness closeness_percent
              closeness is an integer per centage indicating how close to the color you specified
              a  pixel  must be to get replaced.  By default, it is 0, which means the pixel must
              be the exact color you specified.

              A pixel gets replaced if the distance  in  color  between  it  and  the  color  you
              specified is less than or equal to closeness.

              The  "distance"  in  color  is  defined  as  the  cartesian  sum  of the individual
              differences in red, green, and blue intensities between the two pixels,  normalized
              so that the difference between black and white is 100%.

              This is probably simpler than what you want most the time.  You probably would like
              to change colors that have similar chrominance, regardless of their intensity.   So
              if there's a red barn that is variously shadowed, you want the entire barn changed.
              But because the shadowing significantly changes the color according to  ppmchange's
              distance  formula,  parts  of  the barn are probably about as distant in color from
              other parts of the barn as they are from green grass next to the barn.

              Maybe ppmchange will be enhanced some day to do chrominance analysis.

       -remainder color
              ppmchange changes all pixels which are not of a color  for  which  you  specify  an
              explicit replacement color on the command line to color color.

              An example application of this is

              ppmchange -remainder=black red red

              to lift only the red portions from an image, or

              ppmchange -remainder=black red white | ppmtopgm

              to create a mask file for the red portions of the image.

SEE ALSO

       pgmtoppm(1), ppmcolormask(1), ppm(5)

AUTHOR

       Wilson   H.   Bent.   Jr.   (whb@usc.edu)   with   modifications   by   Alberto  Accomazzi
       (alberto@cfa.harvard.edu)

                                         07 January 2001                             ppmchange(1)