The composite image is constructed in the following manner. First, each image specified on the command line, except for the last, is scaled to fit the maximum tile size. The maximum tile size by default is 120x120. It can be modified with the -geometry command line argument or X resource. See OPTIONS for more information on command line arguments. See X(1) for more information on X resources. Note that the maximum tile size need not be a square. To respect the aspect ratio of each image append ~ to the geometry specification.
Next the composite image is initialized with the color specified by the -background command line argument or X resource. The width and height of the composite image is determined by the title specified, the maximum tile size, the number of tiles per row, the tile border width and height, the image border width, and the label height. The number of tiles per row specifies how many images are to appear in each row of the composite image. The default is to have 5 tiles in each row and 4 tiles in each column of the composite. A specific value is specified with -tile. The tile border width and height, and the image border width defaults to the value of the X resource -borderwidth. It can be changed with the -borderwidth or -geometry command line argument or X resource. The label height is determined by the font you specify with the -font command line argument or X resource. If you do not specify a font, a font is chosen that allows the name of the image to fit the maximum width of a tiled area. The label colors is determined by the -background and -foreground command line argument or X resource. Note, that if the background and foreground colors are the same, labels will not appear.
Initially, the composite image title is placed at the top if one is specified (refer to -foreground X resource). Next, each image is set onto the composite image, surrounded by its border color, with its name centered just below it. The individual images are left-justified within the width of the tiled area. The order of the images is the same as they appear on the command line unless the images have a scene keyword. If a scene number is specified in each image, then the images are tiled onto the composite in the order of their scene number. Finally, the last argument on the command line is the name assigned to the composite image. By default, the image is written in the MIFF format and can be viewed or printed with display(1).
Note, that if the number of tiles exceeds the default number of 20 (5 per row, 4 per column), more than one composite image is created. To ensure a single image is produced, use -tile to increase the number of tiles to meet or exceed the number of input images.
Finally, Finally, to create one or more empty spaces in the sequence of tiles, use the NULL image format.
montage cockatoo.miff parrot.miff hummingbird.miff birds.miff
To tile several bird images so that they are at most 256 pixels in width and 192 pixels in height, surrounded by a red border, and separated by 10 pixels of background color, use:
montage -geometry 256x192+10+10 -bordercolor red birds.* montage.miff
To create an unlabeled parrot image, 640 by 480 pixels, and surrounded by a border of black, use:
montage -geometry 640x480 -bordercolor black -label "" parrot.miff bird.miff
To create an image of an eagle with a textured background, use:
montage -texture bumps.jpg eagle.jpg eagle.png
To join several GIF images together without any extraneous graphics (e.g. no label, no shadowing, no surrounding tile frame), use: montage +frame +shadow +label -geometry 50x50+0+0 -tile 5x1 *.gif joined.gif
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 remain unchanged. Refer to quantize(9) for more details.
Note, options -dither, -colorspace, and -treedepth affect the color reduction algorithm.
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.
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 scene number by embedding special format characters. Embed %f for filename, %m for magick, %w for width, %h for height, %s for scene number, %b for file size in kilobytes, or \n for newline. 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.
By default, each of the composite image pixels are replaced by the corresponding image tile pixel. You can choose an alternate composite operation:
over in out atop xor plus minus add subtract difference bumpmap replace
The operations behaves as follows:
The image compositor requires an 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. If image does not have an 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).
This option specifies the type of image compression for the composite image. See miff(5) for details.
Specify +compress to store the binary image in an uncompressed format. The default is the compression type of the specified image file.
To specify a percentage width or height instead, append %. For example to crop the image by ten percent on all sides of the image, use -crop 10%.
Use cropping to tile only a particular area of an image. Use -crop 0x0 to remove edges that are the background color.
The equivalent X resource for this option is cropGeometry (class CropGeometry). See X RESOURCES for details.
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.
Specify +display if an X server is not available. The label font is obtained from the X server. If none is available, the composite image will not have labels. Since the X server is necessary to read X resources, all options must be set via the command line when +display is specified.
Graphics Interchange Format (GIF) Specification 89a of July 31, 1990 for details.
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.
Specify the width of the matte with -borderwidth. Use -gravity to specify how the image is oriented within the ornamental border. Use -mattecolor to specify the frame color.
The same color image displayed on two different workstations may look different due to differences in the display monitor. Use gamma correction to adjust for this color difference. Reasonable values extend from 0.8 to 2.3.
You can apply separate gamma values to the red, green, and blue channels of the image with a gamma value list delineated with commas (i.e. 1.7,2.3,1.2).
By default, the width and height are maximum values. That is, the image is expanded or contracted to fit the width and height value while maintaining the aspect ratio of the image. Append an exclamation point to the geometry to force the image size to exactly the size you specify. For example, if you specify 640x480! the image width is set to 640 pixels and height to 480. If only one factor is specified, both the width and height assume the value.
Use < to change the dimensions of the image only if its size exceeds the geometry specification. > resizes the image only if its dimensions is less than the geometry specification. For example, if you specify 640x480> and the image size is 512x512, the image size does not change. However, if the image is 1024x1024, it is resized to 640x480.
Each image is surrounded by a border whose size in pixels is specified as <border width> and <border height> and whose color is the background color. By default, the tile size is 256x256 and there is no border.
The equivalent X resource for this option is imageGeometry (class ImageGeometry). See X RESOURCES for details.
A tile of the composite image is a fixed width and height. However, the image within the tile may not fill it completely (see -geometry). The direction you choose specifies where to position the image within the tile. For example Center gravity forces the image to be centered within the tile. By default, the image gravity is Center.
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.
By default, each image is labeled with its file name. Use this option to assign a specific label to the image. Optionally you can include the image filename, type, width, height, or scene number in the label by embedding special format characters. Embed %f for filename, %m for magick, %w for width, %h for height, %s for scene number, %b for file size in kilobytes, or \n for newline. 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.
Use this option to specify the dimensions of the Postscript page in pixels per inch or a TEXT page in pixels. The default for a Postscript page is to center the image on a letter page 612 by 792 pixels. The margins are 1/2" (i.e. 612x792+42+42). Other common sizes are:
Letter 612x 792 Tabloid 792x1224 Ledger 1224x 792 Legal 612x1008 Statement 396x 612 Executive 540x 720 A3 842x1190 A4 595x 842 A5 420x 595 B4 729x1032 B5 516x 729 Folio 612x 936 Quarto 610x 780 10x14 720x1008
For convenience you can specify the page size by media (e.g. A4, Ledger, etc.).
To place a Postscript image with a given size on a given location on a page, use -page +HOFFSET+VOFFSET -geometry WIDTHxHEIGHT (fill in numbers). Note: this is only for generating Postscript, not Encapsulated Postscript.
To position a GIF image, use -page +LEFT+TOP (e.g. -page +100+200).
The default page dimensions for a TEXT image is 612x792.
Quality is 0 (worst) to 100 (best). The default is 75.
Empty triangles left over from rotating the image are filled with the color defined as bordercolor (class borderColor). See X(1) for details.
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).
Specify the number of tiles per row with width and tiles per column with height. For example if you want 1 tile in each row and a maximum of 10 tiles in the composite image, use -tile 1x10. The default is to have 5 tiles in each row and 4 tiles in each column of the composite.
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 or -monochrome option is required for this option to take effect.
This information is printed: image scene number; image name; image size; the image class (DirectClass or PseudoClass); the total number of unique colors; and the number of seconds to read and write the image.
In addition to those listed above, you can specify these standard X resources as command line options: -background, -bordercolor, -borderwidth, -font, -foreground, -mattecolor, or -title. See X RESOURCES for details.
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. For example, to montage two images, the first with 32 colors and the second with only 16 colors, use:
montage -colors 32 cockatoo.1 -colors 16 cockatoo.2 cockatoo.miff
Change - to + in any option above to reverse its effect. For example, specify +dither to not apply error diffusion to an 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 input_file as - for standard input, output_file as - for standard output. If input_file has the extension .Z or .gz, the file is uncompressed with uncompress or gunzip respectively. If output_file 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,4,7]). For raw images, specify a subimage with a geometry (e.g. -size 640x512 image.rgb[320x256+50+50]).
Single images are written with the filename you specify. However, multi-part images (e.g. a multi-page Postscript document with +adjoin specified) are written with the filename followed by a period (.) and the scene number. You can change this behavior by embedding a printf format specification in the file name. For example, image%02d.miff
montages files image00.miff, image01.miff, etc.
Note, a composite MIFF image displayed to an X server with display behaves differently than other images. You can think of the composite as a visual image directory. Choose a particular tile of the composite and press a button to display it. See display(1) and miff(5) for details.
All montage options have a corresponding X resource. In addition, montage uses the following X resources:
Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of E. I. du Pont de Nemours and Company not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. E. I. du Pont de Nemours and Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
E. I. du Pont de Nemours and Company disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness, in no event shall E. I. du Pont de Nemours and Company be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of this software.
Michael Halle, Spatial Imaging Group at MIT, for the initial implementation of Alan Paeth's image rotation algorithm.
David Pensak, E. I. du Pont de Nemours and Company, for providing a computing environment that made this program possible.
Paul Raveling, USC Information Sciences Institute, for the original idea of using space subdivision for the color reduction algorithm.