Provided by: netpbm_11.01.00-2build1_amd64 bug

NAME

       pamcomp - composite (overlay) two Netpbm images together

SYNOPSIS

       pamcomp

       [-align={left  |  center  |  right  |  beyondleft | beyondright}] [-valign={top | middle |
       bottom|   above   |   below}]   [-xoff=X]   [-yoff=Y]   [-alpha=alpha-pgmfile]   [-invert]
       [-opacity=opacity]     [-mixtransparency]    [-linear]    overlay_file    [underlying_file
       [output_file]]

       Minimum unique abbreviation of option is acceptable.  You may use double  hyphens  instead
       of  single  hyphen to denote options.  You may use white space in place of the equals sign
       to separate an option name from its value.

DESCRIPTION

       This program is part of Netpbm(1).

       pamcomp reads two images and produces a composite image with one of the  images  overlayed
       on  top  of the other, possible translucently.  The images need not be the same size.  The
       input and outputs are Netpbm format image files.

       In its simplest use, pamcomp simply places the image in the file overlay_file  on  top  of
       the  image  in  the file underlying_file, blocking out the part of underlying_file beneath
       it.

       If you add the -alpha option, then pamcomp uses the  image  in  file  alpha-pgmfile  as  a
       transparency  mask,  which  means it determines the level of transparency of each point in
       the overlay image.  The transparency mask must have the same  dimensions  as  the  overlay
       image.   In places where the transparency mask defines the overlay image to be opaque, the
       composite output contains only the contents of the overlay image; the underlying image  is
       totally  blocked  out.  In places where the transparency mask defines the overlay image to
       be transparent, the composite output contains none of the overlay  image;  the  underlying
       image  shows  through  completely.  In places where the transparency mask shows a value in
       between opaque and transparent (translucence), the composite image contains a  mixture  of
       the  overlay  image  and the underlying image and the level of translucence determines how
       much of each.

       The transparency mask is a PGM file in which a white pixel  represents  opaqueness  and  a
       black  pixel transparency.  Anything in between is translucent.  (Like any Netpbm program,
       pamcomp will see a PBM file as if it is PGM).

       If the overlay image is a PAM image of tuple type RGB_ALPHA or GRAYSCALE_ALPHA,  then  the
       overlay image contains transparency information itself and pamcomp uses it the same way as
       the transparency mask described above.  If you supply  both  an  overlay  image  that  has
       transparency  information and a transparency mask, pamcomp multiplies the two opacities to
       get the opacity of the overlay pixel.

       Before Netpbm 10.25 (October 2004), pamcomp did not recognize the transparency information
       in  a  PAM  image  --  it just ignored it.  So people had to make appropriate transparency
       masks in order to have a non-opaque overlay.  Some Netpbm programs that convert from image
       formats  that  contain  transparency  information  are  not  able  to  create RGB_ALPHA or
       GRAYSCALE_ALPHA PAM output, so you have to use the old method -- extract the  transparency
       information  from  the original into a separate transparency mask and use that as input to
       pamcomp.

       The output image is always of the same dimensions as the underlying image.   pamcomp  uses
       only parts of the overlay image that fit within the underlying image.

       The  output  image  is  a PAM image.  Its tuples are color, grayscale, or black and white,
       whichever is the "highest" format between the two input images.  The maxval of the  output
       is  the  least common multiple of the maxvals of the input, up to the maximum possible PAM
       maxval, 65535.

       The output has an opacity channel if and only if the underlying image does, and  then  the
       opacities  are  as  described  under  the  -mixtransparency  option.   Before Netpbm 10.56
       (September 2011), the output never has an opacity channel.

       To specify where on the underlying image to place  the  overlay  image,  use  the  -align,
       -valign, -xoff, and -yoff options.  Without these options, the default horizontal position
       is flush left and the default vertical position is flush top.

       The overlay image, in  the  position  you  specify,  need  not  fit  entirely  within  the
       underlying  image.  pamcomp uses only the parts of the overlay image that appear above the
       underlying image.  It is possible to specify positioning such that  none  of  the  overlay
       image  is  over the underlying image -- i.e. the overlay is out of frame.  If you do that,
       pamcomp issues a warning.

        The overlay and underlying images may be of different formats (e.g. overlaying a PBM text
       image  over  a full color PPM image) and have different maxvals.  The output image has the
       more general of the two input formats and a maxval that is the least common  multiple  the
       two maxvals (or the maximum maxval allowable by the format, if the LCM is more than that).

