.TH ImageMagick 1 "Date: 2009/01/10 01:00:00" "ImageMagick"
.SH NAME
ImageMagick \- is a free software suite for the creation, modification and display of bitmap images.
.SH SYNOPSIS
\fBconvert\fP \fIinput-file\fP [\fIoptions\fP] \fIoutput-file\fP
.SH OVERVIEW

ImageMagick\[rg], is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and B\\['e]zier curves.

ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.

The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically.

ImageMagick includes a number of command-line utilities for manipulating images. Most of you are probably accustom to editing images one at a time with a graphical user interface (GUI) with such programs as gimp or Photoshop. However, a GUI is not always convenient. Suppose you want to process an image dynamically from a web script or you want to apply the same operations to many images or repeat a specific operation at different times to the same or different image. For these types of operations, the command-line image processing utility is appropriate.

In the paragraphs below, find a short description for each command-line tool.Click on the program name to get details on the program usage and a list of command-line options that alters how the program performs. If you are just getting acquianted with ImageMagick, start at the top of the list, the convert program, and work your way dowm. Also be sure to peruse Anthony Thyssen's tutorial on how to use ImageMagick utilities to convert, compose, or edit images from the command-line.
.TP
.B convert

convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
.TP
.B identify

describes the format and characteristics of one or more image files.
.TP
.B mogrify

resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert writes to a different image file.
.TP
.B composite

overlaps one image over another.
.TP
.B montage

create a composite image by combining several separate images. The images are tiled on the composite image optionall adorned with a border, frame, image name, and more.
.TP
.B compare

mathematically and visually annotate the difference between an image and its reconstruction..

.TP
.B stream

is a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats. It writes the pixel components as they are read from the input image a row at a time making stream desirable when working with large images or when you require raw pixel components.

.TP
.B display

displays an image or image sequence on any X server.
.TP
.B animate

animates an image sequence on any X server.
.TP
.B import

saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen.
.TP
.B conjure

interprets and executes scripts written in the Magick Scripting Language (MSL).
.PP
For more information about the ImageMagick, point your browser to file://@DOCUMENTATION_PATH@/index.html or http://www.imagemagick.org/.
.SH SEE ALSO
convert(1), identify(1), composite(1), montage(1), compare(1), display(1), animate(1), import(1), conjure(1), quantize(5), miff(4)

.SH COPYRIGHT
\fBCopyright (C) 1999-2010 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://www.imagemagick.org/script/license.php\fP
