ImageMagick Image Compositing Utility
Description: ImageMagick is a robust collection of tools and libraries to read, write, and manipulate an image in any of the more popular image formats including GIF, JPEG, PNG, PDF, and Photo CD. With ImageMagick you can create GIFs dynamically making it suitable for Web applications. You can also resize, rotate, sharpen, color reduce, or add special effects to an image and save your completed work in the same or differing image format.
Keywords: ImageMagick, Image Magick, Image Magic, PerlMagick, Perl Magick, Perl Magic, CineMagick, PixelMagick, Pixel Magic, WebMagick, Web Magic, visualization, image processing, software development, simulation, image, software, AniMagick, Animagic, Magick++

Contents

- Synopsis
- Description
- Examples
- Options
- Environment
- Authors
- Copyright

Synopsis

  composite [ options ... ] imagecomposite [ mask ] composited

Back to Contents

Description

  composite composite images to create new images.

Back to Contents

Examples

  To composite an image of a cockatoo with a perch, use:

  `composite cockatoo.miff perch.ras composite.miff`

  To compute the difference between images in a series, use:

  `composite -compose difference series.1 series.2 difference.miff`

  To composite an image of a cockatoo with a perch starting at location (100,150), use:

  `composite -geometry "+1"00"+1"50 cockatoo.miff perch.ras composite.miff`

  To tile a logo across your image of a cockatoo, use

  `convert +shade 30x60 cockatoo.miff mask.miff`
  `composite -compose bumpmap -tile logo.png cockatoo.miff mask.miff composite.miff`

  To composite a red, green, and blue color plane into a single composite image, try

  `composite -compose CopyGreen red.png green.png red-green.png`
  `composite -compose CopyBlue red-green.png blue.png composite.png`

Back to Contents

Options

  Options are processed in command line order. Any option you specify on the command line remains in effect until it is explicitly changed by specifying the option again with a different effect.

-blend value

  blend the two images a given percent.

-cache threshold

  megabytes of memory available to the pixel cache.
  Image pixels are stored in memory until 80 megabytes of memory have been consumed. Subsequent pixel operations are cached on disk. Operations to memory are significantly faster but if your computer does not have a sufficient amount of free memory you may want to adjust this threshold value.

-colors value

  preferred number of colors in the image.
  The actual number of colors in the image may be less than your request, but never more. Note, this is a color reduction option. Images with less unique colors than specified with this option will have any duplicate or unused colors removed. Refer to quantize(9) for more details.
  Note, options -dither, -colorspace, and -treedepth affect the color reduction algorithm.

-colorspace value

  the type of colorspace: GRAY, OHTA, RGB, Transparent, XYZ, YCbCr, YIQ, YPbPr, YUV, or CMYK.
  Color reduction, by default, takes place in the RGB color space. Empirical evidence suggests that distances in color spaces such as YUV or YIQ correspond to perceptual color differences more closely than do distances in RGB space. These color spaces may give better results when color reducing an image. Refer to quantize(9) for more details.

The Transparent color space behaves uniquely in that it preserves the matte channel of the image if it exists.

The -colors or -monochrome option is required for this option to take effect.

-comment string

  annotate an image with a comment.
  By default, each image is commented with its file name. Use this option to assign a specific comment to the image. Optionally you can include the image filename, type, width, height, or other image attribute by embedding special format characters:

        %b   file size
        %d   directory
        %e   filename extention
        %f   filename
        %h   height
        %i   input filename
        %k   number of unique colors
        %l   label
        %m   magick
        %n   number of scenes
        %o   output filename
        %p   page number
        %q   quantum depth
        %s   scene number
        %t   top of filename
        %u   unique temporary filename
        %w   width
        %x   x resolution
        %y   y resolution
        \\n   newline
        \\r   carriage return

For example,

        -comment "%m:%f %wx%h"

  produces an image comment of MIFF:bird.miff 512x480 for an image titled bird.miff and whose width is 512 and height is 480.
  If the first character of string is @, the image comment is read from a file titled by the remaining characters in the string.