ARGUMENTS

       The overlay_file argument is the name of the file containing the
         overly image, while underlying_file is the name of the file
         containing the underlying image.  For either, you may specify '-'
         to indicate Standard Input, and underlying file defaults to Standard
         Input.  Make sure you aren't specifying (or defaulting) Standard Input as
         both.

       Note that there may be a third input file, identified by an -alphafile option.

       The output_file argument is the name of the file to which
         pamcomp writes the output, creating or truncating it first.  You may
         specify '-' to indicate Standard Output, in which
         case pamcomp does not truncate it.  Note that pamcomp is
         unusual among Netpbm programs, as a historical accident, in having an output
         file argument; Netpbm programs normally write to Standard Output only.

OPTIONS

       In addition to the options common to all programs based on libnetpbm (most notably -quiet,
       see
        Common Options ⟨index.html#commonoptions⟩ ), pamcomp  recognizes  the  following  command
       line options:

       -align=alignment
              This option selects the basic horizontal position of the overlay image with respect
              to the underlying image, in syntax reminiscent of HTML.   left  means  flush  left,
              center means centered, and right means flush right.

              The -xoff option modifies this position.

              beyondleft  means just out of frame to the left -- the right edge of the overlay is
              flush with the left edge of the underlying image.  beyondright means  just  out  of
              frame  to  the  right.  These alignments are useful only if you add a -xoff option.
              These two values were added in Netpbm 10.10 (October 2002).

              The default is left.

       -valign=alignment
              This option selects the basic vertical position of the overlay image  with  respect
              to  the  underlying  image,  in  syntax  reminiscent of HTML.  top means flush top,
              middle means centered, and bottom means flush bottom.

              The -yoff option modifies this position.

              above means just out of frame to the top -- the bottom edge of the overlay is flush
              with  the  top  edge of the underlying image.  below means just out of frame to the
              bottom.  These alignments are useful only if you add a  -yoff  option.   These  two
              values were added in Netpbm 10.10 (October 2002).

              The default is top.

       -xoff=x
              This  option  modifies the horizontal positioning of the overlay image with respect
              to the underlying image as selected by  the  -align  option.   pamcomp  shifts  the
              overlay image from that basic position x pixels to the right.  x can be negative to
              indicate shifting to the left.

              The overlay need not fit entirely (or at all) on  the  underlying  image.   pamcomp
              uses only the parts that lie over the underlying image.

              Before  Netpbm  10.10  (October 2002), -xoff was mutually exclusive with -align and
              always measured from the left edge.

       -yoff=y
              This option modifies the vertical positioning of the overlay image with respect  to
              the underlying image as selected by the -valign option.  pamcomp shifts the overlay
              image from that basic position y pixels downward.  y can be  negative  to  indicate
              shifting upward.

              The  overlay  need  not  fit entirely (or at all) on the underlying image.  pamcomp
              uses only the parts that lie over the underlying image.

              Before Netpbm 10.10 (October 2002), -xoff was mutually exclusive with  -valign  and
              always measured from the top edge.

       -alpha=alpha-pgmfile
              This option names a file that contains the transparency mask.  If you don't specify
              this option, there is no  transparency  mask,  which  is  equivalent  to  having  a
              transparency mask specify total opaqueness everywhere.

              You  can  specify - as the value of this option and the transparency mask will come
              from Standard Input.  If you do this, don't specify Standard Input as the source of
              any other input image.

       -invert
              This  option  inverts  the  sense  of  the  values  in the transparency mask, which
              effectively switches the roles of the overlay image and  the  underlying  image  in
              places where the two intersect.

       -opacity=opacity
              This  option  tells  how  opaque  the  overlay image is to be, i.e. how much of the
              composite image should be from the overlay image,  as  opposed  to  the  underlying
              image.   opacity  is a floating point number, with 1.0 meaning the overlay image is
              totally opaque and 0.0 meaning it is totally transparent.  The default is 1.0.

              If you specify a transparency mask (the -alpha option), pamcomp uses the product of
              the  opacity indicated by the transparency mask (as modified by the -invert option,
              as a fraction, and this opacity value.  The -invert option does not apply  to  this
              opacity value.

              As  a  simple  opacity  value, the value makes sense only if it is between 0 and 1,
              inclusive.  However, pamcomp accepts all values and performs  the  same  arithmetic
              computation  using  whatever  value  you  provide.  An opacity value less than zero
              means the underlay image is intensified and then the overlay image is  "subtracted"
              from  it.   An  opacity  value  greater  than  unity  means  the  overlay  image is
              intensified and the underlay image subtracted from it.   In  either  case,  pamcomp
              clips  the  resulting color component intensities so they are nonnegative and don't
              exceed the output image's maxval.

              This may seem like a strange thing to do, but it has  uses.   You  can  use  it  to
              brighten  or  darken  or  saturate or desaturate areas of the underlay image.  See
              this description(1) of the technique.

              This option was added in Netpbm 10.6  (July  2002).   Before  Netpbm  10.15  (April
              2003), values less than zero or greater than unity were not allowed.

       -mixtransparency
              This  option controls what pamcomp does where both the underlying and overlay image
              are non-opaque.

              By default, the output image has the same transparency as the underlying image  and
              the transparency of the underlying image has no effect on the composition of color.

              But   with  this  option,  pamcomp  composes  the  image  according  to  a  plastic
              transparency metaphor: the underlying and overlay images are plastic  slides.   The
              output  image  is  the  slide  you  get when you stack up those two slides.  So the
              transparency of the output is a combination of the transparency of the  inputs  and
              the   transparency   of   the  underlying  image  affects  the  underlying  image's
              contribution to the output image's color.

              Unlike the metaphorical slide, a PAM pixel has a color even where it is  completely
              transparent, so pamcomp departs from the metaphor in that case and makes the output
              color identical to the underlying image.

              This option was new in Netpbm 10.56 (September 2011).  Before that, the  output  is
              always opaque and the pamcomp ignores the transparency of the underlying image.

       -linear
              This  option  indicates  that  the  inputs  are not true Netpbm images but rather a
              light-intesity-proportional variation.  This is relevant only when you mix  pixels,
              using the -opacity option or a transparency mask (the -alpha option).

              The  transparency  mask  and  -opacity  values  indicate  a  fraction  of the light
              intensity of a pixel.  But the PNM and PNM-equivalent PAM image  formats  represent
              intensities  with  gamma-adjusted  numbers  that  are  not linearly proportional to
              intensity.  So pamcomp, by default, performs a calculation on each sample read from
              its  input  and  each  sample written to its output to convert between these gamma-
              adjusted numbers and internal intensity-proportional numbers.

              Sometimes you are not working with true PNM or PAM images, but rather  a  variation
              in  which the sample values are in fact directly proportional to intensity.  If so,
              use the  -linear  option  to  tell  pamcomp  this.   pamcomp  then  will  skip  the
              conversions.

              The  conversion  takes  time.   And  the  difference between intensity-proportional
              values and gamma-adjusted values may be small enough that you would  barely  see  a
              difference  in the result if you just pretended that the gamma-adjusted values were
              in fact intensity-proportional.  So just to save time, at the expense of some image
              quality,  you can specify -linear even when you have true PPM input and expect true
              PPM output.

              For the first 13 years  of  Netpbm's  life,  until  Netpbm  10.20  (January  2004),
              pamcomp's  predecessor  pnmcomp  always  treated  the  PPM  samples  as  intensity-
              proportional even though they were not, and drew few complaints.  So using  -linear
              as a lie is a reasonable thing to do if speed is important to you.

              Another  technique to consider is to convert your PNM image to the linear variation
              with pnmgamma, run pamcomp on it and other transformations that  like  linear  PNM,
              and  then  convert  it  back to true PNM with pnmgamma -ungamma.  pnmgamma is often
              faster than pamcomp in doing the conversion.

SEE ALSO

       pammixmulti.html(1) mixes together two or more images of the same size, in various ways.

       ppmmix(1) and pnmpaste(1) are simpler, less general versions of the same tool.

       ppmcolormask(1)  and  pbmmask(1),  and  pambackground(1)  can  help  with   generating   a
       transparency mask.

       pnmcomp(1) is an older program that runs faster, but has less function.

       pnm(1)

HISTORY

       pamcomp  was  new  in Netpbm 10.21 (March 2004).  Its predecessor, pnmcomp, was one of the
       first programs added to Netpbm when the project went global in 1993.

AUTHOR

       Copyright (C) 1992 by David Koblas (koblas@mips.com).

DOCUMENT SOURCE

       This manual page was generated by the Netpbm tool 'makeman' from HTML source.  The  master
       documentation is at

              http://netpbm.sourceforge.net/doc/pamcomp.html