Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


				    pamcomp

   Updated: 17 July 2004
   Table Of Contents

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] [-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. 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 an alpha mask, which means it determines  the
level of
   transparency	 of  each  point  in the overlay image. The alpha
mask must have
   the same dimensions as the overlay image. In places where  the
alpha mask
   defines  the	 overlay image to be opaque, the composite output
contains only
   the contents of the overlay image; the underlying image is to-
tally blocked
   out.	 In  places  where the alpha mask defines the overlay im-
age to be
   transparent, the composite output contains none of the overlay
image; the
   underlying image shows through completely. In places where the
alpha mask
   shows  a  value  in between opaque and  transparent	(translu-
cence), 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 alpha 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).

   In some image file formats (PNG,  for  example),  transparency
information (the
   alpha  mask)	 is  part  of the definition of the image. In the
Netpbm formats,
   transparency is usually embodied in a separate companion file.
The Netpbm
   converter   programs that convert from an image format such as
PNG have
   options that allow you to extract the transparency information
to a separate
   file, which you can then use as input to pamcomp.

   Sometimes, though, people use a version of the PAM format that
has an alpha
   channel built in. But pamcomp doesn't know how to  use  those.
It processes
   the	images just fine, but ignores the built-in alpha channel.

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

   To specify where on the underlying image to place the  overlay
image, use the
   -align,   -valign, -xoff, and -yoff options. Without these op-
tions, the
   default horizontal position is flush left and the default ver-
tical 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 over-
lay image that
   appear  above  the underlying image. It is possible to specify
positioning
   such that none of the overlay image is over the underlying im-
age -- 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  for-
mats (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  in-
put 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).

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  remi-
niscent 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 ba-
sic 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  ba-
sic 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 alpha mask.
If you don't
	  specify this option, there is no alpha mask,	which  is
equivalent to
	  having  an  alpha  mask specify total opaqueness every-
where.
	  You can specify - as the value of this option	 and  the
alpha 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  al-
pha 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 an alpha mask (the -alpha option),  pam-
comp uses the
	  product  of the opacity indicated by the alpha 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  un-
derlay 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 underlaying 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 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
	  underlaying image. See this description  of  the  tech-
nique.
	  This	option	was added in Netpbm 10.6 (July 2002). Be-
fore Netpbm 10.15
	  (April 2003), values less than  zero	or  greater  than
unity were not
	  allowed.
   -linear
	  This	option	indicates  that	 the  inputs are not true
Netpbm images but
	  rather a non-gamma-adjusted variation. This is relevant
only when you
	  mix  pixels, using the -opacity option or an alpha mask
(the -alpha
	  option).
	  The alpha 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 pamcomp, by
default,
	  performs a calculation on each sample read from its in-
put 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  im-
ages, but rather
	  a   variation	 in  which  the sample values are in fact
directly
	  proportional to intensity. If so, use the  -linear  op-
tion 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

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

   ppmcolormask and pbmmask can help  with  generating	an  alpha
mask.

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

   pnm

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).
     _________________________________________________________________



Table Of Contents

     * NAME
     * SYNOPSIS
     * DESCRIPTION
     * OPTIONS
     * SEE ALSO
     * HISTORY
     * AUTHOR

































UNIX/Linux commands referenced on this page:
  1. composite
  2. top
  3. as
  4. which
  5. file
  6. convert
  7. more
  8. at
  9. less
  10. true
  11. time
  12. pnmcomp
  13. pnmgamma
  14. ppmmix
  15. pnmpaste
  16. ppmcolormask
  17. pbmmask