-compose operator

  the type of image composition.
  By default, each of the composite image pixels are replaced by the corresponding image tile pixel. You can choose an alternate composite operation. How each operator behaves is described below.

over

  The result will be the union of the two image shapes, with composite image obscuring image in the region of overlap.

in

  The result is simply composite image cut by the shape of image. None of the image data of image will be in the result.

out

  The resulting image is composite image with the shape of image cut out.

atop

  The result is the same shape as image image, with composite image obscuring image where the image shapes overlap. Note this differs from over because the portion of composite image outside image's shape does not appear in the result.

xor

  The result is the image data from both composite image and image that is outside the overlap region. The overlap region will be blank.

plus

  The result is just the sum of the image data. Output values are cropped to 255 (no overflow). This operation is independent of the matte channels.

minus

  The result of composite image - image, with underflow cropped to zero. The matte channel is ignored (set to 255, full coverage).

add

  The result of composite image + image, with overflow wrapping around (mod 256).

subtract

  The result of composite image - image, with underflow wrapping around (mod 256). The add and subtract operators can be used to perform reversible transformations.

difference

  The result of abs(composite image - image). This is useful for comparing two very similar images.

multiply

  The result of composite image * image. This is useful for the creation of drop-shadows.

bumpmap

  The result of image shaded by image.

copy

  The resulting image is image replaced with composite image. Here the matte information is ignored.

  The image compositor requires a matte, or alpha channel in the image for some operations. This extra channel usually defines a mask which represents a sort of a cookie-cutter for the image. This is the case when matte is 255 (full coverage) for pixels inside the shape, zero outside, and between zero and 255 on the boundary. For certain operations, if image does not have a matte channel, it is initialized with 0 for any pixel matching in color to pixel location (0,0), otherwise 255 (to work properly borderwidth must be 0).

-compress type

  the type of image compression: None, BZip, Fax, Group4, JPEG, LZW, RLE or Zip.
  Specify +compress to store the binary image in an uncompressed format. The default is the compression type of the specified image file.

-density <width>x<height>

  vertical and horizontal resolution in pixels of the image.
  This option specifies an image density when decoding a Postscript or Portable Document page. The default is 72 pixels per inch in the horizontal and vertical direction. This option is used in concert with -page

-depth value

  depth of the image. This is the number of bits in a pixel. The only acceptable values are 8 or 16.

-displace<horizontal scale>x<vertical scale>

  shift image pixels as defined by a displacement map.
  With this option, composite image is used as a displacement map. Black, within the displacement map, is a maximum positive displacement. White is a maximum negative displacement and middle gray is neutral. The displacement is scaled to determine the pixel shift. By default, the displacement applies in both the horizontal and vertical directions. However, if you specify mask, composite image is the horizontal X displacement and mask the vertical Y displacement.

-display host:display[.screen]

  specifies the X server to contact; see X(1).

-dispose method

  GIF disposal method.
  Here are the valid methods:

      0     No disposal specified.
      1     Do not dispose between frames.
      2     Overwrite frame with background color from header.
      3     Overwrite with previous frame.

-dither

  apply Floyd/Steinberg error diffusion to the image.
  The basic strategy of dithering is to trade intensity resolution for spatial resolution by averaging the intensities of several neighboring pixels. Images which suffer from severe contouring when reducing colors can be improved with this option.
  The -colors or -monochrome option is required for this option to take effect.
  Use +dither to render Postscript without text or graphic aliasing.

-font name

  This option specifies the font to be used for displaying normal text.
  You can tag a font to specify whether it is a Postscript, Truetype, or X11 font. For example, `Arial.ttf` is a Truetype font, `ps:helvetica` is Postscript, and `x:fixed` is X11.

-geometry {+-}<x offset>{+-}<y offset>{%}{@}{!}{<}{>}

  location of the composite image.
  By default the images are composited relative to the image gravity (see -gravity). Use <x offset> and <y offset> to specify a particular location to composite the images.

