Provided by: netpbm_10.0-15.3build1_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)