dwww Home | Manual pages | Find package

Pamcomp User Manual(1)      General Commands Manual      Pamcomp User Manual(1)

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 im-
       ages 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  over-
       lay_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 de-
       fines the overlay image to be transparent, the composite output contains
       none of the overlay image;  the  underlying  image  shows  through  com-
       pletely.  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 informa-
       tion itself and pamcomp uses it the same way as  the  transparency  mask
       described  above.   If  you supply both an overlay image that has trans-
       parency 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 trans-
       parency 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 con-
       tain 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 trans-
       parency mask and use that as input to pamcomp.

       The output image is always of the same dimensions as the underlying  im-
       age.   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  is-
       sues 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  dif-
       ferent  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 ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamcomp recognizes the fol-
       lowing 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 im-
              age.  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  im-
              age  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 shift-
              ing 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 trans-
              parency mask will come from Standard  Input.   If  you  do  this,
              don't specify Standard Input as the source of any other input im-
              age.

       -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 in-
              tensities so they are nonnegative and don't exceed the output im-
              age'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  tech-
              nique.

              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 un-
              derlying 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 trans-
              parency 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 rel-
              evant  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  num-
              bers  that  are  not linearly proportional to intensity.  So pam-
              comp, by default, performs a calculation on each sample read from
              its input and each sample written to its output  to  convert  be-
              tween these gamma-adjusted numbers and internal intensity-propor-
              tional numbers.

              Sometimes  you  are  not working with true PNM or PAM images, but
              rather a variation in which the sample values  are  in  fact  di-
              rectly  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  in-
              put and expect true PPM output.

              For the first 13 years of Netpbm's life, until Netpbm 10.20 (Jan-
              uary  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 gen-
       erating 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)

Generated by dwww version 1.16 on Tue Dec 16 04:26:47 CET 2025.