-gravity type

  direction image gravitates to within the composite: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast. See X(1) for details about the gravity specification.
  The direction you choose specifies where to position the image within the composite. For example Center gravity forces the image to be centered within the composite. By default, the image gravity is NorthWest.

-interlace type

  the type of interlacing scheme: None, Line, Plane, or Partition. The default is None.
  This option is used to specify the type of interlacing scheme for raw image formats such as RGB or YUV. None means do not interlace (RGBRGBRGBRGBRGBRGB...), Line uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and Plane uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...). Partition is like plane except the different planes are saved to individual files (e.g. image.R, image.G, and image.B).
  Use Line, or Plane to create an interlaced GIF or progressive JPEG image.

-label name

  assign a label to an image.
  Use this option to assign a specific label to the image. Optionally you can include the image filename, type, width, height, or other image attribute by embedding special format character. See -comment for details.
  For example,

        -label "%m:%f %wx%h"

  produces an image label of MIFF:bird.miff 512x480 for an image titled bird.miff and whose width is 512 and height is 480.
  If the first character of string is @, the image label is read from a file titled by the remaining characters in the string.
  When converting to Postscript, use this option to specify a header string to print above the image.

-matte

  store matte channel if the image has one otherwise create an opaque one.

-monochrome

  transform the image to black and white.

-negate

  replace every pixel with its complementary color (white becomes black, yellow becomes blue, etc.).
  The red, green, and blue intensities of an image are negated. Use +negate to only negate the grayscale pixels of the image.

-page <width>x<height>{+-}<x offset>{+-}<y offset>{%}{!}{<}{>}

  size and location of an image canvas.
  Use this option to specify the dimensions of the PostScript page in dots per inch or a TEXT page in pixels. The choices for a Postscript page are:

           11x17         792  1224
           Ledger       1224   792
           Legal         612  1008
           Letter        612   792
           LetterSmall   612   792
           ArchE        2592  3456
           ArchD        1728  2592
           ArchC        1296  1728
           ArchB         864  1296
           ArchA         648   864
           A0           2380  3368
           A1           1684  2380
           A2           1190  1684
           A3            842  1190
           A4            595   842
           A4Small       595   842
           A5            421   595
           A6            297   421
           A7            210   297
           A8            148   210
           A9            105   148
           A10            74   105
           B0           2836  4008
           B1           2004  2836
           B2           1418  2004
           B3           1002  1418
           B4            709  1002
           B5            501   709
           C0           2600  3677
           C1           1837  2600
           C2           1298  1837
           C3            918  1298
           C4            649   918
           C5            459   649
           C6            323   459
           Flsa          612   936
           Flse          612   936
           HalfLetter    396   612

  For convenience you can specify the page size by media (e.g. A4, Ledger, etc.). Otherwise, -page behaves much like -geometry (e.g. `-page letter+43+43>`).
  To position a GIF image, use -page{+-}<x offset>{+-}<y offset> (e.g. -page "+1"00+200).
  For a Postscript page, the image is sized as in -geometry and positioned relative to the lower left hand corner of the page by {+-}<xoffset>{+-}<y offset>. Use `-page 612x792>`, for example, to center the image within the page. If the image size exceeds the Postscript page, it is reduced to fit the page.
  The default page dimensions for a TEXT image is 612x792.
  This option is used in concert with -density.

-quality value

  JPEG/MIFF/PNG compression level.
  For the JPEG image format, quality is 0 (worst) to 100 (best). The default quality is 75.
  Quality for the MIFF and PNG image format sets the amount of image compression (quality / 10) and filter-type (quality % 10). Compression quality values range from 0 (worst) to 100 (best). If filter-type is 4 or less, the specified filter-type is used for all scanlines:

        0: none
        1: sub
        2: up
        3: average
        4: Paeth

  If filter-type is 5, adaptive filtering is used when quality is greater than 50 and the image does not have a color map, otherwise no filtering is used.
  If filter-type is 6 or more, adaptive filtering with minimum-sum-of-absolute-values is used.
  The default is quality is 75. Which means nearly the best compression with adaptive filtering.
  For further information, see the PNG specification.

