Provided by: netpbm_11.05.02-1.1build1_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 ), 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

netpbm documentation                             13 August 2011                           Pamcomp User Manual(1)