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  old­
       color/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 "close­
       ness" 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 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.)

              If  a  pixel  matches two different oldcolors, ppm­
              change replaces it with the newcolor of  the  left­
              most 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

              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,  nor­
              malized  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 vari­
              ously 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)


Man(1) output converted with man2html