-scene value

  image scene number.

-size <width>{%}x<height>{%}{+offset}{!}

  width and height of the image.
  Use this option to specify the width and height of raw images whose dimensions are unknown such as GRAY, RGB, or CMYK. In addition to width and height, use -size to skip any header information in the image or tell the number of colors in a MAP image file, (e.g. -size 640x512+256).

-stegano

  hide watermark within an image.
  Use an offset to start the image hiding some number of pixels from the beginning of the image. Note this offset and the image size. You will need this information to recover the steganographic image (e.g. `display -size 320x256+35 stegano:image.png`).

-stereo

  composite two image to create a stereo anaglyph.
  The left side of the stereo pair is saved as the red channel of the output image. The right sife is saved as the green channel. Red-blue stereo glasses are required to properly view the stereo image.

-tile

  repeat composite operation across image.

-treedepth value

  Normally, this integer value is zero or one. A zero or one tells composite to choose an optimal tree depth for the color reduction algorithm.
  An optimal depth generally allows the best representation of the source image with the fastest computational speed and the least amount of memory. However, the default depth is inappropriate for some images. To assure the best representation, try values between 2 and 8 for this parameter. Refer to quantize(9) for more details.
  The -colors option is required for this option to take effect.

-type type

  the image type: Bilevel, Grayscale, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, or ColorSeparationMatte.

-verbose

  print detailed information about the image.
  This information is printed: image scene number; image name; composited image name; image size; the image class (DirectClass or PseudoClass); the total number of unique colors; and the number of seconds to read and composite the image.

  By default, the image format is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). See convert(1) for a list of valid image formats.
  When you specify X as your image type, the filename has special meaning. It specifies an X window by id, name, or root. If no filename is specified, the window is selected by clicking the mouse in the desired window.
  Specify image as - for standard input, composited as - for standard output. If image has the extension .Z or .gz, the file is uncompressed with uncompress or gunzip respectively. If composited has the extension .Z or .gz, the file size is compressed using with compress or gzip respectively. Finally, precede the image file name with | to pipe to or from a system command.
  Use an optional index enclosed in brackets after a file name to specify a desired subimage of a multi-resolution image format like Photo CD (e.g. img0001.pcd[4]) or a range for MPEG images (e.g. video.mpg[50-75]). A subimage specification can be disjoint (e.g. image.tiff[2,7,4]). For raw images, specify a subimage with a geometry (e.g. -size 640x512 image.rgb[320x256+50+50]).

The optional mask can be used to provide matte information for composite when it has none or if you want a different mask. A mask image is typically grayscale and the same size as composite. If the image is not grayscale, it is converted to grayscale and the resulting intensities are used as matte information.

  If composited already exists, you will be prompted as to whether it should be overwritten.

Back to Contents

Environment

DISPLAY

  To get the default host, display number, and screen.

Back to Contents

Authors

  John Cristy, magick@wizards.dupont.com E.I. du Pont de Nemours and Company Incorporated.

Back to Contents

Copyright

  Copyright (C) 2001 ImageMagick Studio
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files ("ImageMagick"), to deal in ImageMagick without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of ImageMagick, and to permit persons to whom the ImageMagick is furnished to do so, subject to the following conditions:
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of ImageMagick.
  The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement.In no event shall ImageMagick Studio be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with ImageMagick or the use or other dealings in ImageMagick.
  Except as contained in this notice, the name of the E. I. du Pont de Nemours and Company shall not be used in advertising or otherwise to promote the sale, use or other dealings in ImageMagick without prior written authorization from the ImageMagick Studio.

Back to Contents

Image manipulation software that works like magic.