.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
\fBmagick\fP [\fIoptions\fP|\fIinput-file\fP]... \fIoutput-file\fP
\fBmagick-script\fP \fIscript-file\fP [\fIscript-arguments\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.Cl
ick on the program name to get details on the program usage and a list of comman
d-line options that alters how the program performs. If you are just getting acq
uainted with ImageMagick, start at the top of the list, the convert program, and
 work your way down. 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 magick

Read images into memory, and perform operations on those images, and write
then out to either the same of some other image file format.

The "-script" option can be switch from processing command line options,
to reading options from a file or pipeline.
.TP
.B magick-script

As "magick" command but with an implied "-script" option. Allows it to be used
in special "#!/usr/bin/env magick-script" scripts that will search for the
"magick-script" command anywhere along the users command path, rather than in
a hardcorded command location.

.TP
.B convert

Backwards compatiblity for ImageMagick version 6 "convert". Essentually an
alias to a restrictive form of the "magick" command, which should be used
instead.
.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 identify

describes the format and characteristics of one or more image files.
.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 optionally 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-2016 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
