# ImageMagick ImageInfo Structure

The ImageInfo structure is used to supply option information to the functions AllocateImage(), AnimateImages(), BlobToImage(), CloneAnnotateInfo(), DisplayImages(), GetAnnotateInfo(), ImageToBlob(), PingImage(), ReadImage(), ReadImages(), and,
WriteImage(). These functions update information in ImageInfo to reflect attributes of the current image.

Use CloneImageInfo() to duplicate an existing ImageInfo structure or allocate a new one.
Use DestroyImageInfo() to deallocate memory associated with an ImageInfo structure.
Use GetImageInfo() to initialize an existing ImageInfo structure.
Use SetImageInfo() to set image type information in the ImageInfo structure based on an existing image.

The members of the ImageInfo structure are shown in the following table:

ImageInfo Structure Members
Member | Type | Description
adjoin | unsigned int | Join images into a single multi-image file.
antialias | unsigned int | Control antialiasing of rendered Postscript and Postscript or TrueType fonts. Enabled by default.
background_color | PixelPacket | Image background color.
border_color | PixelPacket | Image border color.
colorspace | ColorspaceType | Image pixel interpretation.If the colorspace is RGB the pixels are red, green, blue. If matte is true, then red, green, blue, and index. If it is CMYK, the pixels are cyan, yellow, magenta, black. Otherwise the colorspace is ignored.
compression | CompressionType | Image compresion type. The default is the compression type of the specified image file.
delay | char * | Time in 1/100ths of a second (0 to 65535) which must expire before displaying the next image in an animated sequence. This option is useful for regulating the animation of a sequence of GIF images within Netscape.
density | char * | Vertical and horizontal resolution in pixels of the image. This option specifies an image density when decoding a Postscript or Portable Document page. Often used with page.
depth | unsigned int | Image depth (8 or 16). QuantumLeap must be defined before a depth of 16 is valid.
dispose | char * | GIF disposal method. This option is used to control how successive frames are rendered (how the preceding frame is disposed of) when creating a GIF animation.
dither | unsigned int | 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 must be set for this option to take effect.
file | FILE * | Stdio stream to read image from or write image to. If set, ImageMagick will read from or write to the stream rather than opening a file. Used by ReadImage() and WriteImage(). The stream is closed when the operation completes.
filename | char[MaxTextExtent] | Image file name to read or write.
fill | PixelPacket | Drawing object fill color.
font | char * | Text rendering font. If the font is a fully qualified X server font name, the font is obtained from an X server. To use a TrueType font, precede the TrueType filename with an @. Otherwise, specify a Postscript font name (e.g. "helvetica").
fuzz | int | Colors within this distance are considered equal. A number of algorithms search for a target color. By default the color must be exact. Use this option to match colors that are close to the target color in RGB space.
interlace | InterlaceType | The type of interlacing scheme (default NoInterlace). This option is used to specify the type of interlacing scheme for raw image formats such as RGB or YUV. NoInterlace means do not interlace, LineInterlace uses scanline interlacing, and PlaneInterlace uses plane interlacing. PartitionInterlace is like PlaneInterlace except the different planes are saved to individual files (e.g. image.R, image.G, and image.B). Use LineInterlace or PlaneInterlace to create an interlaced GIF or progressive JPEG image.
iterations | char * | Number of iterations to loop an animation (e.g. Netscape loop extension) for.
linewidth | unsigned int | Line width for drawing lines, circles, ellipses, etc.
magick | char[MaxTextExtent] | Image encoding format (e.g. "GIF").
matte_color | PixelPacket | Image matte (transparent) color.
monochrome | unsigned int | Transform the image to black and white.
page | char * | Equivalent size of Postscript page.
ping | unsigned int | Set to True to read enough of the image to determine the image columns, rows, and filesize. The columns, rows, and size attributes are valid after invoking ReadImage() while ping is set. The image data is not valid after calling ReadImage() if ping is set.
pointsize | double | Text rendering font point size.
preview_type | PreviewType | Image manipulation preview option. Used by 'display'.
quality | unsigned int | JPEG/MIFF/PNG compression level (default 75).
server_name | char * | X11 display to display to obtain fonts from, or to capture image from.
size | char * | Width and height of a raw image (an image which does not support width and height information). Size may also be used to affect the image size read from a multi-resolution format (e.g. Photo CD, JBIG, or JPEG.
stroke | PixelPacket | Drawing object outline color.
subimage | unsigned int | Subimage of an image sequence.
subrange | unsigned int | Number of images relative to the base image.
texture | char * | Image filename to use as background texture.
tile | char * | Tile name.
units | ResolutionType | Units of image resolution.
verbose | unsigned int | Print detailed information about the image if True.
view | char * | FlashPix viewing parameters.

Image manipulation software that works like magic.