<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" value="application/xhtml+xml" />
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />
  <style type="text/css" media="screen,projection"><!--
    @import url("../www/magick.css");
  --></style>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/vnd.microsoft.icon"/>
  <title>ImageMagick: Command-line Tools</title>
  <meta http-equiv="Content-Language" content="en-US"/>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="command-line, tools, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <meta name="Description" content="ImageMagick® 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é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."/>
  <meta name="Rating" content="GENERAL"/>
  <meta name="Robots" content="INDEX, FOLLOW"/>
  <meta name="Generator" content="ImageMagick Studio LLC"/>
  <meta name="Author" content="ImageMagick Studio LLC"/>
  <meta name="Revisit-after" content="2 DAYS"/>
  <meta name="Resource-type" content="document"/>
  <meta name="Copyright" content="Copyright (c) 1999-2009 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<a href="../index.html">
  <img src="../images/script.png" alt="[ImageMagick]"
  style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin: 45px auto; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="eastbar">

<div class="menu">
  <a href="../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a href="../Magick++/">Magick++</a>
</div>
<div class="menu">
  <a href="../www/architecture.html">Architecture</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="menu">
  <a href="../www/resources.html">Resources</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="http://www.imagemagick.org/script/search.php">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
    <a href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a href="../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
   <a href="http://www.abi-stoff.de/abizeitung/" title="Abibuch">Abizeitung</a><!-- 20101101000200 -->
</div>
<div  class="sponsor">
  <a href="http://www.tomsgutscheine.de">Tom's Gutscheine</a><!-- 201005010360 invendio.de-->
</div>
<div  class="sponsor">
  <a href="http://www.online-kredit-index.de">Kredit</a><!-- 201004010120 Buchhorn -->
</div>
<div  class="sponsor">
  <a href="http://www.blumenversender.com">Blumenversand</a><!-- 201005010120 -->
</div>
<div  class="sponsor">
  <a href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
</div>
<div  class="sponsor">
   <a href="http://www.goyax.de">Börse</a><!-- 201001000240 Gewiese digital-finance.de -->
</div>
<div  class="sponsor">
   <a href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012001200 allesdruck.de-->
</div>
<div  class="sponsor">
  <a href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 201002010000 -->
</div>
</div>
</div>


</div>

<div class="main">

<p class="navigation-index">[<a href="#animate">animate</a> &bull; <a href="#compare">compare</a> &bull; <a href="#composite">composite</a> &bull; <a href="#conjure">conjure</a> &bull; <a href="#convert">convert</a> &bull; <a href="#display">display</a> &bull; <a href="#identify">identify</a> &bull; <a href="#import">import</a> &bull; <a href="#mogrify">mogrify</a> &bull; <a href="#montage">montage</a> &bull; <a href="#stream">stream</a>]</p>

<p>ImageMagick includes a number of command-line utilities for manipulating images.  Most of you are probably accustomed to editing images one at a time with a graphical user interface (GUI) with such programs as <a href="http://www.gimp.org" target="1119772175">gimp</a> or <a href="http://www.adobe.com" target="1569818592">Photoshop</a>.  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.</p>

<p>The ImageMagick command-line tools exit with a status of 0 if the command line arguments have a proper syntax and no problems are encountered.  Expect a descriptive message and an exit status of 1 if any exception occurs such as improper syntax, a problem reading or writing an image, or any other problem that prevents the command from completing successfully.</p>

<p>In the paragraphs below, find a short description for each command-line tool. Click on the program name to get details about the program usage and a list of command-line options that alters how the program behaves.  If you are just getting acquainted with ImageMagick, start with the <a href="#convert">convert</a> program.  Be sure to peruse Anthony Thyssen's tutorial on how to use ImageMagick utilities to <a href="http://www.imagemagick.org/Usage/" target="357872494">convert, compose, or edit</a> images from the command-line.</p>

<div style="margin: auto;">
  <h2><a name="animate"></a><a href="../www/animate.html">animate</a></h2>
</div>

<p>animate an image sequence on any X server.</p>

<div style="margin: auto;">
  <h2><a name="compare"></a><a href="../www/compare.html">compare</a></h2>
</div>

<p>mathematically and visually annotate the difference between an image and its reconstruction.</p>

<div style="margin: auto;">
  <h2><a name="composite"></a><a href="../www/composite.html">composite</a></h2>
</div>

<p>overlap one image over another.</p>

<div style="margin: auto;">
  <h2><a name="conjure"></a><a href="../www/conjure.html">conjure</a></h2>
</div>

<p>interpret and execute scripts written in the Magick Scripting Language (MSL).</p>

<div style="margin: auto;">
  <h2><a name="convert"></a><a href="../www/convert.html">convert</a></h2>
</div>

<p>convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</p>

<div style="margin: auto;">
  <h2><a name="display"></a><a href="../www/display.html">display</a></h2>
</div>

<p>display an image or image sequence on any X server.</p>

<div style="margin: auto;">
  <h2><a name="identify"></a><a href="../www/identify.html">identify</a></h2>
</div>

<p>describe the format and characteristics of one or more image files.</p>

<div style="margin: auto;">
  <h2><a name="import"></a><a href="../www/import.html">import</a></h2>
</div>

<p>save 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.</p>

<div style="margin: auto;">
  <h2><a name="mogrify"></a><a href="../www/mogrify.html">mogrify</a></h2>
</div>

<p>resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.  Mogrify overwrites the original image file, whereas, <a href="../www/convert.html">convert</a> writes to a different image file.</p>

<div style="margin: auto;">
  <h2><a name="montage"></a><a href="../www/montage.html">montage</a></h2>
</div>

<p>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.</p>

<div style="margin: auto;">
  <h2><a name="stream"></a><a href="../www/stream.html">stream</a></h2>
</div>

<p>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 <kbd>stream</kbd> desirable when working with large images or when you require raw pixel components.</p>

</div>

<div id="linkbar">
 <!--    <span id="linkbar-west">&nbsp;</span>  -->
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="../www/mailing-list.html">Mailing Lists</a> &bull;
    <a href="http://studio.webbyland.com/ImageMagick/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2009 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
</body>
</html>
