



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
  <title>ImageMagick: Command-line Options</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="Application-name" content="ImageMagick"/>
  <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="command-line, options, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <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-2011 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
  <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
  <script type="text/javascript">
    $(document).ready(function() {
      $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
        'transitionIn'  : 'elastic',
        'transitionOut' : 'elastic',
        'overlayShow'   : false,
        'opacity'       : true
      });
    });
  </script>
</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-top: 42px; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg"
  alt="ImageMagick Logo"
  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg"
  alt="ImageMagick Sprite"
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: iPhone" href="../www/binary-releases.html#iPhone">iPhone</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="../www/magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="../www/resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="../www/architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="../www/search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
  <a title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201106010090 alexanian media -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div class="sponsor">
  <a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a title="Sponsor: Webdesign" href="http://www.renehornig.com/">Webdesign</a><!-- 20111001000240 -->
</div>
</div>
</div>
</div>

<div class="eastbar">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "0574824969";
    google_ad_width = 160;
    google_ad_height = 600;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>

<div class="main">

<h1>Create, Edit, or Compose Bitmap Images With These Command-line Options</h1>
<p class="navigation-index">
[ <a href="../www/command-line-options.html#adaptive-blur">&#x2011;adaptive&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#adaptive-resize">&#x2011;adaptive&#x2011;resize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#adaptive-sharpen">&#x2011;adaptive&#x2011;sharpen</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#adjoin">&#x2011;adjoin</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#affine">&#x2011;affine</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#alpha">&#x2011;alpha</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#annotate">&#x2011;annotate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#antialias">&#x2011;antialias</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#append">&#x2011;append</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#attenuate">&#x2011;attenuate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#authenticate">&#x2011;authenticate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#auto-gamma">&#x2011;auto&#x2011;gamma</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#auto-level">&#x2011;auto&#x2011;level</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#auto-orient">&#x2011;auto&#x2011;orient</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#backdrop">&#x2011;backdrop</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#background">&#x2011;background</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#bench">&#x2011;bench</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#bias">&#x2011;bias</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#blackpoint-compensation">&#x2011;blackpoint&#x2011;compensation</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#blend">&#x2011;blend</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#blue-primary">&#x2011;blue&#x2011;primary</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#blue-shift">&#x2011;blue&#x2011;shift</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#blur">&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#border">&#x2011;border</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#bordercolor">&#x2011;bordercolor</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#borderwidth">&#x2011;borderwidth</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#brightness-contrast">&#x2011;brightness&#x2011;contrast</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#cache">&#x2011;cache</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#caption">&#x2011;caption</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#cdl">&#x2011;cdl</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#channel">&#x2011;channel</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#charcoal">&#x2011;charcoal</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#chop">&#x2011;chop</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clamp">&#x2011;clamp</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clip">&#x2011;clip</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clone">&#x2011;clone</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#clut">&#x2011;clut</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#coalesce">&#x2011;coalesce</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#colorize">&#x2011;colorize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#colormap">&#x2011;colormap</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#color-matrix">&#x2011;color&#x2011;matrix</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#colors">&#x2011;colors</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#colorspace">&#x2011;colorspace</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#combine">&#x2011;combine</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#comment">&#x2011;comment</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#compose">&#x2011;compose</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#composite">&#x2011;composite</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#compress">&#x2011;compress</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#contrast">&#x2011;contrast</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#contrast-stretch">&#x2011;contrast&#x2011;stretch</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#convolve">&#x2011;convolve</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#crop">&#x2011;crop</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#cycle">&#x2011;cycle</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#debug">&#x2011;debug</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#decipher">&#x2011;decipher</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#deconstruct">&#x2011;deconstruct</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#define">&#x2011;define</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#delay">&#x2011;delay</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#delete">&#x2011;delete</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#density">&#x2011;density</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#depth">&#x2011;depth</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#descend">&#x2011;descend</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#deskew">&#x2011;deskew</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#despeckle">&#x2011;despeckle</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#direction">&#x2011;direction</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#displace">&#x2011;displace</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#display">&#x2011;display</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#dispose">&#x2011;dispose</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#dissimilarity-threshold">&#x2011;dissimilarity&#x2011;threshold</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#dissolve">&#x2011;dissolve</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#distort">&#x2011;distort</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#dither">&#x2011;dither</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#draw">&#x2011;draw</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#edge">&#x2011;edge</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#emboss">&#x2011;emboss</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#encipher">&#x2011;encipher</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#encoding">&#x2011;encoding</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#endian">&#x2011;endian</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#enhance">&#x2011;enhance</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#equalize">&#x2011;equalize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#evaluate">&#x2011;evaluate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#evaluate-sequence">&#x2011;evaluate&#x2011;sequence</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#extent">&#x2011;extent</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#extract">&#x2011;extract</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#family">&#x2011;family</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#features">&#x2011;features</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#fft">&#x2011;fft</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#fill">&#x2011;fill</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#filter">&#x2011;filter</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#flatten">&#x2011;flatten</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#flip">&#x2011;flip</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#floodfill">&#x2011;floodfill</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#flop">&#x2011;flop</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#font">&#x2011;font</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#foreground">&#x2011;foreground</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#format">&#x2011;format</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#format_identify_">&#x2011;format[identify]</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#frame">&#x2011;frame</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#frame_import_">&#x2011;frame[import]</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#function">&#x2011;function</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#fuzz">&#x2011;fuzz</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#fx">&#x2011;fx</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#gamma">&#x2011;gamma</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#geometry">&#x2011;geometry</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#gravity">&#x2011;gravity</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#green-primary">&#x2011;green&#x2011;primary</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#hald-clut">&#x2011;hald&#x2011;clut</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#help">&#x2011;help</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#highlight-color">&#x2011;highlight&#x2011;color</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#iconGeometry">&#x2011;iconGeometry</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#iconic">&#x2011;iconic</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#identify">&#x2011;identify</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#ift">&#x2011;ift</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#immutable">&#x2011;immutable</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#implode">&#x2011;implode</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#insert">&#x2011;insert</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#intent">&#x2011;intent</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#interlace">&#x2011;interlace</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#interpolate">&#x2011;interpolate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#interline-spacing">&#x2011;interline&#x2011;spacing</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#interword-spacing">&#x2011;interword&#x2011;spacing</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#kerning">&#x2011;kerning</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#label">&#x2011;label</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#lat">&#x2011;lat</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#layers">&#x2011;layers</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#level">&#x2011;level</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#level-colors">&#x2011;level&#x2011;colors</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#limit">&#x2011;limit</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#linear-stretch">&#x2011;linear&#x2011;stretch</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#linewidth">&#x2011;linewidth</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#liquid-rescale">&#x2011;liquid&#x2011;rescale</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#list">&#x2011;list</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#log">&#x2011;log</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#loop">&#x2011;loop</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#lowlight-color">&#x2011;lowlight&#x2011;color</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#magnify">&#x2011;magnify</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#map">&#x2011;map</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#map_stream_">&#x2011;map[stream]</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#mask">&#x2011;mask</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#mattecolor">&#x2011;mattecolor</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#median">&#x2011;median</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#metric">&#x2011;metric</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#mode">&#x2011;mode</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#modulate">&#x2011;modulate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#monitor">&#x2011;monitor</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#monochrome">&#x2011;monochrome</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#morph">&#x2011;morph</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#morphology">&#x2011;morphology</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#mosaic">&#x2011;mosaic</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#motion-blur">&#x2011;motion&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#name">&#x2011;name</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#negate">&#x2011;negate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#noise">&#x2011;noise</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#normalize">&#x2011;normalize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#opaque">&#x2011;opaque</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#orient">&#x2011;orient</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#page">&#x2011;page</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#paint">&#x2011;paint</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#path">&#x2011;path</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#pause_animate_">&#x2011;pause[animate]</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#pause_import_">&#x2011;pause[import]</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#pen">&#x2011;pen</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#ping">&#x2011;ping</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#pointsize">&#x2011;pointsize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#polaroid">&#x2011;polaroid</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#posterize">&#x2011;posterize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#precision">&#x2011;precision</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#preview">&#x2011;preview</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#print">&#x2011;print</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#process">&#x2011;process</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#profile">&#x2011;profile</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#quality">&#x2011;quality</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#quantize">&#x2011;quantize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#quiet">&#x2011;quiet</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#raise">&#x2011;raise</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#red-primary">&#x2011;red&#x2011;primary</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#regard-warnings">&#x2011;regard&#x2011;warnings</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#region">&#x2011;region</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#remap">&#x2011;remap</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#remote">&#x2011;remote</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#render">&#x2011;render</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#repage">&#x2011;repage</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#resample">&#x2011;resample</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#resize">&#x2011;resize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#respect-parentheses">&#x2011;respect&#x2011;parentheses</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#reverse">&#x2011;reverse</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#roll">&#x2011;roll</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#rotate">&#x2011;rotate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sample">&#x2011;sample</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sampling-factor">&#x2011;sampling&#x2011;factor</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#scale">&#x2011;scale</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#scene">&#x2011;scene</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#screen">&#x2011;screen</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#seed">&#x2011;seed</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#segment">&#x2011;segment</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#selective-blur">&#x2011;selective&#x2011;blur</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#separate">&#x2011;separate</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#set">&#x2011;set</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#shade">&#x2011;shade</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#shadow">&#x2011;shadow</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#shared-memory">&#x2011;shared&#x2011;memory</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sharpen">&#x2011;sharpen</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#shave">&#x2011;shave</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#shear">&#x2011;shear</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#silent">&#x2011;silent</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#size">&#x2011;size</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sketch">&#x2011;sketch</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#smush">&#x2011;smush</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#snaps">&#x2011;snaps</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#solarize">&#x2011;solarize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#sparse-color">&#x2011;sparse&#x2011;color</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#splice">&#x2011;splice</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#spread">&#x2011;spread</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#stegano">&#x2011;stegano</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#stereo">&#x2011;stereo</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#stretch">&#x2011;stretch</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#strip">&#x2011;strip</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#stroke">&#x2011;stroke</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#strokewidth">&#x2011;strokewidth</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#style">&#x2011;style</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#subimage-search">&#x2011;subimage&#x2011;search</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#swap">&#x2011;swap</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#swirl">&#x2011;swirl</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#synchronize">&#x2011;synchronize</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#taint">&#x2011;taint</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#text-font">&#x2011;text&#x2011;font</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#texture">&#x2011;texture</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#threshold">&#x2011;threshold</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#thumbnail">&#x2011;thumbnail</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#tile">&#x2011;tile</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#tile-offset">&#x2011;tile&#x2011;offset</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#tint">&#x2011;tint</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#title">&#x2011;title</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#transform">&#x2011;transform</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#transparent">&#x2011;transparent</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#transparent-color">&#x2011;transparent&#x2011;color</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#transpose">&#x2011;transpose</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#transverse">&#x2011;transverse</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#treedepth">&#x2011;treedepth</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#trim">&#x2011;trim</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#type">&#x2011;type</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#undercolor">&#x2011;undercolor</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#unique-colors">&#x2011;unique&#x2011;colors</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#units">&#x2011;units</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#unsharp">&#x2011;unsharp</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#update">&#x2011;update</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#verbose">&#x2011;verbose</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#version">&#x2011;version</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#view">&#x2011;view</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#vignette">&#x2011;vignette</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#virtual-pixel">&#x2011;virtual&#x2011;pixel</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#visual">&#x2011;visual</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#watermark">&#x2011;watermark</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#wave">&#x2011;wave</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#weight">&#x2011;weight</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#white-point">&#x2011;white&#x2011;point</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#window">&#x2011;window</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#window-group">&#x2011;window&#x2011;group</a> <span class='bull'>&nbsp;&bull; </span> <a href="../www/command-line-options.html#write">&#x2011;write</a>  ] </p>

<div class="doc-section">

<p>Below is list of command-line options recognized by the ImageMagick <a
href="../www/command-line-tools.html">command-line
tools</a>. If you want a description of a particular option, click on the
option name in the navigation bar above and you will go right to it. Unless
otherwise noted, each option is recognized by the commands <a href="../www/convert.html">convert</a>, <a href="../www/mogrify.html">mogrify</a>.</p>

<div style="margin: auto;">
  <h4><a id="adaptive-blur"></a>-adaptive-blur <em class="arg">radius</em>[x<em class="arg">sigma</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Adaptively blur pixels, with decreasing effect near edges.</td><td style='text-align:right;'></td></tr></table>
<p>A Gaussian operator of the given radius and standard deviation (<em class="arg">sigma</em>) is used. If <em class="arg">sigma</em> is not given it defaults to 1.</p>

<div style="margin: auto;">
  <h4><a id="adaptive-resize"></a>-adaptive-resize <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Resize the image using data-dependent triangulation.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <a href="#adaptive-resize">-adaptive-resize</a> option defaults to data-dependent triangulation.  Use the <a href="#filter">-filter</a> to choose a different resampling algorithm.  Offsets, if present in the geometry string, are ignored, and the <a href="#gravity">-gravity</a> option has no effect.</p>

<div style="margin: auto;">
  <h4><a id="adaptive-sharpen"></a>-adaptive-sharpen <em class="arg">radius</em>[x<em class="arg">sigma</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Adaptively sharpen pixels, with increasing effect near edges.</td><td style='text-align:right;'></td></tr></table>

<p>A Gaussian operator of the given radius and standard deviation (<em class="arg">sigma</em>) is used. If <em class="arg">sigma</em> is not given it defaults to 1.</p>

<div style="margin: auto;">
  <h4><a id="adjoin"></a>-adjoin</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Join images into a single multi-image file.</td><td style='text-align:right;'></td></tr></table>

<p>This option is enabled by default. An attempt is made to save all images of
an image sequence into the given output file.  However, some formats, such as
JPEG and PNG, do not support more than one image per file, and in that case
ImageMagick is forced to write each image as a separate file.  As such, if
more than one image needs to be written, the filename given is modified by
adding a <a href="#scene">-scene</a> number before the suffix, in order to
make distinct names for each image. </p>

<p>Use <a href="#adjoin">+adjoin</a> to force each image to be written to
separate files, whether or not the file format allows multiple images per file
(for example, GIF, MIFF, and TIFF). </p>

<p>Including a C-style integer format string in the output filename will
automagically enable <a href="#adjoin">+adjoin</a> and are used to specify
where the <a href="#scene">-scene</a> number is placed in the filenames. These
strings, such as '<kbd>%d</kbd>' or '<kbd>%03d</kbd>', are familiar to those
who have used the standard <kbd>printf()</kbd>' C-library function. As an
example, the command</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert logo: rose: -morph 15 my%02dmorph.jpg</span></p>
<p>will create a sequence of 17 images (the two given plus 15 more created by
<a href="#morph">-morph</a>), named: my00morph.jpg, my01morph.jpg,
my02morph.jpg, ..., my16morph.jpg.  </p>

<p>In summary, ImageMagick tries to write all images to one file, but will
save to multiple files, if any of the following conditions exist...
<ol>
<li>the output image's file format does not allow multi-image files,
<li>the <a href="#adjoin">+adjoin</a> option is given, or
<li>a printf() integer format string (eg: "%d") is present in the output
 filename.
</ol></p>


<div style="margin: auto;">
  <h4><a id="affine"></a>-affine
  <em class="arg">s<sub>x</sub></em>,<em class="arg">r<sub>x</sub></em>,<em
  class="arg">r<sub>y</sub></em>,<em class="arg">s<sub>y</sub></em>[,<em
  class="arg">t<sub>x</sub></em>,<em class="arg">t<sub>y</sub></em>]
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the drawing transformation matrix for combined rotating and scaling.</td><td style='text-align:right;'></td></tr></table>

<p>This option sets a transformation matrix, for use by subsequent <a
href="#draw">-draw</a> or <a href="#transform">-transform</a> options. </p>

<p>The matrix entries are entered as comma-separated numeric values either in
quotes or without spaces. </p>

<p>Internally, the transformation matrix has 3x3 elements, but three of them
are omitted from the input because they are constant. The new (transformed)
coordinates (<em class="arg">x'</em>, <em class="arg">y'</em>) of a pixel at
position (<em class="arg">x</em>, <em class="arg">y</em>) in the original
image are calculated using the following matrix equation.</p>

<div class="eqn">
<img alt="affine transformation"  src="../images/affine.png"/>
</div>

<p> The size of the resulting image is that of the smallest rectangle that
contains the transformed source image.  The parameters <em
class="arg">t<sub>x</sub></em> and <em class="arg">t<sub>y</sub></em>
subsequently shift the image pixels so that those that are moved out of the
image area are cut off.</p>

<p>The transformation matrix complies with the left-handed pixel coordinate
system: positive <em class="arg">x</em> and <em class="arg">y</em> directions
are rightward and downward, resp.; positive rotation is clockwise.</p>

<p> If the translation coefficients <em class="arg">t<sub>x</sub></em> and <em
class="arg">t<sub>y</sub></em> are omotted they default to 0,0. Therefore,
four parameters suffice for rotation and scaling without translation.</p>

<p>Scaling by the factors <em class="arg">s<sub>x</sub></em> and <em
class="arg">s<sub>y</sub></em> in the <em>x</em> and <em>y</em> directions,
respectively, is accomplished with the following.</p>

<p>See <a href="#transform">-transform</a>, and the <a
href="#distort">-distort</a> method '<kbd>Affineprojection</kbd> for more
information </p>


<p class="crtsnip">
 -affine <em class="arg">s<sub>x</sub></em>,0,0,<em class="arg">s<sub>y</sub></em>
</p>

<p>Translation by a displacement (<em class="arg">t<sub>x</sub></em>, <em class="arg">t<sub>y</sub></em>) is accomplished like so:</p>

<p class="crtsnip">
  -affine 1,0,0,1,<em class="arg">t<sub>x</sub></em>,<em class="arg">t<sub>y</sub></em>
</p>

<p>Rotate clockwise about the origin (the upper left-hand corner) by an angle <em>a</em> by letting
<em>c</em> = cos(<em>a</em>), <em>s</em> = sin(<em>a</em>), and using the following.</p>

<p class="crtsnip">
  -affine <em>c</em>,<em>s</em>,-<em>s</em>,<em>c</em>
</p>

<p>The cumulative effect of a sequence of <a href="#affine" >-affine</a> transformations can be accomplished by instead by a single <a href="#affine" >-affine</a> operation using the matrix equal to the product of the matrices of the individual transformations.</p>

<p>An attempt is made to detect near-singular transformation matrices. If the matrix determinant has a sufficiently small absolute value it is rejected.</p>

<div style="margin: auto;">
  <h4><a id="alpha"></a>-alpha <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Gives control of the alpha/matte channel of an image.</td><td style='text-align:right;'></td></tr></table>

<p>Used to set a flag on an image indicating whether or not to use existing alpha
channel data, to create an alpha channel, or to perform other operations on the alpha channel.  Choose the argument <em class="arg">type</em> from the list below.</p>


<table class="doc">
  <tbody>
  <tr valign="top">
    <th align="left" style="width: 8%">type</th>
    <th align="left">Description</th>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Activate</kbd> or <kbd>On</kbd></td>
    <td valign="top">
       Enable the image's transparency channel. Note normally <kbd>Set</kbd>
       should be used instead of this, unless you specifically need to
       preserve existing (but specifically turned <kbd>Off</kbd>) transparency
       channel. </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Deactivate</kbd> or <kbd>Off</kbd></td>
    <td valign="top">
       Disables the image's transparency channel. Does not delete or change the
       existing data, just turns off the use of that data.</td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Set</kbd></td>
    <td valign="top">
       Activates the alpha/matte channel. If it was previously turned off
       then it also resets the channel to opaque.  If the image already had
       the alpha channel turned on, it will have no effect.</td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Opaque</kbd></td>
    <td valign="top">
       Enables the alpha/matte channel and forces it to be fully opaque.
       </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Transparent</kbd></td>
    <td valign="top">
       Activates the alpha/matte channel and forces it to be fully
       transparent. This effectively creates a fully transparent image the
       same size as the original and with all its original RGB data still
       intact, but fully transparent. </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Extract</kbd></td>
    <td valign="top">
       Copies the alpha channel values into all the color channels and turns
       '<kbd>Off</kbd>' the the image's transparency, so as to generate
       a gray-scale mask of the image's shape. The alpha channel data is left
       intact just deactivated.  This is the inverse of '<kbd>Copy</kbd>'.
       </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Copy</kbd></td>
    <td valign="top">
       Turns '<kbd>On</kbd>' the alpha/matte channel, then copies the
       gray-scale intensity of the image, into the alpha channel, converting
       a gray-scale mask into a transparent shaped mask ready to be colored
       appropriately. The color channels are not modified.  </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Shape</kbd></td>
    <td valign="top">
       As per '<kbd>Copy</kbd>' but also colors the resulting shape mask with
       the current background color.  That is the RGB color channels is
       replaced, with appropriate alpha shape.
       </td></tr>

  <tr valign="top">
    <td valign="top"><kbd>Background</kbd></td>
    <td valign="top">
       Set any fully-transparent pixel to the background color, while leaving
       it fully-transparent.  This can make some image file formats, such as
       PNG, smaller as the RGB values of transparent pixels are more uniform,
       and thus can compress better.
       </td></tr>
  </tbody>
</table>

<p>Note that while the <a href="#matte" >+matte</a> operation is the same as
"<kbd><a href="#alpha" >-alpha</a> Off</kbd>", the <a href="#matte"
>-matte</a> operation is the same as "<kbd><a href="#alpha" >-alpha</a>
Set</kbd>" and not "<kbd><a href="#alpha" >-alpha</a> On</kbd>".  </p>


<div style="margin: auto;">
 <h4><a id="annotate"></a>
 -annotate <em class="arg">degrees</em> <em class="arg">text</em><br />
 -annotate <em class="arg">Xdegrees</em>x<em class="arg">Ydegrees</em> <em class="arg">text</em><br />
 -annotate <em class="arg">Xdegrees</em>x<em class="arg">Ydegrees</em> {+-}<em class="arg">t<sub>x</sub></em>{+-}<em class="arg">t<sub>y</sub></em> <em class="arg">text</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Annotate an image with text.</td><td style='text-align:right;'></td></tr></table>

<p>This is a convenience for annotating an image with text. For more precise control over text annotations, use <a href="#draw">-draw</a>.</p>


<p>The values <em class="arg">Xdegrees</em> and <em class="arg">Ydegrees</em> control the shears with respect to the , respectively, applied to the text, while <em class="arg">t<sub>x</sub></em> and <em class="arg">t<sub>y</sub></em> are offsets that give the location of the text relative to the upper left corner of the image.</p>

<p>Using <a href="#annotate">-annotate</a>&nbsp;<em class="arg">degrees</em> or <a href="#annotate">-annotate</a>&nbsp;<em class="arg">degrees</em>x<em class="arg">degrees</em> produces an unsheared rotation of the text. The direction of the rotation is positive, which means a clockwise rotation if <em class="arg">degrees</em> is positive. (This conforms to the usual mathematical convention once it is realized that the positive <em>y</em>&ndash;direction is conventionally considered to be <em>downward</em> for images.)</p>

<p>The new (transformed) coordinates (<em class="arg">x'</em>, <em class="arg">y'</em>) of a pixel at position (<em class="arg">x</em>, <em class="arg">y</em>) in the image are calculated using the following matrix equation.</p>
<div class="eqn"><img alt="annotate transformation"  src="../images/annotate.png"/></div>

<p>If <em class="arg">t<sub>x</sub></em> and <em class="arg">t<sub>y</sub></em> are omitted, they default to 0. This makes the bottom-left of the text becomes the upper-left corner of the image, which is probably undesirable. Adding a <a href="#gravity" >-gravity</a> option in this case leads to nice results.</p>

<p>Text is any UTF-8 encoded character sequence.  If <em class="arg">text</em> is of the form '@mytext.txt', the text is read from the file <kbd>mytext.txt</kbd>.  Text  in a file is taken literally; no embedded formatting characters are recognized.</p>

<div style="margin: auto;">
  <h4><a id="antialias"></a>-antialias</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Enable/Disable of the rendering of anti-aliasing pixels when
drawing fonts and lines.</td><td style='text-align:right;'></td></tr></table>

<p>By default, objects (e.g. text, lines, polygons, etc.) are antialiased when
drawn.  Use <a href="#antialias">+antialias</a> to disable the addition of
antialiasing edge pixels.  This will then reduce the number of colors added to
an image to just the colors being directly drawn.  That is, no mixed colors
are added when drawing such objects. </p>

<div style="margin: auto;">
  <h4><a id="append"></a>-append</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Join current images vertically or horizontally.</td><td style='text-align:right;'></td></tr></table>

<p>This option creates a single longer image image, by joining all the current
images in sequence top-to-bottom. Use <a href="#append">+append</a> to
stack images left-to-right. </p>

<p>If they are not of the same width, narrower images are padded with the
current <a href="#background">-background</a> color setting, and their
position relative to each other can be controlled by the current <a
href="#gravity">-gravity</a> setting. </p>


<div style="margin: auto;">
  <h4><a id="attenuate"></a>-attenuate <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Lessen (or intensify) when adding noise to an image.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="authenticate"></a>-authenticate <em class="arg">password</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Decrypt a PDF with a password.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to supply a <em class="arg">password</em> for decrypting a PDF that has been encrypted using Microsoft Crypto API (MSC API). The encrypting using the MSC API is not supported.</p>

<p>For a different encryption method, see <a href="#encipher">-encipher</a> and <a href="#decipher">-decipher</a>. </p>



<div style="margin: auto;">
  <h4><a id="auto-gamma"></a>-auto-gamma</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Automagically adjust gamma level of image.</td><td style='text-align:right;'></td></tr></table>

<p>This calculates the mean values of an image, then applies a calculated  <a
href="#gamma" >-gamma</a> adjustment so that is the mean color exists in the
image it will get a have a value of 50%. </p>

<p>This means that any solid 'gray' image becomes 50% gray. </p>

<p>This works well for real-life images with little or no extreme dark and
light areas, but tend to fail for images with large amounts of bright sky or
dark shadows. It also does not work well for diagrams or cartoon like images.
</p>

<p>It uses the <a href="#channel" >-channel</a> setting, (including the
'<em>sync</em>' flag for channel syncronization), to determine which color
values is used and modified. As the default <a href="#channel"
>-channel</a> setting is '<em>RGB,sync</em>', channels are modified
together by the same gamma value, preserving colors. </p>



<div style="margin: auto;">
  <h4><a id="auto-level"></a>-auto-level</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Automagically adjust color levels of image.</td><td style='text-align:right;'></td></tr></table>

<p>This is a 'perfect' image normalization operator.  It finds the exact
minimum and maximum color values in the image and then applies a <a
href="#level" >-level</a> operator to stretch the values to the full range of
values. </p>

<p>The operator is not typically used for real-life images, image scans, or
JPEG format images, as a single 'out-rider' pixel can set a bad min/max values
for the <a href="#level" >-level</a> operation.  On the other hand it is the
right operator to use for color stretching gradient images being used to
generate Color lookup tables, distortion maps, or other 'mathematically'
defined images.  </p>

<p>The operator is very similar to the <a href="#normalize">-normalize</a>, <a
href="#contrast-stretch" >-contrast-stretch</a>, and <a href="#linear-stretch"
>-linear-stretch</a> operators, but without 'histogram binning' or 'clipping'
problems that these operators may have. That is <a href="#auto-level"
>-auto-level</a> is the perfect or ideal version these operators. </p>

<p>It uses the <a href="#channel" >-channel</a> setting, (including the
special '<em>sync</em>' flag for channel syncronization), to determine
which color values are used and modified. As the default <a
href="#channel" >+channel</a> setting is '<em>RGB,sync</em>', the
'<em>sync</em>' ensures that the color channels will are modified
together by the same gamma value, preserving colors, and ignoring
transparency. </p>


<div style="margin: auto;">
  <h4><a id="auto-orient"></a>-auto-orient</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Automagically orient (rotate) an image created by a digital camera.</td><td style='text-align:right;'></td></tr></table>

<p>This operator reads and resets the EXIF image profile setting 'Orientation'
and then performs the appropriate 90 degree rotation on the image to orient
the image, for correct viewing. </p>

<p>This EXIF profile setting is usually set using a gravity sensor in digital
camara, however photos taken directly downward or upward may not have an
appropriate value.  Also images that have been orientation 'corrected' without
reseting this setting, may be 'corrected' again resulting in a incorrect
result.  If the he EXIF profile was previously stripped, the  <a
href="#auto-orient" >-auto-orient</a> operator will do nothing. </p>


<div style="margin: auto;">
  <h4><a id="average"></a>-average</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Average a set of images.</td><td style='text-align:right;'></td></tr></table>

<p>An error results if the images are not identically sized.</p>


<div style="margin: auto;">
  <h4><a id="backdrop"></a>-backdrop</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Display the image centered on a backdrop.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p>This backdrop covers the entire workstation screen and is useful for hiding other X window activity while viewing the image. The color of the backdrop is specified as the background color. The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<div style="margin: auto;">
  <h4><a id="background"></a>-background <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the background color.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option. The default background color (if none is specified or found in the image) is white.</p>

<div style="margin: auto;">
  <h4><a id="bench"></a>-bench <em class="arg">iterations</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Measure performance.</td><td style='text-align:right;'></td></tr></table>

<p>Repeat the entire command for the given number of <em class="arg">iterations</em> and report the user-time and elapsed time. For instance, consider the following command and its output.  Modify the benchmark with the -duration to run the benchmark for a fixed number of seconds and -concurrent to run the benchmark in parallel (requires the OpenMP feature).</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert logo: -resize 1000% -bench 5 logo.png</span><span class='crtout'>Performance: 5i 0.875657ips 6.880u 0:05.710</span></p>
<p>In this example, 5 iterations were completed at 0.875657 iterations per second, using 6.88 seconds of the user's allotted time, for a total elapsed time of 5.71 seconds.</p>

<div style="margin: auto;">
  <h4><a id="bias"></a>-bias <em class="arg">value</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Add bias when convolving an image.</td><td style='text-align:right;'></td></tr></table>

<p>This option shifts the output of <a href="../www/command-line-options.html#convolve">&#x2011;convolve</a>  so that positive and negative results are relative to the specified bias value. </p>

<p>This is important for non-HDRI compilations of ImageMagick when dealing with convolutions that contain negative as well as positive values. This is especially the case with convolutions involving high pass filters or edge detection. Without an output bias, the negative values are clipped at zero.</p>

<p>When using an ImageMagick with the HDRI compile-time setting, <a href="../www/command-line-options.html#bias">&#x2011;bias</a> is not needed, as ImageMagick is able to store/handle any
negative results without clipping to the color value range
(0..QuantumRange).</p>

<p>See the discussion on HDRI implementations of ImageMagick on the page
<a href="../www/high-dynamic-range.html">High Dynamic-Range Images</a>. For more about HDRI go the ImageMagick <a href="http://www.imagemagick.org/Usage/basics/#hdri">Usage</a> pages or this <a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a> entry.
</p>

<div style="margin: auto;">
  <h4><a id="blackpoint-compensation"></a>-blackpoint-compensation</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Use black point compensation.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="black-threshold"></a>-black-threshold <em class="arg">value</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.</td><td style='text-align:right;'></td></tr></table>

<p> The threshold value can be given as a percentage or as an absolute integer value within [0,&nbsp;<em class="QR">QuantumRange</em>] corresponding to the desired <a href="../www/command-line-options.html#channel">&#x2011;channel</a> value. See <a href="../www/command-line-options.html#threshold">&#x2011;threshold</a> for more details on thresholds and resulting values.
</p>


<div style="margin: auto;">
  <h4><a id="blend"></a>-blend <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>blend an image into another by the given absolute value or percent.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>Blend will average the images together ('plus') according to the
percentages given and each pixels transparency.  If only a single percentage
value is given it sets the weight of the composite or 'source' image, while
the background image is weighted by the exact opposite amount. That is a
<kbd>-blend 30%</kbd> merges 30% of the 'source' image with 70% of the
'destination' image.  Thus it is equivalent to <kbd>-blend 30x70%</kbd>.</p>


<div style="margin: auto;">
  <h4><a id="blue-primary"></a>-blue-primary <em class="arg">x</em>,<em class="arg">y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the blue chromaticity primary point.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="blue-shift"></a>-blue-shift <em class="arg">factor</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">

<div style="margin: auto;">
  <h4><a id="blur"></a>-blur <em class="arg">radius</em><br />-blur <em class="arg">radius</em>x<em class="arg">sigma</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Reduce image noise and reduce detail levels.</td><td style='text-align:right;'></td></tr></table>

<p>Convolve the image with a Gaussian or normal distribution using the given
<em class="arg" >Sigma</em> value.  The formula is:</p>

<div class="eqn"><img alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"/>
</div>

<p>The <em class="arg" >Sigma</em> value is the important argument, and
determines the actual amount of blurring that will take place. </p>

<p>The <em class="arg" >Radius</em> is only used to determine the size of the
array which will hold the calculated Gaussian distribution. It should be an
integer.  If not given, or set to zero, IM will calculate the largest possible
radius that will provide meaningful results for the Gaussian distribution.
</p>

<p>The larger the <em class="arg" >Radius</em> the radius the slower the
operation is. However too small a <em class="arg" >Radius</em>, and sever
aliasing effects may result.  As a guideline, <em class="arg" >Radius</em>
should be at least twice the <em class="arg" >Sigma</em> value, though three
times will produce a more accurite result. </p>

<p>This option differs from <a href="#gaussian-blur">-gaussian-blur</a> simply
by taking advantage of the separability properties of the distribution.  Here
we apply a single-dimensional Gaussian matrix in the horizontal direction,
then repeat the process in the vertical direction.</p>

<p>The <a href="#virtual-pixel">-virtual-pixel</a> setting will determine how
pixels which are outside the image proper are blurred into the final result.
</p>


<div style="margin: auto;">
  <h4>-blur <em class="arg">Width</em>[x<em class="arg">Height</em>[+<em class="arg">Angle</em>]]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Variably blur and image according to the overlay mapping.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>Each pixel in the overlaid region is replaced with an Elliptical Weighted
Average (EWA) of the source image, scaled according to the grayscale
mapping. </p>

<p>The ellipse is weighted with sigma set to the given <em class="arg"
>Width</em> and <em class="arg" >Height</em>. The <em class="arg" >Height</em>
defaults to the <em class="arg" >Width</em> for a normal circular Guassian
weighting.  The <em class="arg" >Angle</em> will rotate the ellipse from
horizontal clock-wise.  </p>

<p>The <a href="#virtual-pixel">-virtual-pixel</a> setting will determine how
pixels which are outside the image proper are blurred into the final result.
</p>


<div style="margin: auto;">
  <h4><a id="border"></a>-border <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Surround the image with a border of color. </td><td style='text-align:right;'></td></tr></table>

<p>Set the width and height using the <em class="arg">size</em> portion of the
<em class="arg">gravity</em> argument.  See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets are
ignored. </p>

<p>Set the border color by preceding with the <a
href="#bordercolor">-bordercolor</a> setting.</p>

<p>The <a href="#border">-border</a> operation is affected by the current <a
href="#compose">-compose</a> setting and assumes that this is using the default
'<kbd>Over</kbd>' composition method.  It generates a image of the appropriate
size colors by the current <a href="#bordercolor">-bordercolor</a> before
overlaying the original image in the center of this net image.  This means that
with the default compose method of '<kbd>Over</kbd>' any transparent parts may
be replaced by the current <a href="#bordercolor">-bordercolor</a> setting.</p>
<p>See also the <a href="#frame">-frame</a> option, which has more
functionality.</p>

<div style="margin: auto;">
  <h4><a id="bordercolor"></a>-bordercolor <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the border color.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>The default border color is <kbd>#DFDFDF</kbd>, <span style="background-color: #dfdfdf;">this shade of gray</span>.</p>

<div style="margin: auto;">
  <h4><a id="borderwidth"></a>-borderwidth <em class="arg">geometry</em> </h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the border width.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<div style="margin: auto;">
  <h4><a id="brightness-contrast"></a>-brightness-contrast <em class="arg">brightness</em><br />-brightness-contrast <em class="arg">brightness</em>{x<em class="arg">contrast</em>}{<em class="arg">%</em>}}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Adjust the brightness and/or contrast of the image.</td><td style='text-align:right;'></td></tr></table>

<p>Brightness and Contrast values apply changes to the input image. They are
not absolute settings. A brightness or contrast value of zero means no change.
The range of values is -100 to +100 on each. Positive values increase the
brightness or contrast and negative values decrease the brightness or contrast.
To control only contrast, set the brightness=0. To control only brightness,
set contrast=0 or just leave it off.</p>

<p>You may also use <a href="#fill">-channel</a> to control which channels to
apply the brightness and/or contrast change. The default is to apply the same
transformation to all channels.</p>

<p>Brightness and Contrast arguments are converted to offset and slope of a
linear transform and applied
using <a href="#fill">-function polynomial "slope,offset"</a>.</p>

<p>The slope varies from 0 at contrast=-100 to almost vertical at
contrast=+100. For brightness=0 and contrast=-100, the result are totally
midgray. For brightness=0 and contrast=+100, the result will approach but
not quite reach a threshold at midgray; that is the linear transformation
is a very steep vertical line at mid gray.</p>

<p>Negative slopes, i.e. negating the image, are not possible with this
function. All achievable slopes are zero or positive.</p>

<p>The offset varies from -0.5 at brightness=-100 to 0 at brightness=0 to +0.5
at brightness=+100. Thus, when contrast=0 and brightness=100, the result is
totally white. Similarly, when contrast=0 and brightness=-100, the result is
totally black.</p>

<p>As the range of values for the arguments are -100 to +100, adding the '%'
symbol is no different than leaving it off.</p>

<div style="margin: auto;">
  <h4><a id="cache"></a>-cache <em class="arg">threshold</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>(This option has been replaced by the <a href='#limit'>-limit</a> option.)</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="caption"></a>-caption <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Assign a caption to an image.</td><td style='text-align:right;'></td></tr></table>

<p>This option sets the caption meta-data of an image read in after this
option has been given.  To modify a caption of images already in memory use
"<kbd><a href="#set">-set</a> caption</kbd>". </p>

<p>The caption can contain special format characters listed in the <a
href="../www/escape.html">Format and
Print Image Properties</a>. These attributes are expanded when the caption
is finally assigned to the individual images. </p>

<p>If the first character of <em class="arg">string</em> is <em
class="arg">@</em>, the image caption is read from a file titled by the
remaining characters in the string.  Comments read in from a file are literal;
no embedded formatting characters are recognized.</p>

<p>Caption meta-data ais not visible on the image itself. To do that use the
<a href="#annotate">-annotate</a> or <a href="#draw">-draw</a> options
instead.</p>

<p>For example,</p>

<p class="crtsnip">
     -caption "%m:%f %wx%h"  bird.miff
</p>

<p>produces an image caption of <kbd>MIFF:bird.miff 512x480</kbd> (assuming
that the image <kbd>bird.miff</kbd> has a width of 512 and a height of
480.</p>


<div style="margin: auto;">
  <h4><a id="cdl"></a>-cdl <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>color correct with a color decision list.</td><td style='text-align:right;'></td></tr></table>

<p>Here is an example color correction collection:</p>

<pre class="text">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2"&gt;
  &lt;ColorCorrection id="cc06668"&gt;
    &lt;SOPNode&gt;
      &lt;Slope&gt; 0.9 1.2 0.5 &lt;/Slope&gt;
      &lt;Offset&gt; 0.4 -0.5 0.6 &lt;/Offset&gt;
      &lt;Power&gt; 1.0 0.8 1.5 &lt;/Power&gt;
    &lt;/SOPNode&gt;
    &lt;SATNode&gt;
      &lt;Saturation&gt; 0.85 &lt;/Saturation&gt;
    &lt;/SATNode&gt;
  &lt;/ColorCorrection&gt;
&lt;/ColorCorrectionCollection&gt;
</pre>

<div style="margin: auto;">
  <h4><a id="channel"></a>-channel <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify those image color channels to which subsequent operators are limited.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from: <kbd>Red</kbd>, <kbd>Green</kbd>, <kbd>Blue</kbd>,
<kbd>Alpha</kbd>, <kbd>Cyan</kbd>, <kbd>Magenta</kbd>, <kbd>Yellow</kbd>,
<kbd>Black</kbd>, <kbd>Opacity</kbd>, <kbd>Index</kbd>, <kbd>RGB</kbd>,
<kbd>RGBA</kbd>, <kbd>CMYK</kbd>, or <kbd>CMYKA</kbd>.</p>

<p>The channels above can also be specified as a comma-separated list or can be
abbreviated as a concatenation of the letters '<kbd>R</kbd>', '<kbd>G</kbd>',
'<kbd>B</kbd>', '<kbd>A</kbd>', '<kbd>O</kbd>', '<kbd>C</kbd>',
'<kbd>M</kbd>', '<kbd>Y</kbd>', '<kbd>K</kbd>'.

For example, to only select the <kbd>Red</kbd> and <kbd>Blue</kbd> channels
you can either use </p>
<p class="crtsnip">
    -channel Red,Blue
</p>
<p>or you can use the short hand form</p>
<p class="crtsnip">
    -channel RB
</p>

<p>All the channels that is present in an image can be specified using the
special channel type <kbd>All</kbd>. Not all operators are 'channel capable',
but generally any operators that are generally 'grey-scale' image operators,
will understand this setting.  See individual operator documentation. </p>

<br />

<p>On top of the normal channel selection a extra flag can be specified,
'<kbd>Sync</kbd>'.  This is turned on by default and if set means that
operators that understand this flag should perform: cross-channel
syncronization of the channels. If not specified, then most grey-scale
operators will apply their image processing operations to each individual
channel (as specified by the rest of the <a href="#channel">-channel</a>
setting) completely independently from each other. </p>

<p>For example for operators such as <a href="#auto-level">-auto-level</a> and
<a href="#auto-gamma">-auto-gamma</a> the color channels are modified
together in exactly the same way so that colors will remain in-sync. Without
it being set, then each channel is modified separately and
independently, which may produce color distortion. </p>

<p>The <a href="#morphology">-morphology</a> '<kbd>Convolve</kbd>' method
and the <a href="#compose">-compose</a> mathematical methods, also understands
the '<kbd>Sync</kbd>' flag to modify the behaviour of pixel colors according
to the alpha channel (if present). That is to say it will modify the image
processing with the understanding that fully-transparent colors should not
contribute to the final result. </p>

<p>Basically, by default, operators work with color channels in syncronous, and
treats transparency as special, unless the <a href="#channel">-channel</a>
setting is modified so as to remove the effect of the '<kbd>Sync</kbd>' flag.
How each operator does this depends on that operators current implementation.
Not all operators understands this flag at this time, but that is changing.
</p>

<p>To print a complete list of channel types, use <a href="#list">-list
channel</a>.</p>

<br />

<p>By default, ImageMagick sets <a href="#channel">-channel</a> to the value
'<kbd>RGBK,sync</kbd>', which specifies that operators act on all color
channels except the transparency channel, and that all the color channels are
to be modified in exactly the same way, with a understanding of transprancy
(depending on the operation being applied).  The 'plus' form <a
href="#channel" >+channel</a> will reset the value back to this default. </p>

<p>Options that are affected by the <a href="#channel" >-channel</a> setting
include the following.

<a href="#auto-gamma">-auto-gamma</a>,
<a href="#auto-level">-auto-level</a>,
<a href="#black-threshold">-black-threshold</a>,
<a href="#blur">-blur</a>,
<a href="#clamp">-clamp</a>,
<a href="#clut">-clut</a>,
<a href="#combine">-combine</a>,
<a href="#composite">-composite</a> (Mathematical compose methods only),
<a href="#convolve">-convolve</a>,
<a href="#contrast-stretch">-contrast-stretch</a>,
<a href="#evaluate">-evaluate</a>,
<a href="#function">-function</a>,
<a href="#fx">-fx</a>,
<a href="#gaussian-blur">-gaussian-blur</a>,
<a href="#hald-clut">-hald-clut</a>,
<a href="#motion-blur">-motion-blur</a>,
<a href="#morphology">-morphology</a>,
<a href="#negate">-negate</a>,
<a href="#normalize">-normalize</a>,
<a href="#ordered-dither">-ordered-dither</a>,
<a href="#radial-blur">-radial-blur</a>,
<a href="#random-threshold">-random-threshold</a>,
<a href="#separate">-separate</a>,
<a href="#threshold">-threshold</a>, and
<a href="#white-threshold">-white-threshold</a>.
</p>

<p>Warning, some operators behave differently when the <a href="#channel"
>+channel</a> default setting is in effect, verses ANY user defined <a
href="#channel" >-channel</a> setting (including the equivalent of the
default). These operators have yet to be made to understand the newer 'Sync'
flag. </p>

<p>For example <a href="#threshold">-threshold</a> will by default gray-scale
the image before thresholding, if no <a href="#channel" >-channel</a> setting
has been defined. This is not 'Sync flag controlled, yet. </p>

<p>Also some operators such as <a href="#blur">-blur</a>, <a
href="#gaussian-blur">-gaussian-blur</a>, will modify their handling of the
color channels if the '<kbd>alpha</kbd>' channel is also enabled by <a
href="#channel" >-channel</a>.  Generally this done to ensure that
fully-transparent colors are treated as being fully-transparent, and thus any
underlying 'hidden' color has no effect on the final results.  Typically
resulting in 'halo' effects. The newer <a href="#morphology">-morphology</a>
convolution equivalents however does have a understanding of the 'Sync' flag
and will thus handle transparency correctly by default. </p>

<p>As a alpha channel is optional within images, some operators will read the
color channels of an image as a greyscale alpha mask, when the image has no
alpha channel present, and the <a href="#channel" >-channel</a> setting tells
the operator to apply the operation using alpha channels. The <a
href="#clut">-clut</a> operator is a good example of this. </p>


<div style="margin: auto;">
  <h4><a id="clamp"></a>-clamp</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Restrict image colors from 0 to the quantum depth.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="charcoal"></a>-charcoal <em class="arg">factor</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Simulate a charcoal drawing.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="chop"></a>-chop <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Remove pixels from the interior of an image.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <em class="arg">width</em>
and <em class="arg">height</em> given in the of the <em class="arg">size</em>
portion of the <em class="arg">geometry</em> argument give the number of
columns and rows to remove. The <em class="arg">offset</em> portion of
the <em class="arg">geometry</em> argument is influenced by
a <a href="#gravity">-gravity</a> setting, if present.</p>

<p>The <a href="#chop">-chop</a> option removes entire rows and columns,
and moves the remaining corner blocks leftward and upward to close the gaps.</p>

<p>While it can remove internal rows and columns of pixels, it is more typically
used with as <a href="#gravity">-gravity</a> setting and a '<kbd>+0+0</kbd>' offset
so as to remove a single edge from an image.  Compare this to <a href="#shave"
>-shave</a> whcih removes equal numbers of pixels from oppisite sides of the image.
</p>

<p>Using <a href="#chop">-chop</a> will effectivally undo the results of a
<a href="#splice">-splice</a> that was given the same <em class="arg">geometry</em>
and <a href="#gravity">-gravity</a> settings. </p>


<div style="margin: auto;">
  <h4><a id="clip"></a>-clip</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply the clipping path if one is present.</td><td style='text-align:right;'></td></tr></table>

<p>If a clipping path is present, it is applied to subsequent operations.</p>

<p>For example, in the command</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -clip -negate cockatoo.tif negated.tif</span></p>
<p>only the pixels within the clipping path are negated.</p>

<p>The <a href="#clip">-clip</a> feature requires the XML library. If the XML library is not present, the option is ignored.</p>

<div style="margin: auto;">
  <h4><a id="clip-mask"></a>-clip-mask</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Clip the image as defined by this mask.</td><td style='text-align:right;'></td></tr></table>

<p>Use the given image as a 'do-not-modify' mask of the current images in the
current image sequence.  Assuming the clipmask is a greyscale image the same
size at the one already in memory, any areas that is white will not be
modified by any of the 'image processing operators' that follow, until the
mask is removed. Pixels in the black areas of the clip mask will be modified
as normal. </p>

<p>In some ways this is similar to (though not the same) as defining
a rectangular <a href="#region" >-region</a>, or using the negative of the
mask (thrid) image in a three image <a href="#composite" >-composite</a>,
operation. </p>


<div style="margin: auto;">
  <h4><a id="clip-path"></a>-clip-path <em class="arg">id</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Clip along a named path from the 8BImageMagick profile.</td><td style='text-align:right;'></td></tr></table>

<p>This is almost identicate to <a href="#clip">-clip</a>. </p>


<div style="margin: auto;">
  <h4><a id="clone"></a>-clone <em class="arg">index(s)</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Make a copy of an image (or images).</td><td style='text-align:right;'></td></tr></table>

<p>Inside parenthesis (where the operator is normally used) it will make a
clone of the images from the last 'pushed' image sequence, and adds them to
the end of the current image sequence. Outside parenthesis
(not recommended) it clones the images from the current image sequence. </p>

<p>Specify the image by its index in the sequence.  The first image is index
0.  Negative indexes are relative to the end of the sequence; for
example, <kbd>&minus;1</kbd>
represents the last image of the sequence.  Specify a range of images with a
dash (e.g. <kbd>0&minus;4</kbd>).  Separate multiple indexes with commas but no
spaces (e.g. <kbd>0,2,5</kbd>).  A value of '<kbd>0&minus;&minus;1</kbd> will
effectivally clone all the images. </p>

<p>The <a href="#clone">+clone</a> will simply make a copy of the last image
in the image sequence, and is thus equivelent to using a argument of
'<kbd>&minus;1</kbd>'. </p>

<div style="margin: auto;">
  <h4><a id="clut"></a>-clut</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Replace the channel values in the first image using each
corresponding channel in the second image as a <b>c</b>olor
<b>l</b>ook<b>u</b>p <b>t</b>able.</td><td style='text-align:right;'></td></tr></table>

<p>The second (LUT) image is ordinarily a gradient image containing the
histogram mapping of how each channel should be modified. Typically it is a
either a single row or column image of replacement color values. If larger
than a single row or column, values are taken from a diagonal line from
top-left to bottom-right corners.</p>

<p>The lookup is further controlled by the <a
href="#interpolate">-interpolate</a> setting, which is especially handy for an
LUT which is not the full length needed by the ImageMagick installed Quality
(Q) level. Good settings for this are the '<kbd>bilinear</kbd>' and
'<kbd>bicubic</kbd>' interpolation settings, which give smooth color
gradients, and the '<kbd>integer</kbd>' setting for a direct, unsmoothed
lookup of color values. </p>

<p>This operator is especially suited to replacing a grayscale image with a
specific color gradient from the CLUT image. </p>

<p>Only the channel values defined by the <a href="#channel">-channel</a>
setting will have their values replaced. In particular, since the default <a
href="#channel">-channel</a> setting is <kbd>RGB</kbd>, this means that
transparency (alpha/matte channel) is not affected, unless the <a
href="#channel">-channel</a> setting is modified. When the alpha channel is
set, it is treated by the <a href="#clut" >-clut</a> operator in the same way
as the other channels, implying that alpha/matte values are replaced using the
alpha/matte values of the original image. </p>

<p>If either the image being modified, or the lookup image, contains no
transparency (i.e. <a href="#alpha" >-alpha</a> is turned 'off') but the <a
href="#channel">-channel</a> setting includes alpha replacement, then it is
assumed that image represents a gray-scale gradient which is used for the
replacement alpha values.  That is you can use a gray-scale CLUT image to
adjust a existing images alpha channel, or you can color a gray-scale image
using colors form CLUT containing the desired colors, including transparency.
</p>

<p>See also <a href="#hald-clut" >-hald-clut</a> which replaces colors
according to the lookup of the full color RGB value from a 2D representation
of a 3D color cube. </p>


<div style="margin: auto;">
  <h4><a id="coalesce"></a>-coalesce</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Fully define the look of each frame of an GIF animation sequence, to form a 'film strip' animation.</td><td style='text-align:right;'></td></tr></table>

<p>Overlay each image in an image sequence according to
its <a href="#dispose">-dispose</a> meta-data, to reproduce the look of
an animation at each point in the animation sequence. All images should be
the same size, and are assigned appropriate GIF disposal settings for the
animation to continue working as expected as a GIF animation.  Such frames
are more easily viewed and processed than the highly optimized GIF overlay
images.  </p>

<p>The animation can be re-optimized after processing using
the <a href="#layers">-layers</a> method '<kbd>optimize</kbd>', although
there is no guarantee that the restored GIF animation optimization is
better than the original. </p>


<div style="margin: auto;">
  <h4><a id="colorize"></a>-colorize <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Colorize the image by an amount specified by <em class="arg">value</em> using the color specified by the most recent <a href="#fill" >-fill</a> setting.</td><td style='text-align:right;'></td></tr></table>

<p>Specify the amount of colorization as a percentage. Separate colorization
values can be applied to the red, green, and blue channels of the image with
a comma-delimited list of colorization
values (e.g., <kbd>-colorize 0,0,50</kbd>).</p>

<div style="margin: auto;">
  <h4><a id="colormap"></a>-colormap <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Define the colormap type.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p>The <em class="arg">type</em> can be  <kbd>shared</kbd> or <kbd>private</kbd>.</p>

<p>This option only applies when the default X server visual
is <kbd>PseudoColor</kbd> or <kbd>GrayScale</kbd>. Refer
to <a href="#visual">-visual</a> for more details. By default,
a shared colormap is allocated. The image shares colors with
other X clients. Some image colors could be approximated,
therefore your image may look very different than intended.
If <kbd>private</kbd> is chosen, the image colors appear exactly
as they are defined. However, other clients may go <em>technicolor</em>
when the image colormap is installed.</p>

<div style="margin: auto;">
  <h4><a id="colors"></a>-colors <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the preferred number of colors in the image.</td><td style='text-align:right;'></td></tr></table>

<p>The actual number of colors in the image may be less than your request,
but never more. Note that this a color reduction option. Images with fewer
unique colors than specified by <em class="arg">value</em> will have any
duplicate or unused colors removed.  The ordering of an existing color
palette may be altered. When converting an image from color to grayscale,
it is more efficient to convert the image to the gray colorspace before
reducing the number of colors. Refer to
the <a href="../www/quantize.html">
color reduction algorithm</a> for more details.</p>

<div style="margin: auto;">
  <h4><a id="color-matrix"></a>-color-matrix <em class="arg">matrix</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>apply color correction to the image.</td><td style='text-align:right;'></td></tr></table>

<p>This option permits saturation changes, hue rotation, luminance to alpha,
and various other effects.  Although variable-sized transformation matrices
can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6
for CMYKA (or RGBA with offsets).  The matrix is similar to those used by
Adobe Flash except offsets are in column 6 rather than 5 (in support of
CMYKA images) and offsets are normalized (divide Flash offset by 255).</p>

<p>As an example, to add contrast to an image with offsets, try this command:</p>

<pre class="text">
convert kittens.jpg -color-matrix \
  " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
    0.0 1.5 0.0 0.0, 0.0, -0.157 \
    0.0 0.0 1.5 0.0, 0.0, -0.157 \
    0.0 0.0 0.0 1.0, 0.0,  0.0 \
    0.0 0.0 0.0 0.0, 1.0,  0.0 \
    0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png
</pre>
<div style="margin: auto;">
  <h4><a id="colorspace"></a>-colorspace <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the image colorspace.</td><td style='text-align:right;'></td></tr></table>

<p>Choices are:</p>

<pre class="text">
  CMY
  CMYK
  Gray
  HSB
  HSL
  HWB
  Lab
  Log
  OHTA
  Rec601Luma
  Rec601YCbCr
  Rec709Luma
  Rec709YCbCr
  RGB
  sRGB
  Transparent
  XYZ
  YCbCr
  YCC
  YIQ
  YPbPr
  YUV
</pre>

<p>To print a complete list of colorspaces, use <a href="#list">-list colorspace</a>.</p>

<p>For a more accurate color conversion to or from the RGB, CMYK, or grayscale colorspaces, use the <a href="#profile">-profile</a> option.</p>

<table class="doc">
        <caption>Conversion Of RGB To Other Color Spaces</caption>
        <tr><th align="left" valign="middle">CMY</th></tr>
        <tr><td align="left" valign="middle">C=<em class="QR">QuantumRange</em>&minus;R</td></tr>
        <tr><td align="left" valign="middle">M=<em class="QR">QuantumRange</em>&minus;G</td></tr>
        <tr><td align="left" valign="middle">Y=<em class="QR">QuantumRange</em>&minus;B</td></tr>
        <tr><th align="left" valign="middle">CMYK &mdash; starts with CMY from above</th></tr>
        <tr><td align="left" valign="middle">K=min(C,Y,M)</td></tr>
        <tr><td align="left" valign="middle">C=<em class="QR">QuantumRange</em>*(C&minus;K)/(<em class="QR">QuantumRange</em>&minus;K)</td></tr>
        <tr><td align="left" valign="middle">M=<em class="QR">QuantumRange</em>*(M&minus;K)/(<em class="QR">QuantumRange</em>&minus;K)</td></tr>
        <tr><td align="left" valign="middle">Y=<em class="QR">QuantumRange</em>*(Y&minus;K)/(<em class="QR">QuantumRange</em>&minus;K)</td></tr>

        <tr><th align="left" valign="middle">Gray</th></tr>
        <tr><td align="left" valign="middle">Gray = 0.29900*R+0.58700*G+0.11400*B</td></tr>

        <tr><th align="left" valign="middle">HSB &mdash; Hue, Saturation, Brightness; like a cone peak downward</th></tr>
        <tr><td align="left" valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
        <tr><td align="left" valign="middle">S=distance from axis outward</td></tr>
        <tr><td align="left" valign="middle">B=distance along axis from bottom upward; B=max(R,G,B); <em>intensity-like</em></td></tr>

        <tr><th align="left" valign="middle">HSL &mdash; Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom</th></tr>
        <tr><td align="left" valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
        <tr><td align="left" valign="middle">S=distance from axis outward</td></tr>
        <tr><td align="left" valign="middle">L=distance along axis from bottom upward; L=0.5*max(R,G,B) + 0.5*min(R,G,B); <em>intensity-like</em></td></tr>

        <tr><th align="left" valign="middle">HWB &mdash; Hue, Whiteness, Blackness</th></tr>
        <tr><td align="left" valign="middle">Hue (complicated equation)</td></tr>
        <tr><td align="left" valign="middle">Whiteness (complicated equation)</td></tr>
        <tr><td align="left" valign="middle">Blackness (complicated equation)</td></tr>

        <tr><th align="left" valign="middle">LAB</th></tr>
        <tr><td align="left" valign="middle">L (complicated equation relating X,Y,Z)</td></tr>
        <tr><td align="left" valign="middle">A (complicated equation relating X,Y,Z)</td></tr>
        <tr><td align="left" valign="middle">B (complicated equation relating X,Y,Z)</td></tr>

        <tr><th align="left" valign="middle">LOG</th></tr>
        <tr><td align="left" valign="middle">I1 (complicated equation involving logarithm of R)</td></tr>
        <tr><td align="left" valign="middle">I2 (complicated equation involving logarithm of G)</td></tr>
        <tr><td align="left" valign="middle">I3 (complicated equation involving logarithm of B)</td></tr>

        <tr><th align="left" valign="middle">OHTA &mdash; approximates principal components transformation</th></tr>
        <tr><td align="left" valign="middle">I1=0.33333*R+0.33334*G+0.33333*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">I2=(0.50000*R+0.00000*G&minus;0.50000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">I3=(&minus;0.25000*R+0.50000*G&minus;0.25000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">Rec601Luma</th></tr>
        <tr><td align="left" valign="middle">Gray = 0.29900*R+0.58700*G+0.11400*B</td></tr>

        <tr><th align="left" valign="middle">Rec601YCbCr</th></tr>
        <tr><td align="left" valign="middle">Y=0.299000*R+0.587000*G+0.114000*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">Cb=(&minus;0.168736*R-0.331264*G+0.500000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">Cr=(0.500000*R&minus;0.418688*G&minus;0.081312*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">Rec709Luma</th></tr>
        <tr><td align="left" valign="middle">Gray=0.21260*R+0.71520*G+0.07220*B</td></tr>

        <tr><th align="left" valign="middle">Rec709YCbCr</th></tr>
        <tr><td align="left" valign="middle">Y=0.212600*R+0.715200*G+0.072200*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">Cb=(&minus;0.114572*R&minus;0.385428*G+0.500000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">Cr=(0.500000*R&minus;0.454153*G&minus;0.045847*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">sRGB</th></tr>
        <tr><td align="left" valign="middle">if Rs &le; .03928 then Rs=R/12.92 else Rs=((R+.055)/1.055)^2.4</td></tr>
        <tr><td align="left" valign="middle">if Gs &le; .03928 then Gs=B/12.92 else Gs=((G+.055)/1.055)^2.4</td></tr>
        <tr><td align="left" valign="middle">if Bs &le; .03928 then Bs=B/12.92 else Bs=((B+.055)/1.055)^2.4</td></tr>

        <tr><th align="left" valign="middle">XYZ</th></tr>
        <tr><td align="left" valign="middle">X=0.4124240*R+0.3575790*G+0.1804640*B</td></tr>
        <tr><td align="left" valign="middle">Y=0.2126560*R+0.7151580*G+0.0721856*B</td></tr>
        <tr><td align="left" valign="middle">Z=0.0193324*R+0.1191930*G+0.9504440*B</td></tr>

        <tr><th align="left" valign="middle">YCC</th></tr>
        <tr><td align="left" valign="middle">Y=(0.29900*R+0.58700*G+0.11400*B) (with complicated scaling); <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">C1=(&minus;0.29900*R&minus;0.58700*G+0.88600*B) (with complicated scaling)</td></tr>
        <tr><td align="left" valign="middle">C2=(0.70100*R&minus;0.58700*G&minus;0.11400*B) (with complicated scaling)</td></tr>

        <tr><th align="left" valign="middle">YCbCr</th></tr>
        <tr><td align="left" valign="middle">Y=0.299000*R+0.587000*G+0.114000*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">Cb=(&minus;0.168736*R&minus;0.331264*G+0.500000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">Cr=(0.500000*R&minus;0.418688*G&minus;0.081312*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">YIQ</th></tr>
        <tr><td align="left" valign="middle">Y=0.29900*R+0.58700*G+0.11400*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">I=(0.59600*R&minus;0.27400*G&minus;0.32200*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">Q=(0.21100*R&minus;0.52300*G+0.31200*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">YPbPr</th></tr>
        <tr><td align="left" valign="middle">Y=0.299000*R+0.587000*G+0.114000*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">Pb=(&minus;0.168736*R&minus;0.331264*G+0.500000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">Pr=(0.500000*R&minus;0.418688*G&minus;0.081312*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>

        <tr><th align="left" valign="middle">YUV</th></tr>
        <tr><td align="left" valign="middle">Y=0.29900*R+0.58700*G+0.11400*B; <em>intensity-like</em></td></tr>
        <tr><td align="left" valign="middle">U=(&minus;0.14740*R&minus;0.28950*G+0.43690*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
        <tr><td align="left" valign="middle">V=(0.61500*R&minus;0.51500*G&minus;0.10000*B)*(<em class="QR">QuantumRange</em>+1)/2</td></tr>
</table>

<div style="margin: auto;">
  <h4><a id="combine"></a>-combine</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Combine one or more images into a single image.</td><td style='text-align:right;'></td></tr></table>

<p>The channels (previously set by <a href="#channel">-channel</a>) of the combined image are taken from the grayscale values of each image in the sequence, in order. For the default -channel setting of <kbd>RGB</kbd>, this means the first image  is assigned to the <kbd>Red</kbd> channel, the second to the <kbd>Green</kbd> channel, the third to the <kbd>Blue</kbd>.</p>

<p>This option can be thought of as the inverse to <a href="#separate">-separate</a>, so long as the channel settings are the same. Thus, in the following example, the final image should be a copy of the original.
</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert original.png -channel RGB -separate sepimage.png</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \ <br/> -combine imagecopy.png</span></p>
<div style="margin: auto;">
  <h4><a id="comment"></a>-comment <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Embed a comment in an image.</td><td style='text-align:right;'></td></tr></table>

<p>This option sets the comment meta-data of an image read in after this
option has been given.  To modify a comment of images already in memory use
"<kbd><a href="#set">-set</a> comment</kbd>". </p>

<p>The comment can contain special format characters listed in the <a
href="../www/escape.html">Format and
Print Image Properties</a>. These attributes are expanded when the comment
is finally assigned to the individual images. </p>

<p>If the first character of <em class="arg">string</em> is <em
class="arg">@</em>, the image comment is read from a file titled by the
remaining characters in the string.  Comments read in from a file are literal;
no embedded formatting characters are recognized.</p>

<p>Comment meta-data are not visible on the image itself. To do that use the
<a href="#annotate">-annotate</a> or <a href="#draw">-draw</a> options
instead.</p>

<p>For example,</p>

<p class="crtsnip">
     -comment "%m:%f %wx%h"  bird.miff
</p>

<p>produces an image comment of <kbd>MIFF:bird.miff 512x480</kbd> (assuming
that the image <kbd>bird.miff</kbd> has a width of 512 and a height of
480.</p>

<div style="margin: auto;">
  <h4><a id="compose"></a>-compose <em class="arg">operator</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the type of image composition.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/compose.html">Alpha Compositing</a> for
a detailed discussion of alpha compositing.</p>

<p>This setting effects image processing operators that merge two (or more)
images together in some way.  This includes the operators,
<a href="#composite">-composite</a>,
<a href="#layers">-layers</a> composite,
<a href="#flatten">-flatten</a>,
<a href="#mosaic">-mosaic</a>,
<a href="#layers">-layers</a> merge,
<a href="#border">-border</a>,
<a href="#frame">-frame</a>,
and <a href="#extent">-extent</a>. </p>

<p>It is also one of the primary options for the "<kbd>composite</kbd>"
command.  </p>


<div style="margin: auto;">
  <h4><a id="composite"></a>-composite</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Perform alpha composition on two images and an optional mask</td><td style='text-align:right;'></td></tr></table>

<p>Take the first image 'destination' and overlay the second 'source' image
according to the current <a href="#compose">-compose</a> setting. The location
of the 'source' or 'overlay' image is controlled according to <a
href="#geometry" >-geometry</a>, and <a href="#geometry" >-geometry</a>
settings. </p>

<p>If a third image is given this is treated as a gray-scale 'mask' image
relative to the first 'destination' image. This mask will limit what parts of
the destination can be modified by the image composition.  However for the
'<kbd>displace</kbd>' compose method, the mask is used to provide a separate
Y-displacement image instead. </p>

<p>If a <a href="#compose">-compose</a> method requires extra numerical
arguments or flags these can be provided by setting the  <a
href="#set">-set</a> '<kbd class="arg">option:compose:args</kbd>'
appropriately for the compose method. </p>

<p>Some <a href="#compose">-compose</a> methods can modify the 'destination'
image outside the overlay area. You can disable this by setting the special <a
href="#set">-set</a> '<kbd class="arg">option:compose:outside-overlay</kbd>'
to '<kbd>false</kbd>'.  </p>


<div style="margin: auto;">
  <h4><a id="compress"></a>-compress <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Use pixel compression specified by <em class="arg">type</em> when writing the image.</td><td style='text-align:right;'></td></tr></table>

<p>Choices are: <kbd class="arg">None</kbd>, <kbd class="arg">BZip</kbd>, <kbd class="arg">Fax</kbd>, <kbd class="arg">Group4</kbd>, <kbd class="arg">JPEG</kbd>,  <kbd class="arg">JPEG2000</kbd>, <kbd class="arg">Lossless</kbd>, <kbd class="arg">LZW</kbd>, <kbd class="arg">RLE</kbd> or <kbd class="arg">Zip</kbd>.</p>

<p>To print a complete list of compression types, use <a href="#list">-list compress</a>.</p>

<p>Specify <a href="#compress">+compress</a> to store the binary image in an uncompressed format. The default is the compression type of the specified image file.</p>

<p>If <kbd>LZW</kbd> compression is specified but LZW compression has not been enabled, the image data is written in an uncompressed LZW format that can be read by LZW decoders. This may result in larger-than-expected GIF files.</p>

<p><kbd>Lossless</kbd> refers to lossless JPEG, which is only available if the JPEG library has been patched to support it. Use of lossless JPEG is generally not recommended.</p>

<p>Use the <a href="#quality">-quality</a> option to set the compression level to be used by JPEG, PNG, MIFF, and MPEG encoders. Use the <a href="#sampling-factor">-sampling-factor</a> option to set the sampling factor to be used by JPEG, MPEG, and YUV encoders for down-sampling the chroma channels.</p>

<div style="margin: auto;">
  <h4><a id="contrast"></a>-contrast</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Enhance or reduce the image contrast.</td><td style='text-align:right;'></td></tr></table>

<p>This option enhances the intensity differences between the lighter and darker elements of the image. Use <a href="#contrast">-contrast</a> to enhance the image or <a href="#contrast">+contrast</a> to reduce the image contrast.</p>

<p>For a more pronounced effect you can repeat the option:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert rose: -contrast -contrast rose_c2.png</span></p>
<div style="margin: auto;">
  <h4><a id="contrast-stretch"></a>-contrast-stretch <em class="arg">black-point</em><br />-contrast-stretch <em class="arg">black-point</em>{x<em class="arg">white-point</em>}{<em class="arg">%</em>}}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Increase the contrast in an image by <em>stretching</em> the range of intensity values.</td><td style='text-align:right;'></td></tr></table>

<p>While performing the stretch, black-out at most <em
class="arg" >black-point</em> pixels and white-out at most <em
class="arg" >white-point</em> pixels. Or, if percent is used, black-out at most
<em class="arg" >black-point %</em> pixels and white-out at most <em
class="arg" >white-point %</em> pixels.</p>

<p>Prior to ImageMagick 6.4.7-0, <a href="#contrast-stretch"
>-contrast-stretch</a> will black-out at most <em class="arg"
>black-point</em> pixels and white-out at most <em class="arg" >total pixels
minus white-point</em> pixels. Or, if percent is used, black-out at most <em
class="arg">black-point %</em> pixels and white-out at most <em class="arg"
>100% minus white-point %</em> pixels.</p>

<p>Note that <kbd>-contrast-stretch 0</kbd> will modify the image such that
the image's min and max values are stretched to 0 and <em class="QR"
>QuantumRange</em>, respectively, without any loss of data due to burn-out or
clipping at either end. This is not the same as <a href="#normalize"
>-normalize</a>, which is equivalent to <kbd>-contrast-stretch 0.15x0.05%</kbd> (or
prior to ImageMagick 6.4.7-0, <kbd>-contrast-stretch 2%x99%</kbd>).</p>

<p>Internally operator works by creating a histogram bin, and then uses that
bin to modify the image. As such some colors may be merged together when they
originally fell into the same 'bin'. </p>

<p>All the channels are normalized in concert by the came amount so as to
preserve color integrity, when the default <a href="#channel" >+channel</a>
setting is in use.  Specifying any other <a href="#channel" >-channel</a>
setting will normalize the RGB channels independently.</p>

<p>See also  <a href="#auto-level" >-auto-level</a> for a 'perfect'
normalization of mathematical images. </p>

<p>This operator is under review for re-development. </p>


<div style="margin: auto;">
  <h4><a id="convolve"></a>-convolve <em class="arg">kernel</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Convolve an image with a user-supplied convolution kernel.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">kernel</em> is a matrix specified as
a comma-separated list of integers (with no spaces), ordered left-to right,
starting with the top row. Presently, only odd-dimensioned kernels are
supported, and therefore the number of entries in the specified <em
class="arg">kernel</em> must be 3<sup>2</sup>=9, 5<sup>2</sup>=25,
7<sup>2</sup>=49, etc. </p>

<p>Note that the <a href="../www/command-line-options.html#convolve">&#x2011;convolve</a> operator supports the <a href="../www/command-line-options.html#bias">&#x2011;bias</a> setting. This option shifts the convolution so that
positive and negative results are relative to a user-specified bias value.
This is important for non-HDRI compilations of ImageMagick when dealing with
convolutions that contain negative as well as positive values. This is
especially the case with convolutions involving high pass filters or edge
detection. Without an output bias, the negative values is clipped at zero.
</p>

<p>When using an ImageMagick with the HDRI compile-time setting, <a href="../www/command-line-options.html#bias">&#x2011;bias</a> is not needed, as ImageMagick is able to store/handle any
negative results without clipping to the color value range (0..QuantumRange).
See the discussion on HDRI implementations of ImageMagick on the page <a
href="../www/high-dynamic-range.html">High
Dynamic-Range Images</a>. For more about HDRI go the ImageMagick <a
href="http://www.imagemagick.org/Usage/basics/#hdri">Usage</a> pages or this
<a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>
entry.  </p>


<div style="margin: auto;">
  <h4><a id="crop"></a>-crop <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Cut out one or more rectangular regions of the image.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<p>The <em class="arg">width</em> and <em class="arg">height</em> of the <em class="arg">geometry</em> argument give the size of the image that remains after cropping, and <em class="arg">x</em> and <em class="arg">y</em> in the <em class="arg">offset</em> (if present) gives the location of the top left corner of the cropped image with respect to the original image. To specify the amount to be removed, use <a href="#shave">-shave</a> instead.</p>

<p>If the <em class="arg">x</em> and <em class="arg">y</em> offsets are present, a single image is generated, consisting of the pixels from the cropping region. The offsets specify the location of the upper left corner of the cropping region measured downward and rightward with respect to the upper left corner of the image. If the <a href="#gravity">-gravity</a> option is present with <kbd>NorthEast</kbd>, <kbd>East</kbd>, or <kbd>SouthEast</kbd> gravity, it gives the distance leftward from the right edge of the image to the right edge of the cropping region. Similarly, if the <a href="#gravity">-gravity</a> option is present with <kbd>SouthWest</kbd>, <kbd>South</kbd>, or <kbd>SouthEast</kbd> gravity, the distance is measured upward between the bottom edges.</p>

<p>If the <em class="arg">x</em> and <em class="arg">y</em> offsets are omitted, a set of tiles of the specified geometry, covering the entire input image, is generated. The rightmost tiles and the bottom tiles are smaller if the specified geometry extends beyond the dimensions of the input image.</p>

<p>By adding a exclamation character flag to the geometry argument, the
cropped images virtual canvas page size and offset is set as if the
geometry argument was a viewport or window. This means the canvas page size
is set to exactly the same size you specified, the image offset set
relative top left corner of the region cropped. </p>

<p>If the cropped image 'missed' the actual image on its virtual canvas, a
special single pixel transparent 'missed' image is returned, and a 'crop
missed' warning given. </p>

<p>It might be necessary to <a href="#repage" >+repage</a> the image prior to cropping the image to ensure the crop coordinate frame is relocated to the upper-left corner of the visible image.</p>

<div style="margin: auto;">
  <h4><a id="cycle"></a>-cycle <em class="arg">amount</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>displace image colormap by amount.</td><td style='text-align:right;'></td></tr></table>

<p><em class="arg">Amount</em> defines the number of positions each
colormap entry is shifted.</p>


<div style="margin: auto;">
  <h4><a id="debug"></a>-debug <em class="arg">events</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>enable debug printout.</td><td style='text-align:right;'></td></tr></table>

<p>The <kbd>events</kbd> parameter specifies which events are to be logged. It can be either <kbd>None</kbd>, <kbd>All</kbd>, <kbd>Trace</kbd>, or a comma-separated list consisting of one or more of the following domains: <kbd>Annotate</kbd>, <kbd>Blob</kbd>, <kbd>Cache</kbd>, <kbd>Coder</kbd>, <kbd>Configure</kbd>, <kbd>Deprecate</kbd>, <kbd>Exception</kbd>, <kbd>Locale</kbd>, <kbd>Render</kbd>, <kbd>Resource</kbd>, <kbd>Security</kbd>, <kbd>TemporaryFile</kbd>, <kbd>Transform</kbd>, <kbd>X11</kbd>, or <kbd>User</kbd>. </p>


<p>For example, to log cache and blob events, use.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -debug "Cache,Blob" rose: rose.png</span></p>
<p>The <kbd>User</kbd> domain is normally empty, but developers can log user events in their private copy of ImageMagick.</p>

<p>To print the complete list of debug methods, use <a href="#list">-list debug</a>.</p>

<p>Use the <a href="#log">-log</a> option to specify the format for debugging output.</p>

<p>Use <a href="#debug">+debug</a> to turn off all logging.</p>

<p>Debugging may also be set using the <kbd>MAGICK_DEBUG</kbd> <a href="../www/resources.html#environment">environment variable</a>.  The allowed values for the <kbd>MAGICK_DEBUG</kbd> environment variable are the same as for the <a href="#debug">-debug</a> option.</p>


<div style="margin: auto;">
  <h4><a id="decipher"></a>-decipher <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Decipher and restore pixels that were previously transformed by <a href="#encipher">-encipher</a>.</td><td style='text-align:right;'></td></tr></table>

<p>Get the passphrase from the file specified by <em class="arg">filename</em>.</p>

<p>For more information, see the webpage, <a href="http://www.imagemagick.org/www/cipher.html">ImageMagick: Encipher or Decipher an Image</a>.</p>


<div style="margin: auto;">
  <h4><a id="deconstruct"></a>-deconstruct</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>find areas that has changed between images </td><td style='text-align:right;'></td></tr></table>

<p>Given a sequence of images all the same size, such as produced by <a href="#coalesce">-coalesce</a>, replace the second and later images, with a smaller image of just the area that changed relative to the previous image. </p>

<p>The resulting sequence of images can be used to optimize an animation sequence, though will not work correctly for GIF animations when parts of the animation can go from opaque to transparent. </p>

<p>This option is actually equivalent to the  <a href="#layers">-layers</a> method '<kbd>compare-any</kbd>'. </p>


<div style="margin: auto;">
  <h4><a id="define"></a>-define <em class="arg">key</em>{<em class="arg">=value</em>}<em class="arg">...</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>add specific global settings generally used to control
coders and image processing operations.</td><td style='text-align:right;'></td></tr></table>

<p>This option creates one or more definitions for coders and decoders to use
while reading and writing image data.  Definitions are generally used to
control image file format coder modules, and image processing operations,
beyond what is provided by normal means.  Defined settings are listed in <a
href="#verbose" >-verbose</a> information ("<kbd>info:</kbd>" output format)
as "Artifacts". </p>

<p>If <em class="arg">value</em> is missing for a definition, an empty-valued
definition of a flag is created with that name. This used to control on/off
options.  Use <a href="#define">+define key</a> to remove definitions
previously created.  Use <a href="#define">+define "*"</a> to remove all
existing definitions.</p>

<p>The same 'artifact' settings can also be defined using the <a
href="#set" >-set "option:<em class="arg">key</em>" "<em class="arg"
>value</em>"</a> option, which also allows the use of <a href="../www/escape.html" >Format and Print Image
Properties</a> in the defined value. </p>

<p>The <em>option</em> and <em>key</em> are case-independent (they are
converted to lowercase for use within the decoders) while the <em>value</em>
is case-dependent.</p>

<p>Such settings are global in scope, and effect all images and operations. </p>

<p>The following definitions are just some of the artifacts that are
available:</p>

<dl>
<dt>dcm:display-range=reset</dt>
<dd>Set the display range to the minimum and maximum pixel values for the
    DCM image format.</dd>

<dt>dot:layout-engine=<em class="arg">value</em></dt>
<dd>Set the specify the layout engine for the DOT image format (e.g.
    <kbd>neato</kbd>).</dd>

<dt>jpeg:extent=<em class="arg">value</em></dt>
<dd>Restrict the maximum JPEG file size, for example <kbd>-define
    jpeg:extent=400kb</kbd>.</dd>

<dt>jpeg:size=<em class="arg">geometry</em></dt>
<dd>Set the size hint of a JPEG image, for example, -define jpeg:size=128x128.
    It is most useful for increasing performance and reducing the memory
    requirements when reducing the size of a large JPEG image.</dd>

<dt>jp2:rate=<em class="arg">value</em></dt>
<dd>Specify the compression factor to use while writing JPEG-2000 files. The
    compression factor is the reciprocal of the compression ratio. The valid
    range is 0.0 to 1.0, with 1.0 indicating lossless compression. If defined,
    this value overrides the -quality setting.  A quality setting of 75
    results in a rate value of 0.06641.</dd>

<dt>mng:need-cacheoff</dt>
  <dd>turn playback caching off for streaming MNG.</dd>

<dt>png:bit-depth=<em class="arg">value</em></dt>
<dt>png:color-type=<em class="arg">value</em></dt>
<dd>desired bit-depth and color-type for PNG output.  You can force the PNG
    encoder to use a different bit-depth and color-type than it would have
    normally selected, but only if this does not cause any loss of image
    quality. Any attempt to reduce image quality is treated as an error and no
    PNG file is written.  E.g., if you have a 1-bit black-and-white image, you
    can use these "defines" to cause it to be written as an 8-bit grayscale,
    indexed, or even a 64-bit RGBA.  But if you have a 16-million color image,
    you cannot force it to be written as a grayscale or indexed PNG.  If you
    wish to do this, you must use the appropriate <a href="#depth">-depth</a>,
    <a href="#colors">-colors</a>, or <a href="#type">-type</a> directives to
    reduce the image quality prior to using the PNG encoder. Note that in
    indexed PNG files, "bit-depth" refers to the number of bits per index,
    which can be 1, 2, 4, or 8.  In such files, the color samples always have
    8-bit depth.</dd>

<dt>png:exclude-chunk=<em class="arg">value</em></dt>
<dt>png:include-chunk=<em class="arg">value</em></dt>
<dd>ancillary chunks to be excluded from or included in PNG output.

    <p>The<em class="arg">value</em> can be the name of a PNG chunk-type such
    as <em class="arg">bKGD</em>, a comma-separated list of chunk-types,
    or the word <em class="arg">all</em> or
    the word <em class="arg">none</em>.  There must be no spaces in the
    list.  Although PNG chunk-names are case-dependent, you can use
    all lowercase names if you prefer.</p>

    <p>As a special case, if the <kbd>sRGB</kbd> chunk is excluded and
    the <kbd>gAMA</kbd> chunk is included, the <kbd>gAMA</kbd> chunk will
    only be written if gamma is not 1/2.2, since most decoders assume
    sRGB and gamma=1/2.2 when no colorspace information is included in
    the PNG file.  Because the list is processed from left to right, you
    can achieve this with a single define:</p>

<pre class="text">
    -define png:include-chunk=none,gAMA
</pre>

    <p>The critical PNG chunks <kbd>IHDR</kbd>, <kbd>PLTE</kbd>,
    <kbd>IDAT</kbd>, and <kbd>IEND</kbd> cannot be excluded.  Any of
    these entries appearing in the list will be ignored.</p>

    <p>If the ancillary PNG <kbd>tRNS</kbd> chunk is excluded and the
    image has transparency, the PNG colortype is forced to be 4 or 6
    (GRAY_ALPHA or RGBA).  If the image is not transparent, then the
    <kbd>tRNS</kbd> chunk isn't written anyhow, and there is no effect
    on the PNG colortype of the output image.</p>

    <p>The <a href="#strip">-strip</a> option does the equivalent of the
    following for PNG output:</p>

<pre class="text">
    -define png:include-chunk=none,gama
</pre>

    <p>The default behavior is to include all known PNG ancillary chunks
    plus ImageMagick's private <kbd>vpAg</kbd> ("virtual page") chunk,
    and to exclude all PNG chunks that are unknown to ImageMagick,
    regardless of their PNG "copy-safe" status as described in the
    PNG specification.</p>
    </dd>

<dt>ps:imagemask</dt>
<dd>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will create
    Postscript files that render bilevel images with the Postscript imagemask
    operator instead of the image operator.</dd>

<dt>quantum:format=<em class="arg">type</em></dt>
<dd>Set the type to <kbd>floating-point</kbd> to specify a floating-point
    format for raw files (e.g. GRAY:) or for MIFF and TIFF images in HDRI mode
    to preserve negative values. If <a href="#depth">-depth</a> 16 is
    included, the result is a single precision floating point format.
    If <a href="#depth">-depth</a> 32 is included, the result is
    double precision floating point format.</dd>

</dl>

<p>For example, to create a postscript file that will render only the black
pixels of a bilevel image, use:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert bilevel.tif -define ps:imagemask eps3:stencil.ps</span></p>
<p>Set attributes of the image registry by prefixing the value with
<kbd>registry:</kbd>.  For example, to set a temporary path to put work files,
use:</p>

<p class="crtsnip">
-define registry:temporary-path=/data/tmp
</p>



<div style="margin: auto;">
  <h4><a id="delay"></a>-delay <em class="arg">ticks</em> <br />-delay <em class="arg">ticks</em>x<em class="arg">ticks-per-second</em> {<em class="arg">&lt;</em>} {<em class="arg">&gt;</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>display the next image after pausing.</td><td style='text-align:right;'></td></tr></table>

<p>This option is useful for regulating the animation of image sequences <em>ticks/ticks-per-second</em> seconds must expire before the display of the next image. The default is no delay between each showing of the image sequence.  The default ticks-per-second is 100.</p>

<p>Use <kbd>&gt;</kbd> to change the image delay <em>only</em> if its current value exceeds the given delay. <kbd>&lt;</kbd> changes the image delay <em>only</em> if current value is less than the given delay.  For example, if you specify <kbd>30&gt;</kbd> and the image delay is 20, the image delay does not change. However, if the image delay is 40 or 50, the delay it is changed to 30. Enclose the given delay in quotation marks to prevent the <kbd>&lt;</kbd> or <kbd>&gt;</kbd> from being interpreted by your shell as a file redirection.</p>


<div style="margin: auto;">
  <h4><a id="delete"></a>-delete <em class="arg">index</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>delete the image, specified by its index, from the image sequence.</td><td style='text-align:right;'></td></tr></table>

<p>Specify the image by its index in the sequence.  The first image is index 0.  Negative indexes are relative to the end of the sequence, for example, -1 represents the last image of the sequence.  Specify a range of images with a dash (e.g. 0-4).  Separate indexes with a comma (e.g. 0,2).  Use <kbd>+delete</kbd> to delete the last image in the current image sequence.</p>


<div style="margin: auto;">
  <h4><a id="density"></a>-density <em class="arg">width</em><br />-density <em class="arg">width</em>x<em class="arg">height</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the horizontal and vertical resolution of an image for rendering to devices.</td><td style='text-align:right;'></td></tr></table>

<p>This option specifies the image resolution to store while encoding a raster image or the canvas resolution while rendering (reading) vector formats such as Postscript, PDF, WMF, and SVG into a raster image. Image resolution provides the unit of measure to apply when rendering to an output device or raster image. The default unit of measure is in dots per inch (DPI). The <a href="#units">-units</a> option may be used to select dots per centimeter instead.</p>

<p>The default resolution is 72 dots per inch, which is equivalent to one point per pixel (Macintosh and Postscript standard). Computer screens are normally 72 or 96 dots per inch, while printers typically support 150, 300, 600, or 1200 dots per inch. To determine the resolution of your display, use a ruler to measure the width of your screen in inches, and divide by the number of horizontal pixels (1024 on a 1024x768 display).</p>

<p>If the file format supports it, this option may be used to update the stored image resolution. Note that Photoshop stores and obtains image resolution from a proprietary embedded profile. If this profile is not stripped from the image, then Photoshop will continue to treat the image using its former resolution, ignoring the image resolution specified in the standard file header.</p>

<p>The <a href="#density">-density</a> option sets an <em>attribute</em> and does not alter the underlying raster image. It may be used to adjust the rendered size for desktop publishing purposes by adjusting the scale applied to the pixels. To resize the image so that it is the same size at a different resolution, use the <a href="#resample">-resample</a> option.</p>

<div style="margin: auto;">
  <h4><a id="depth"></a>-depth <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>depth of the image.</td><td style='text-align:right;'></td></tr></table>

<p>This the number of bits in a color sample within a pixel.  Use this option to specify the depth of raw images whose depth is unknown such as GRAY, RGB, or CMYK, or to change the depth of any image after it has been read.</p>

<div style="margin: auto;">
  <h4><a id="descend"></a>-descend</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>obtain image by descending window hierarchy.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="deskew"></a>-deskew <em class="arg">threshold</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>straighten an image.  A threshold of 40% works for most images.</td><td style='text-align:right;'></td></tr></table>

<p>Use <a href="#set">-set</a> <kbd>option:deskew:auto-crop <em>width</em></kbd> to auto crop the image.  The set argument is the pixel width of the image background (e.g 40).</p>

<div style="margin: auto;">
  <h4><a id="despeckle"></a>-despeckle</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>reduce the speckles within an image.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="direction"></a>-direction <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>render text right-to-left or left-to-right.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="displace"></a>-displace <em class="arg">horizontal-scale</em><br />-displace <em class="arg">horizontal-scale</em>x<em class="arg">vertical-scale</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>shift image pixels as defined by a displacement map.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>With this option, the 'overlay' image, and optionally the 'mask' image,
is used as a displacement map, which is used to displace the lookup of
what part of the 'background' image is seen at each point of the overlaid
area.  Much like the displacement map is a 'lens' that redirects light shining
through it so as to present a distorted view the original 'background' image
behind it. </p>

<p>Any perfect grey areas of the displacement map produce a zero
displacement of the image. Black areas produce the given maximum negative
displacement of the lookup point, while white produce a maximum positive
displacement of the lookup. </p>

<p>Note that it is the lookup of the 'background' that is displaced, not a
displacement of the image itself. As such an area of the displacement map
containing 'white' will have the lookup point 'shifted' by a positive amount,
and thus generating a copy of the destination image to the right/downward from
the correct position.  That is the image will look like it may have been
'shifted' in a negative left/upward direction.  Understanding this is a very
important in understanding how displacement maps work.  </p>

<p>The given arguments define the maximum amount of displacement in pixels
that a particular map can produce. If the displacement scale is large enough
it is also possible to lookup parts of the 'background' image that lie well
outside the bounds of the displacement map itself.  That is you could very
easily copy a section of the original image from outside the overlay area
into the overlay area. </p>

<p>The '%' flag makes the displacement scale relative to the size of the
overlay image (100% = half width/height of image). Using '!' switches
percentage arguments to refer to the destination image size instead.
these flags were added as of IM v6.5.3-5.</p>

<p>Normally a single grayscale displacement map is provided, which with the
given scaling values will determine a single direction (vector) in which
displacements can occur (positively or negatively).  However, if you also
specify a third image which is normally used as a <em class="arg">mask</em>,
the <em class="arg">composite image</em> is used for horizontal X
displacement, while the <em class="arg">mask image</em> is used for vertical Y
displacement.  This allows you to define completely different displacement
values for the X and Y directions, and allowing you to lookup any point within
the  <em class="arg">scale</em> bounds.  In other words each pixel can lookup
any other nearby pixel, producing complex 2 dimensional displacements, rather
than a simple 1 dimensional vector displacements. </p>

<p>Alteratively rather than suppling two separate images, as of IM v6.4.4-0,
you can use the 'red' channel of the overlay image to specify the horizontal
or X displacement, and the 'green' channel for the vertical or Y displacement.
</p>

<p>As of IM v6.5.3-5 any alpha channel in the overlay image is used as a
mask the transparency of the destination image. However areas outside the
overlaid areas will not be effected. </p>


<div style="margin: auto;">
  <h4><a id="display"></a>-display <em class="arg">host:display[.screen]</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specifies the X server to contact.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p>This option is used with convert for obtaining image or font from this X server. See <em class="arg">X(1)</em>.</p>

<div style="margin: auto;">
  <h4><a id="dispose"></a>-dispose <em class="arg">method</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>define the GIF disposal image setting for images that are being created or read in. </td><td style='text-align:right;'></td></tr></table>

<p>The layer disposal method defines the way each the displayed image is to be
modified after the current 'frame' of an animation has finished being
displayed (after its 'delay' period), but before the next frame on an
animation is to be overlaid onto the display. </p>

<p>Here are the valid methods:</p>

<pre class="text">
Undefined   0  No disposal specified (equivalent to '<kbd>none</kbd>').
None        1  Do not dispose, just overlay next frame image.
Background  2  Clear the frame area with the background color.
Previous    3  Clear to the image prior to this frames overlay.
</pre>

<p>You can also use the numbers given above, which is what the GIF format
uses internally to represent the above settings. </p>

<p>To print a complete list of dispose methods, use <a href="#list">-list dispose</a>.</p>

<p>Use <a href="#dispose" >+dispose</a>, turn off the setting and prevent
resetting the layer disposal methods of images being read in. </p>

<p>Use <a href="#set">-set</a> '<kbd>dispose</kbd>' method to set the image
disposal method for images already in memory.</p>

<div style="margin: auto;">
  <h4><a id="dissimilarity-threshold"></a>-dissimilarity-threshold <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>maximum RMSE for subimage match (default 0.2).</td><td style='text-align:right;'>[<a href="../www/compare.html">compare</a>]</td></tr></table>


<div style="margin: auto;">
  <h4><a id="dissolve"></a>-dissolve <em class="arg">src_percent</em>[x<em class="arg">dst_percent</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>dissolve an image into another by the given percent.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>The opacity of the composite image is multiplied by the given percent, then
it is composited 'over' the main image.  If <em class="arg">src_percent</em>
is greater than 100, start dissolving the main image so it becomes
transparent at a value of '<kbd class="arg">200</kbd>'.  If both percentages
are given, each image are dissolved to the percentages given. </p>

<p>Note that dissolve percentages do not add, two opaque images dissolved
'50,50', produce a 75% transparency. For a 50% + 50% blending of the two
images, you would need to use dissolve values of '50,100'.  </p>

<div style="margin: auto;">
  <h4><a id="distort"></a>-distort <em class="arg">method arguments</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>distort an image, using the given <em class="arg">method</em> and its required <em class="arg">arguments</em>.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">arguments</em> is a single string containing a list
of floating point numbers separated by commas or spaces.  The number of
and meaning of the floating point values depends on the distortion <em
class="arg">method</em> being used. </p>

<p>Choose from these distortion types:</p>

<table class="doc">
  <tr valign="top">
    <th align="left" style="width: 8%">Method</th>
    <th align="left">Description</th>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>ScaleRotateTranslate</kbd>&nbsp;&nbsp;
    <br/>or &nbsp; <kbd>SRT</kbd></td>
    <td valign="top">
       Distort image by first scaling and rotating about a given 'center',
       before translating that 'center' to the new location, in that order. It
       is an alternative method of specifying a '<kbd>Affine</kbd>' type of
       distortion, but without shearing effects.  It also provides a good way
       of rotating and displacing a smaller image for tiling onto a larger
       background (IE 2-dimensional animations). <br/>

       The number of arguments determine the specific meaning of each
       argument for the scales, rotation, and translation operations. <br/>

       <table style="margin-left:auto; margin-right:auto;">
       <tr><td># &nbsp;</td><td>arguments meaning</td></tr>
       <tr><td>1:</td><td><em>Angle_of_Rotation</em></td></tr>
       <tr><td>2:</td><td><em>Scale &nbsp; Angle</em></td></tr>
       <tr><td>3:</td><td><em>X,Y &nbsp; &nbsp; Angle</em></td></tr>
       <tr><td>4:</td><td><em>X,Y &nbsp; Scale &nbsp; Angle</em></td></tr>
       <tr><td>5:</td>
           <td><em>X,Y &nbsp; ScaleX,ScaleY &nbsp; Angle</em></td></tr>
       <tr><td>6:</td>
           <td><em>X,Y &nbsp; Scale &nbsp; Angle &nbsp; NewX,NewY</em></td></tr>
       <tr><td>7:</td>
           <td><em>X,Y &nbsp; ScaleX,ScaleY &nbsp; Angle
                   &nbsp; NewX,NewY</em></td></tr>
       </table>

       This is actually an alternative way of specifying a 2 dimensional linear
       '<kbd>Affine</kbd>' or '<kbd>AffineProjection</kbd>' distortion.  </td> </tr>

  <tr valign="top">
    <td valign="top"><kbd>Affine</kbd></td>
    <td valign="top">
       Distort the image linearly by moving a list of at least 3 or more sets
       of control points (as defined below).  Ideally 3 sets or 12 floating
       point values are given allowing the image to be linearly scaled,
       rotated, sheared, and translated, according to those three points. See
       also the related '<kbd>AffineProjection</kbd>' and '<kbd>SRT</kbd>'
       distortions. <br/>

       More than 3 sets given control point pairs (12 numbers) is least
       squares fitted to best match a lineary affine distortion. If only 2
       control point pairs (8 numbers) are given a two point image translation
       rotation and scaling is performed, without any possible  shearing,
       flipping or changes in aspect ratio to the resulting image. If only one
       control point pair is provides the image is only translated, (which may
       be a floating point non-integer translation). <br/>

       This distortion does not include any form of perspective distortion.
       </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>AffineProjection</kbd></td>
    <td valign="top">
       Linearly distort an image using the given Affine Matrix of 6
       pre-calculated coefficients forming a set of Affine Equations to map
       the source image to the destination image.

       <div style="text-align: center"><em>
       s<sub>x</sub>, r<sub>x</sub>,
       r<sub>y</sub>, s<sub>y</sub>,
       t<sub>x</sub>, t<sub>y</sub>
       </em></div>

       See <a href="#affine" >-affine</a> setting for more detail, and
       meanings of these coefficients. <br/>

       The distortions '<kbd>Affine</kbd>' and '<kbd>SRT</kbd>' provide
       alternative methods of defining this distortion, with ImageMagick doing
       the calculations needed to generate the required coefficients. You can
       see the internally generated coefficients, by using a <a
       href="#verbose" >-verbose</a> setting with those other varients.  </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>BilinearForward</kbd><br/>
    <kbd>BilinearReverse</kbd></td>
    <td valign="top">
       Bilinear Distortion, given a minimum of 4 sets of coordinate pairs, or
       16 values (see below). Not that lines may not appear straight after
       distortion, though the distance between coordinates will remain
       consistent. <br/>

       The '<kbd>BilinearForward</kbd>' is used to map rectangles to any
       quadrilateral, while the '<kbd>BilinearReverse</kbd>' form maps any
       quadrilateral to a rectangle, while preserving the straigth line edges
       in each case.  <br/>

       Note that '<kbd>BilinearForward</kbd>' can generate invalid pixels
       which will be colored using the <a href="#mattecolor" >-mattecolor</a>
       color setting.  Also if the quadraterial becomes 'flipped' the image
       may dissappear. <br/>

       There are future plans to produce a true Bilinear distortion that will
       attempt to map any quadrilateral to any other quadrilateral, while
       preserving edges (and edge distance ratios).

       </td>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Perspective</kbd></td>
    <td valign="top">
       Perspective distort the images, using a list of 4 or more sets of
       control points (as defined below).  More that 4 sets (16 numbers) of
       control points provide least squares fitting for more accurate
       distortions (for the purposes of image registration and panarama
       effects).  Less than 4 sets will fall back to a '<kbd>Affine</kbd>'
       linear distortion.  <br/>

       Perspective Distorted images ensures that straight lines remain
       straight, but the scale of the distorted image will vary. The horizon
       is anti-aliased, and the 'sky' color may be set using the
       <a href="#mattecolor" >-mattecolor</a> setting. </td>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>PerspectiveProjection</kbd>&nbsp;&nbsp;</td>
    <td valign="top">
       Do a '<kbd>Perspective</kbd>' distortion biased on a set of 8
       pre-calculated coefficients. You can get these coefficients by looking
       at the <a href="#verbose" >-verbose</a> output of a
       '<kbd>Prespective</kbd>' distortion, or by calculating them yourself.
       If the last two perspective scaling coefficients are zero, the
       remaining 6 represents a transposed 'Affine Matrix'. </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Arc</kbd></td>
    <td valign="top">
       Arc the image (variation of polar mapping) over the angle given around
       a circle. <br/>
       <table width="90%" style = "margin-left: auto; margin-right: auto;">
       <tr valign="top"><td>Argument</td>
           <td>Meaning</td></tr>
       <tr valign="top"><td><em>arc_angle</em></td>
           <td>The angle over which to arc the image side-to-side</td></tr>
       <tr valign="top"><td><em>rotate_angle</em></td>
           <td>Angle to rotate resulting image from vertical center</td></tr>
       <tr valign="top"><td><em>top_radius</em></td>
           <td>Set top edge of source image at this radius</td></tr>
       <tr valign="top"><td><em>bottom_radius</em>&nbsp;</td>
           <td>Set bottom edge to this radius (radial scaling)</td></tr>
       </table>

       The resulting image is always resized to best fit the resulting image,
       (as if using <a href="#distort" >+distort</a>) while attempting to
       preserve scale and aspect ratio of the original image as much as
       possible with the arguments given by the user. All four arguments will
       be needed to change the overall aspect ratio of an 'Arc'ed image. <br/>

       This a variation of a polar distortion designed to try to preserve the
       aspect ratio of the image rather than direct Cartesian to Polar
       conversion. </td>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Polar</kbd></td>
    <td valign="top">
       Like '<kbd>Arc</kbd>' but do a complete Cartesian to Polar mapping of
       the image. that is the height of the input image is mapped to the
       radius limits, while the width is wrapped around between the
       angle limits. <br/>

       Arguments: <em>Rmax,Rmin CenterX,CenterY, start,end_angle</em> <br/>

       All arguments are optional. With <em>Rmin</em> defaulting to zero, the
       center to the center of the image, and the angles going from -180 (top)
       to +180 (top).  If <em>Rmax</em> is given the special value of
       '<code>0</code>', the the distance from the center to the nearest edge
       is used for the radius of the output image, which will ensure the whole
       image is visible (though scaled smaller).  However a special value of
       '<code>-1</code>' will use the distance from the center to the furthest
       corner,  This may 'clip' the corners from the input rectangular image,
       but will generate the exact reverse of a '<kbd>DePolar</kbd>' with
       the same arguments. <br/>

       If the plus form of distort (<a href="#distort" >+distort</a>) is used
       output image center will default to <code>0,0</code> of the virtual
       canvas, and the image size adjusted to ensure the whole input image is
       made visible in the output image on the virtual canvas. </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>DePolar</kbd></td>
    <td valign="top">
       Uses the same arguments and meanings as a '<kbd>Polar</kbd>' distortion
       but generates the reverse Polar to Cartesian distortion. <br/>

       The special <em>Rmax</em> setting of '<code>0</code>' may however clip
       the corners of the input image.  However using the special
       <em>Rmax</em> setting of '<code>-1</code>' (maximum center to corner
       distance) will ensure the whole distorted image is preserved in the
       generated result, so that the same argument to '<kbd>Polar</kbd>' will
       reverse the distortion re-producing the original.

       Note that as this distortion requires the area resampling of a circular
       arc, which can not be handled by the builtin EWA resampling function.
       As such the normal EWA filters are turned off. It is recommended some
       form of 'super-sampling' image processing technique be used to produce
       a high quality result. </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Barrel</kbd></td>
    <td valign="top">
       Given the four coefficients (A,B,C,D) as defined by <a
       href="http://wiki.panotools.org/Lens_correction_model" >Helmut
       Dersch</a>, perform a barrell or pin-cushion distortion appropriate to
       correct radial lens distortions.  That is in photographs, make straight
       lines straight again. <br/>

       Arguments: <em>A &nbsp; B &nbsp; C</em> &nbsp; [ <em>D</em> &nbsp; [
       <em>X</em> , <em>Y</em> ] ] <br/>
       or <em>A<sub>x</sub> B<sub>x</sub> C<sub>x</sub> D<sub>x</sub> &nbsp;
       A<sub>y</sub> B<sub>y</sub> C<sub>y</sub> D<sub>y</sub></em> &nbsp;
       [ <em>X</em> , <em>Y</em> ] <br/>
       So that it forms the function <br/>
          Rsrc = r * ( <em>A</em>*r<sup>3</sup> + <em>B</em>*r<sup>2</sup> +
                               <em>C</em>*r + <em>D</em> )<br/>

       Where <em>X</em>,<em>Y</em> is the optional center of the distortion
       (defaulting to the center of the image). <br/>
       The second form is typically used to distort images, rather than
       correct lens distortions. <br/>
       </td>

  </tr>

  <tr valign="top">
    <td valign="top"><kbd>BarrelInverse</kbd></td>
    <td valign="top">
       This is very simular to '<kbd>Barrel</kbd>' with the same set of
       arguments, and argument handling.  However it uses the inverse
       of the radial polynomial,
       so that it forms the function <br/>
          Rsrc = r / ( <em>A</em>*r<sup>3</sup> + <em>B</em>*r<sup>2</sup> +
                               <em>C</em>*r + <em>D</em> )<br/>
       Note that this is not the reverse of the '<kbd>Barrel</kbd>'
       distortion, just a different barrel-like radial distortion method.

       </td>
  </tr>

  <tr valign="top">
    <td valign="top"><kbd>Shepards</kbd></td>
    <td valign="top">
       Distort the given list control points (any number) using an Inverse
       Squared Distance Interpolation Method (<a
       href="http://en.wikipedia.org/wiki/Shepard%27s_method" >Shepards
       Method</a>). The control points in effect do 'localized' displacement
       of the image around the given control point (preserving the look and
       the rotation of the area near the control points.  For best results
       extra control points should be added to 'lock' the positions of the
       corners, edges and other unchanging parts of the image, to prevent
       their movement. <br/>

       The distortion has been likened to 'taffy pulling' using nails, or
       pins' stuck in a block of 'jelly' which is then moved to the new
       position, distorting te surface of the jelly. <br/>

       Internally it is equivelent to generating a displacement map (see <a
       href="#displace" >-displace</a>) for source image color look-up using
       the <a href="#sparse-color" >-sparse-color</a> method of the same name.

       </td>
  </tr>

</table>

<p>To print a complete list of distortion methods, use <a href="#list">-list
distort</a>.</p>

<p>Many of the above distortion methods such as '<kbd>Affine</kbd>',
'<kbd>Perspective</kbd>', and '<kbd>Shepards</kbd>' use a list control points
defining how these points in the given image should be distorted in the
destination image. Each set of four floating point values represent a source
image coordinate, followed immediately by the destination image coordinate.
This produces a list of values such as...</p>
<div style="text-align: center"><em>
      U<sub>1</sub>,V<sub>1</sub> X<sub>1</sub>,Y<sub>1</sub> &nbsp;
      U<sub>2</sub>,V<sub>2</sub> X<sub>2</sub>,Y<sub>2</sub> &nbsp;
      U<sub>3</sub>,V<sub>3</sub> X<sub>3</sub>,Y<sub>3</sub> &nbsp;
      ... &nbsp;
      U<sub>n</sub>,V<sub>n</sub> X<sub>n</sub>,Y<sub>n</sub> &nbsp;
</em></div>
<p>where <em>U,V</em> on the source image is mapped to <em>X,Y</em> on the
destination image. </p>

<p>For example, to warp an image using '<kbd>perspective</kbd>' distortion,
needs a list of at least 4 sets of coordinates, or 16 numbers.  Here is the
perspective distortion of the built-in "rose:" image. Note how spaces were
used to group the 4 sets of coordinate pairs, to make it easier to read and
understand.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>
convert rose:  -virtual-pixel black \<br/>
     -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \<br/>
     rose_3d_rotated.gif</span></p>
<p>If more that the required number of coordinate pairs are given for
a distortion, the distortion method is 'least squares' fitted to produce the
best result for all the coordinate pairs given. If less than the ideal number
of points are given, the distort will generally fall back to a simpler form of
distortion that can handles the smaller number of coordinates (usally a linear
'<kbd>Affine</kbd>' distortion). </p>

<p>By using more coordinates you can make use of image registration tool to
find matching coordinate pairs in overlapping images, so as to improve the
'fit' of the distortion. Of course a bad coordinate pair can also make the
'fit' worse. Caution is always advised. </p>

<p>Colors are acquired from the source image according to the <a
href="#interpolate" >-interpolate</a> color lookup setting, when the image is
magnified.  However if the viewed image is minified (image becomes smaller),
a special area resampling function (added ImageMagick v6.3.5-9), is used to
produce a higher quality image.  For example you can use
a '<kbd>perspective</kbd>' distortion to view a infinitely tiled 'plane' all
the way to the horizon. </p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>
convert -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \<br/>
     -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \<br/>
     checks_tiled.jpg</span></p>
<p>Note that a infinitely tiled perspective images involving the horizon can
be very slow to generate due to the use of the high quality 'area resampling'
function (added ImageMagick v6.3.5-9).  You can turn off 'area resampling'
using a <a href="#filter" >-filter</a> setting of '<kbd>point</kbd>'
(recommended if you plan to use super-sampling instead). </p>

<p>If an image generates <i>invalid pixels</i>, such as the 'sky' in the last
'<kbd>perspective</kbd>' distortion example, <a href="#distort" >-distort</a>
will use the current <a href="#mattecolor" >-mattecolor</a> setting for these
pixels. If you do not what these pixels to be visible, set the color to match
the rest of the ground. </p>

<p>The output image size will by default be the same as the input image.  This
means that if the part of the distorted image falls outside the viewed area of
the 'distorted space', those parts is clipped and lost.  However if you use
the plus form of the operator (<a href="#distort" >+distort</a>) the operator
will attempt (if possible) to show the whole of the distorted image, while
retaining a correct 'virtual canvas' offset, for image layering. This offset
may need to be removed using <a href="#repage" >+repage</a>, to remove if it
is unwanted. </p>

<p>You can alternatively specify a special "<kbd><a href="#set" >-set</a>
option:distort:viewport {geometry_string}</kbd>" setting which will specify
the size and the offset of the generated 'viewport' image of the distorted
image space.</p>

<p>Adding a "<kbd><a href="#set" >-set</a> option:distort:scale
{scale_factor}</kbd>" will scale the output image (viewport or otherwise) by
that factor without changing the viewed contents of the distorted image. This
can be used either for 'super-sampling' the image for a higher quality result,
or for panning and zooming around the image (with appropriate viewport
changes, or post-distort cropping and resizing). </p>

<p>Setting <a href="#verbose" >-verbose</a> setting, will cause <a
href="#distort" >-distort</a> to attempt to output the internal coefficients,
and the <a href="#fx" >-fx</a> equivalent to the distortion, for expert study,
and debugging purposes. This many not be available for all distorts. </p>

<p>Affine rotations and shears (such as '<kbd>SRT</kbd>' distortion), tend to
produce a cleaner result that the equivalent <a href="#rotate" >-rotate</a>
and/or <a href="#shear" >-shear</a> operation, with more control of due to the
above settings. It is algorithmically slower however, though that may not be
the case in ImageMagick's implementation.  </p>


<div style="margin: auto;">
  <h4><a id="dither"></a>-dither <em class="arg">method</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply a Riemersma or Floyd-Steinberg error diffusion dither to images when general color reduction is applied via an option, or automagically when saving to specific formats. This enabled by default. </td><td style='text-align:right;'></td></tr></table>

<p>Dithering places two or more colors in neighboring pixels so that to the eye a closer approximation of the images original color is reproduced. This reduces the number of colors needed to reproduce the image but at the cost of a lower level pattern of colors. Error diffusion dithers can use any set of colors (generated or user defined) to an image.  </p>

<p>Dithering is turned on by default, to turn it off use the plus form of the
setting, <a href="#dither">+dither</a>. This will also also render PostScript
without text or graphic aliasing. Disabling dithering often (but not always)
leads to faster process, a smaller number of colors, but more cartoon like
image coloring.  Generally resulting in 'color banding' effects in areas with
color gradients. </p>

<p>The color reduction operators <a href="#colors">-colors</a>, <a
href="#monochrome">-monochrome</a>, <a href="#remap ">-remap</a>, and <a href="#posterize">-posterize</a>, apply dithering to images using the reduced color set they created. These operators are also used as part of automatic color reduction when saving images to formats with limited color support, such as <kbd>GIF:</kbd>, <kbd>XBM:</kbd>, and others, so dithering may also be used in these cases. </p>

<p>Alternatively you can use <a href="#random-threshold">-random-threshold</a> to generate purely random dither. Or use <a href="#ordered-dither">-ordered-dither</a> to apply threshold mapped dither patterns, using uniform color maps, rather than specific color maps. </p>


<div style="margin: auto;">
  <h4><a id="draw"></a>-draw <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Annotate an image with one or more graphic primitives.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to annotate or decorate an image with one or more graphic primitives. The primitives include shapes, text, transformations, and pixel operations.</p>

<p>The shape primitives:</p>

<pre class="text">
   point           x,y
   line            x0,y0 x1,y1
   rectangle       x0,y0 x1,y1
   roundRectangle  x0,y0 x1,y1 wc,hc
   arc             x0,y0 x1,y1 a0,a1
   ellipse         x0,y0 rx,ry a0,a1
   circle          x0,y0 x1,y1
   polyline        x0,y0  ...  xn,yn
   polygon         x0,y0  ...  xn,yn
   bezier          x0,y0  ...  xn,yn
   path            path specification
   image           operator x0,y0 w,h filename
</pre>

<p>The text primitive:</p>

<pre class="text">
   text            x0,y0 string
</pre>
<p>The text gravity primitive:</p>

<pre class="text">
   gravity         NorthWest, North, NorthEast, West, Center,
                   East, SouthWest, South, or SouthEast
</pre>

<p>The text gravity primitive only affects the placement of text and does not interact with the other primitives.  It is equivalent to using the <a href="#gravity">-gravity</a> command-line option, except that it is limited in scope to the <a href="#draw">-draw</a> option in which it appears.</p>

<p>The transformation primitives:</p>

<pre class="text">
   rotate          degrees
   translate       dx,dy
   scale           sx,sy
   skewX           degrees
   skewY           degrees
</pre>

<p>The pixel operation primitives:</p>

<pre class="text">
   color           x0,y0 method
   matte           x0,y0 method
</pre>

<p>The shape primitives are drawn in the color specified by the preceding <a href="#fill">-fill</a> setting.  For unfilled shapes, use <a href="#fill">-fill none</a>.  You can optionally control the stroke (the "outline" of a shape) with the <a href="#stroke">-stroke</a> and <a href="#strokewidth">-strokewidth</a> settings.</p>

<p>A <kbd>point</kbd> primitive is specified by a single <em>point</em> in the pixel plane, that is, by an ordered pair of integer coordinates, <em>x</em>,<em>y</em>. (As it involves only a single pixel, a <kbd>point</kbd> primitive is not affected by <a href="#stroke">-stroke</a> or <a href="#strokewidth">-strokewidth</a>.)</p>

<p>A <kbd>line</kbd> primitive requires a start point and end point.</p>

<p>A <kbd>rectangle</kbd> primitive is specified by the pair of points at the upper left and lower right corners.</p>

<p>A <kbd>roundRectangle</kbd> primitive takes the same corner points as a <kbd>rectangle</kbd> followed by the width and height of the rounded corners to be removed.</p>

<p>The <kbd>circle</kbd> primitive makes a disk (filled) or circle (unfilled). Give the center and any point on the perimeter (boundary).</p>

<p>The <kbd>arc</kbd> primitive is used to inscribe an elliptical segment in to a given rectangle. An <kbd>arc</kbd> requires the two corners used for <kbd>rectangle</kbd> (see above) followed by the start and end angles of the arc of the segment segment (e.g. 130,30 200,100 45,90). The start and end points produced are then joined with a line segment and the resulting segment of an ellipse is filled.</p>

<p>Use <kbd>ellipse</kbd> to draw a partial (or whole) ellipse. Give the center point, the horizontal and vertical "radii" (the <em>semi-axes</em> of the ellipse) and start and end angles in degrees (e.g. 100,100 100,150 0,360).</p>

<p>The <kbd>polyline</kbd> and <kbd>polygon</kbd> primitives require three or more points to define their perimeters. A <kbd>polyline</kbd> is simply a <kbd>polygon</kbd> in which the final point is not stroked to the start point. When unfilled, this is a <em>polygonal line</em>. If the <a href="#stroke">-stroke</a> setting is <kbd>none</kbd> (the default), then a <kbd>polyline</kbd> is identical to a <kbd>polygon</kbd>.
</p>

<p>A <em>coordinate</em> is a pair of integers separated by a space or optional comma. </p>

<p>As an example, to define a circle centered at 100,100 that extends to 150,150 use:</p>

<p class="crtsnip">
   -draw 'circle 100,100 150,150'
</p>

<p>The <kbd>Bezier</kbd> primitive creates a spline curve and requires three or points to define its shape. The first and last points are the <em>knots</em> and these points are attained by the curve, while any intermediate coordinates are <em>control points</em>. If two control points are specified, the line between each end knot and its sequentially respective control point determines the tangent direction of the curve at that end. If one control point is specified, the lines from the end knots to the one control point determines the tangent directions of the curve at each end. If more than two control points are specified, then the additional control points act in combination to determine the intermediate shape of the curve. In order to
draw complex curves, it is highly recommended either to use the <kbd>path</kbd> primitive or to draw multiple four-point bezier segments with the start and end knots of each successive segment repeated. For example:</p>

<p class="crtsnip">
   -draw 'bezier 20,50 45,100 45,0 70,50'
</p>
<p class="crtsnip">
   -draw 'bezier 70,50 95,100 95,0 120,50'
</p>


<p>A <kbd>path</kbd> represents an outline of an object, defined in terms of moveto (set a new current point), lineto (draw a straight line), curveto (draw a Bezier curve), arc (elliptical or circular arc) and closepath (close the current shape by drawing a line to the last moveto) elements. Compound paths (i.e., a path with subpaths, each consisting of a single moveto followed by one or more line or curve operations) are possible to allow effects such as <em>donut holes</em> in objects. (See <a href="http://www.w3.org/TR/SVG/paths.html">Paths</a>.)</p>

<p>Use <kbd>image</kbd> to composite an image with another image. Follow the image keyword with the composite operator, image location, image size, and filename:</p>

<p class="crtsnip">
   -draw 'image SrcOver 100,100 225,225 image.jpg'
</p>

<p>You can use 0,0 for the image size, which means to use the actual
dimensions found in the image header. Otherwise, it is scaled to the given
dimensions. See <a href="../www/compose.html">Alpha Compositing</a> for
a detailed discussion of alpha composition methods that are available. </p>

<p>Use <kbd>text</kbd> to annotate an image with text. Follow the text coordinates with a string. If the string has embedded spaces, enclose it in single or double quotes.</p>

<p>For example, the following annotates the image with <kbd>Works like magick!</kbd> for an image titled <kbd>bird.miff</kbd>. </p>

<p class="crtsnip">
   -draw 'text 100,100 "Works like magick!"'
</p>

<p>See the <a href="#annotate">-annotate</a> option for another convenient way to annotate an image with text.</p>

<p>The <kbd>rotate</kbd> primitive rotates subsequent shape primitives and text primitives about the origin of the main image. If the <a href="#region">-region</a> option precedes the <a href="#draw">-draw</a> option, the origin for transformations is the upper left corner of the region.</p>

<p>The <kbd>translate</kbd> primitive translates subsequent shape and text primitives.</p>

<p>The <kbd>scale</kbd> primitive scales them.</p>

<p>The <kbd>skewX</kbd> and <kbd>skewY</kbd> primitives skew them with respect to the origin of the main image or the region.</p>

<p>The transformations modify the current affine matrix, which is initialized from the initial affine matrix defined by the <a href="#affine">-affine</a> option. Transformations are cumulative within the <a href="#draw">-draw</a> option. The initial affine matrix is not affected; that matrix is only changed by the appearance of another <a href="#affine">-affine</a> option. If another <a href="#draw">-draw</a> option appears, the current affine matrix is reinitialized from the initial affine
matrix.</p>

<p>Use the <kbd>color</kbd> primitive to change the color of a pixel to the fill color (see <a href="#fill">-fill</a>). Follow the pixel coordinate with a method:</p>

<pre class="text">
   point
   replace
   floodfill
   filltoborder
   reset
</pre>

<p>Consider the target pixel as that specified by your coordinate. The <kbd>point</kbd> method recolors the target pixel. The <kbd>replace</kbd> method recolors any pixel that matches the color of the target pixel.  <kbd>Floodfill</kbd> recolors any pixel that matches the color of the target pixel and is a neighbor, whereas <kbd>filltoborder</kbd> recolors any neighbor pixel that is not the border color. Finally, <kbd>reset</kbd> recolors all pixels.</p>

<p>Use <kbd>matte</kbd> to the change the pixel matte value to transparent. Follow the pixel coordinate with a method (see the <kbd>color</kbd> primitive for a description of methods). The <kbd>point</kbd> method changes the matte value of the target pixel. The <kbd>replace</kbd> method changes the matte value of any pixel that matches the color of the target pixel. <kbd>Floodfill</kbd> changes the matte value of any pixel that matches the color of the target pixel and is a neighbor, whereas <kbd>filltoborder</kbd> changes the matte value of any neighbor pixel that is not the border color (<a href="#bordercolor">-bordercolor</a>). Finally <kbd>reset</kbd> changes the matte value of all pixels.</p>

<p>You can set the primitive color, font, and font bounding box color with <a href="#fill">-fill</a>, <a href="#font">-font</a>, and <a href="#box">-box</a> respectively.  Options are processed in command line order so be sure to use these options <em>before</em> the <a href="#draw">-draw</a> option.</p>

<p>Strings that begin with a number must be quoted (e.g. use '1.png' rather than 1.png).</p>

<p>Drawing primitives conform to the <a href="../www/magick-vector-graphics.html">Magick Vector Graphics</a> format.</p>


<div style="margin: auto;">
  <h4><a id="edge"></a>-edge <em class="arg">radius</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>detect edges within an image.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="emboss"></a>-emboss <em class="arg">radius</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>emboss an image.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="encipher"></a>-encipher <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Encipher pixels for later deciphering by <a href="#decipher">-decipher</a>.</td><td style='text-align:right;'></td></tr></table>

<p>Get the passphrase from the file specified by <em class="arg">filename</em>.</p>

<p>For more information, see the webpage, <a href="http://www.imagemagick.org/www/cipher.html">ImageMagick: Encipher or Decipher an Image</a>.</p>



<div style="margin: auto;">
  <h4><a id="encoding"></a>-encoding <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>specify the text encoding.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from <kbd>AdobeCustom</kbd>, <kbd>AdobeExpert</kbd>, <kbd>AdobeStandard</kbd>, <kbd>AppleRoman</kbd>, <kbd>BIG5</kbd>, <kbd>GB2312</kbd>, <kbd>Latin 2</kbd>, <kbd>None</kbd>, <kbd>SJIScode</kbd>, <kbd>Symbol</kbd>, <kbd>Unicode</kbd>, <kbd>Wansung</kbd>.</p>

<div style="margin: auto;">
  <h4><a id="endian"></a>-endian <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify endianness (<kbd>MSB</kbd> or <kbd>LSB</kbd>) of the image.</td><td style='text-align:right;'></td></tr></table>

<p>To print a complete list of endian types, use the <a href="#list">-list endian</a> option.</p>

<p>Use <a href="#endian">+endian</a> to revert to unspecified endianness.</p>


<div style="margin: auto;">
  <h4><a id="enhance"></a>-enhance</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply a digital filter to enhance a noisy image.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="equalize"></a>-equalize</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>perform histogram equalization on the image channel-by-channel.</td><td style='text-align:right;'></td></tr></table>

<p>To perform histogram equalization on all channels in concert, transform the image into some other color space, such as HSL, OHTA, YIQ or YUV, then equalize the appropriate intensity-like channel, then convert back to RGB.</p>

<p>For example using HSL, we have: ... <kbd>-colorspace HSL -channel lightness -equalize -colorspace RGB</kbd> ...</p>

<p>For YIQ, YUV and OHTA use the red channel. For example, OHTA is a principal components transformation that puts most of the information in the first channel. Here we have ... <kbd>-colorspace OHTA -channel red -equalize -colorspace RGB</kbd> ...</p>

<div style="margin: auto;">
  <h4><a id="evaluate"></a>-evaluate <em class="arg">operator value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Alter channel pixels by evaluating an arithmetic, relational, or logical expression.</td><td style='text-align:right;'></td></tr></table>

<p>(See the <a href="#function" >-function</a> operator for some multi-parameter functions. See the <a href="#fx" >-fx</a> operator if more elaborate calculations are needed.)</p>

<p>The behaviors of each <em class="arg">operator</em> are summarized in the following list. For brevity, the numerical value of a "pixel" referred to below is the value of the corresponding channel of that pixel, while a "normalized pixel" is that number divided by the maximum (installation-dependent) value <em class="QR">QuantumRange</em>. (If normalized pixels are used, they are restored, following the other calculations, to the full range by multiplying by <em class="QR">QuantumRange</em>.)</p>

<table class="doc">
  <col width="25%" />
  <col width="75%" />
  <thead>
  <tr>
  <th><em class="arg">operator</em></th>
  <th>Summary (see further below for details)</th>
  </tr>
  </thead>
  <tbody>

    <tr><td>Abs </td>             <td>Add <em class="arg">value</em> to pixels and return absolute value. </td></tr>
    <tr><td>Add </td>             <td>Add <em class="arg">value</em> to pixels. </td></tr>
    <tr><td>AddModulus </td>      <td>Add <em class="arg">value</em> to pixels modulo <em class="QR">QuantumRange</em>.</td></tr>
    <tr><td>And  </td>            <td>Binary AND of pixels with <em class="arg">value</em>.</td></tr>
    <tr><td>Cos, Cosine </td>             <td>Apply cosine to pixels with frequency <em class="arg">value</em> with 50% bias added.</td></tr>
    <tr><td>Divide  </td>         <td>Divide pixels by <em class="arg">value</em>.</td></tr>
    <tr><td>Exp  </td>            <td>base-e exponential function</td></tr>
    <tr><td>Exponential  </td>            <td>base-e exponential function</td></tr>
    <tr><td>LeftShift </td>       <td>Shift the pixel values left by <em class="arg">value</em> bits (i.e., multiply pixels by 2<sup><em class="arg">value</em></sup>).</td></tr>
    <tr><td>Log  </td>            <td>Apply scaled logarithm to normalized pixels.</td></tr>
    <tr><td>Max  </td>            <td>Clip pixels at lower bound <em class="arg">value</em>.</td></tr>
    <tr><td>Mean  </td>            <td>Add the <em class="arg">value</em> and divide by 2.</td></tr>
    <tr><td>Median  </td>          <td>Choose the median value from an image sequence.</td></tr>
    <tr><td>Min  </td>            <td>Clip pixels at upper bound <em class="arg">value</em>.</td></tr>
    <tr><td>Multiply </td>        <td>Multiply pixels by <em class="arg">value</em>.</td></tr>
    <tr><td>Or  </td>             <td>Binary OR of pixels with <em class="arg">value</em>.</td></tr>
    <tr><td>Pow </td>             <td>Raise normalized pixels to the power <em class="arg">value</em>.</td></tr>
    <tr><td>RightShift </td>      <td>Shift the pixel values right by <em class="arg">value</em> bits (i.e., divide pixels by 2<sup><em class="arg">value</em></sup>).</td></tr>
    <tr><td>Set </td>             <td>Set pixel equal to <em class="arg">value</em>.</td></tr>
    <tr><td>Sin, Sine </td>             <td>Apply sine to pixels with frequency <em class="arg">value</em> with 50% bias added.</td></tr>
    <tr><td>Subtract </td>        <td>Subtract <em class="arg">value</em> from pixels.</td></tr>
    <tr><td>Xor </td>             <td>Binary XOR of pixels with <em class="arg">value.</em></td></tr>

    <tr><td>&nbsp;</td></tr>

   <tr><td>Gaussian-noise</td></tr>
   <tr><td>Impulse-noise</td></tr>
   <tr><td>Laplacian-noise</td></tr>
   <tr><td>Multiplicative-noise</td>      <td>(These are equivalent to the corresponding <a href="#noise" >-noise</a> operators.)</td></tr>
   <tr><td>PoissonNoise</td></tr>
   <tr><td>Uniform-noise</td></tr>

   <tr><td>&nbsp;</td></tr>

   <tr><td>Threshold </td>       <td>Threshold pixels larger than <em class="arg">value</em>.</td></tr>
   <tr><td>ThresholdBlack </td>  <td>Threshold pixels to zero values equal to or below <em class="arg">value</em>.</td></tr>
   <tr><td>ThresholdWhite </td>  <td>Threshold pixels to maximum values above <em class="arg">value</em>.  </td></tr>
 </tbody>
 </table>

<p>The specified functions are applied only to each previously set <a
href="#channel" >-channel</a> in the image. If necessary, the results of the
calculations are truncated (clipped) to fit in the interval [0,&nbsp;<em
class="QR">QuantumRange</em>].  The transparency channel of the image is
represented as a 'alpha' values (0 = fully transparent), so, for example, a
<kbd>Divide</kbd> by&nbsp;2 of the alpha channel will make the image
semi-transparent.  Append the percent symbol '<kbd>%</kbd>' to specify a value
as a percentage of the <em class="QR">QuantumRange</em>.</p>

<p>To print a complete list of <a href="#evaluate">-evaluate</a> operators, use
<a href="#list">-list evaluate</a>.</p>

<p>The results of the <kbd>Add</kbd>, <kbd>Subtract</kbd> and
<kbd>Multiply</kbd> methods can also be achieved using either the <a
href="#level" >-level</a> or the <a href="#level" >+level</a> operator, with
appropriate argument, to linearly modify the overall range of color values.
Please note, however, that <a href="#level" >-level</a> treats transparency as
'matte' values (0 = opaque), while <a href="#level" >-evaluate</a> works with
'alpha' values.</p>

<p><kbd>AddModulus</kbd> has been added as of ImageMagick 6.4.8-4 and provides addition modulo the <em class="QR">QuantumRange</em>. It is therefore equivalent to <kbd>Add</kbd> unless the resulting pixel value is outside the interval [0,&nbsp;<em class="QR">QuantumRange</em>]. </p>

<p><kbd>Exp or Exponential</kbd> has been added as of ImageMagick 6.6.5-1 and works on normalized pixel values. The <em class="arg">value</em> used with <kbd>Exp</kbd> should be negative so as to produce a decaying exponential function. Non-negative values will always produce results larger unity and thus outside the interval [0,&nbsp;<em class="QR">QuantumRange</em>]. The formula is expressed below. </p>

        <div style="text-align:center;">
        exp(<em class="arg">value</em> &times; <b><em>u</em></b>)
        </div>

<p> If the input image is squared, for example, using <a
href="#-function" >-function polynomial "2 0 0"</a>, then a decaying Gaussian function will be the result.</p>

<p><kbd>Log</kbd> has been added as of ImageMagick 6.4.2-1 and works on normalized pixel values. This a <em>scaled</em> log function. The <em class="arg">value</em> used with <kbd>Log</kbd> provides a <em>scaling factor</em> that adjusts the curvature in the graph of the log function. The formula applied to a normalized value <b><em>u</em></b> is below. </p>

        <div style="text-align:center;">
        log(<em class="arg">value</em> &times; <b><em>u</em></b> + 1) / log(<em class="arg">value</em> + 1)
        </div>

<p><kbd>Pow</kbd> has been added as of ImageMagick 6.4.1-9, and works on
normalized pixel values. Note that <kbd>Pow</kbd> is related to the <a
href="#gamma" >-gamma</a> operator. For example, <b>-gamma 2</b> is equivalent
to <b>-evaluate pow 0.5</b>, i.e., a 'square root' function. The value used
with <a href="#gamma" >-gamma</a> is simply the reciprocal of the value used
with <kbd>Pow</kbd>.</p>

<p><kbd>Cosine</kbd> and <kbd>Sine</kbd> was added as of IM v6.4.8-8 and
converts the image values into a value according to a (co)sine wave function.
The  synonyms <kbd>Cos</kbd> and <kbd>Sin</kbd> may also be used.  The output
is biased 50% and normalized by 50% so as to fit in the respective color value
range.  The <em class="arg">value</em> scaling of the <em>period</em> of the
function (its frequency), and thus determines the number of 'waves' that will
be generated over the input color range.  For example, if the <em
class="arg">value</em> is&nbsp;1, the effective period is simply the <em
class="QR">QuantumRange</em>; but if the <em class="arg">value</em> is&nbsp;2,
then the effective period is the <em>half</em> the <em
class="QR">QuantumRange</em>.</p>

        <div style="text-align:center;">
        0.5 + 0.5 &times; cos(2 &pi; <b><em>u</em></b> &times; <em class="arg">value</em>).
        </div>

<p>See also the <a href="#function" >-function</a> operator, which is a
multi-value version of evaluate. </p>

<div style="margin: auto;">
  <h4><a id="evaluate-sequence"></a>-evaluate-sequence <em class="arg">operator</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Alter channel pixels by evaluating an arithmetic, relational, or logical expression over a sequence of images.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="extent"></a>-extent <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the image size and offset.</td><td style='text-align:right;'></td></tr></table>

<p>If the image is enlarged, unfilled areas are set to the background color. To position the image, use offsets in the <em class="arg">geometry</em> specification or precede with a <a href="#gravity">-gravity</a> setting.  To specify how to compose the image with the background, use <a href="#compose" >-compose</a>.</p>
<p>This command reduces or expands a JPEG image to fit on an 800x600
display.  If the aspect ratio of the input image isn't exactly 4:3, then the
image is centered on an 800x600 black canvas: </p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert input.jpg -resize 800x600 -background black -compose Copy \ <br />  -gravity center -extent 800x600 -quality 92 output.jpg</span></p>


<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="extract"></a>-extract <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Extract the specified area from image.</td><td style='text-align:right;'></td></tr></table>

<p>This option is most useful for extracting a subregion of a very large raw image.  Note that these two commands are equivalent:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -size 16000x16000 -depth 8 -extract 640x480+1280+960 \ <br/> image.rgb image.png</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \ <br/> image.rgb image.png</span></p><p>If you omit the offsets, as in</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -size 16000x16000 -depth 8 -extract 640x480 \ <br/> image.rgb image.png</span></p>
<p>the image is <em>resized</em> to the specified dimensions instead,
equivalent to:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png</span></p>
<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="family"></a>-family <em class="arg">fontFamily</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set a font family for text.</td><td style='text-align:right;'></td></tr></table>

<p>This setting suggests a font family that ImageMagick should try to use for rendering text. If the family can be found it is used; if not, a default font (e.g., "Arial") or a family known to be similar is substituted (e.g., "Courier" might be used if "System" is requested but not found).
</p>

<p>For other settings that affect fonts, see the options <a href="#font">-font</a>, <a href="#stretch">-stretch</a>, <a href="#style">-style</a>, and <a href="#weight">-weight</a>.
</p>

<div style="margin: auto;">
  <h4><a id="features"></a>-features <em class="arg">distance</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>display features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="fft"></a>-fft</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>implements the forward discrete Fourier transform (DFT).</td><td style='text-align:right;'></td></tr></table>

<p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows users in ImageMagick 6.6.0-9). It transforms an image from the normal (spatial) domain to the frequency domain. In the frequency domain, an image is represented as a superposition of complex sinusoidal waves of varying amplitudes. The image x and y coordinates are the possible frequencies along the x and y directions, respectively, and the pixel intensity values are complex numbers that correspond to the sinusoidal wave amplitudes. See for example, <a href="http://en.wikipedia.org/wiki/Fourier_transform">Fourier Transform</a>, <a href="http://en.wikipedia.org/wiki/DFT">Discrete Fourier Transform</a> and <a href="http://en.wikipedia.org/wiki/FFT">Fast Fourier Transform</a>.</p>

<p>A single image name is provided as output for this option. However, the output result will have two components. It is either a two-frame image or two separate images, depending upon whether the image format specified supports multi-frame images. The reason that we get a dual output result is because the frequency domain represents an image using complex numbers, which cannot be visualized directly. Therefore, the complex values are automagically separated into a two-component image representation. The first component is the magnitude of the complex number and the second is the phase of the complex number. See for example, <a href="http://en.wikipedia.org/wiki/Complex_numbers">Complex Numbers</a>.</p>

<p>The magnitude and phase component images must be specified using image formats that do not limit the color or compress the image. Thus, MIFF, TIF, PFM, EXR and PNG are the recommended image formats to use. All of these formats, except PNG support multi-frame images. So for example,</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -fft fft_image.miff</span></p>
<p>generates a magnitude image as <kbd>fft_image.miff[0]</kbd> and a phase image as <kbd>fft_image.miff[1]</kbd>. Similarly,</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -fft fft_image.png</span></p>
<p>generates a magnitude image as <kbd>fft_image-0.png</kbd> and a phase image as <kbd>fft_image-1.png</kbd>. If you prefer this representation, then you can force any of the other formats to produce two output images by including <a href="#adjoin">+adjoin</a> following -fft in the command line.</p>

<p>The input image can be any size, but if not square and even-dimensioned, it is padded automagically to the larger of the width or height of the input image and to an even number of pixels. The padding will occur at the bottom and/or right sides of the input image. The resulting output magnitude and phase images is square at this size. The kind of padding relies on the <a href="#virtual-pixel">-virtual-pixel</a> setting.</p>

<p>Both output components will have dynamic ranges that fit within [0,&nbsp;<em class="QR">QuantumRange</em>], so that HDRI need not be enabled. Phase values nominally range from 0 to 2*&pi;, but for non-HDRI compilations of ImageMagick, the phase image is scaled to span the full dynamic range. The magnitude image is not scaled and thus generally will contain very small values. As such, the image normally will appear totally black. In order to view any detail, the magnitude image typically is enhanced with a log function into what is usually called the spectrum. A log function is used to enhance the darker values more in comparison to the lighter values. This can be done, for example, as follows:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert fft_image.miff[0] -contrast-stretch 0 \ <br />
                -evaluate log 1000 fft_image_spectrum.png</span></p>
<p>where the <a href="#contrast-stretch">-contrast-stretch</a> 0 is used to  scale the image to full dynamic range, first. The argument to the <a href="#evaluate">-evaluate</a> log typically is specified between 100 and 10,000, depending upon the amount of detail that one wants to bring out in the spectrum. Larger values produce more visible detail. Too much detail, however, may hide the important features.</p>

<p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required to use <a href="#fft">-fft</a>.</p>

<p>Use <a href="#fft">+fft</a> to produce two output images that are the real and imaginary components of the complex valued Fourier transform.</p>

<p>However, as the real and imaginary components can contain negative values, this requires that IM be configured with HDRI enabled. In this case, you must use either MIFF, TIF or PFM formats for the real and imaginary component results, since they are formats that preserve both negative and fractional values without clipping them or truncating the fractional part.</p>

<p>The real and imaginary component images resulting from <a href="#fft">+fft</a> is also square, even dimensioned images due to the same padding that was discussed above for the magnitude and phase component images.</p>

<p>See the discussion on HDRI implementations of ImageMagick on the page
<a href="../www/high-dynamic-range.html">High Dynamic-Range Images</a>. For more about HDRI go the ImageMagick <a href="http://www.imagemagick.org/Usage/basics/#hdri">Usage</a> pages or this <a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a> entry.
</p>


<div style="margin: auto;">
  <h4><a id="fill"></a>-fill <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>color to use when filling a graphic primitive.</td><td style='text-align:right;'></td></tr></table>

<p>This option accepts a color name, a hex color, or a numerical RGB, RGBA, HSL, HSLA, CMYK, or CMYKA specification.  See <a href="../www/color.html">Color Names</a> for a description of how to properly specify the color argument.</p>

<p>Enclose the color specification in quotation marks to prevent the "#" or the parentheses from being interpreted by your shell.</p>

<p>For example,</p>

<p class="crtsnip">
  -fill blue
</p>
<p class="crtsnip">
  -fill "#ddddff"
</p>
<p class="crtsnip">
  -fill "rgb(255,255,255)"
</p>

<p>See <a href="#draw">-draw</a> for further details.</p>

<p>To print a complete list of color names, use the <a href="#list">-list color</a> option.</p>

<div style="margin: auto;">
  <h4><a id="filter"></a>-filter <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Use this <em class="arg">type</em> of filter when resizing or
distorting an image.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to affect the resizing operation of an image during
operations such as <a href="#resize">-resize</a> and <a href="#distort"
>-distort</a>. For example you can use a simple resize filter such as:</p>

<pre class="text">
   Point       Hermite       Cubic
   Box         Gaussian      Catrom
   Triangle    Quadratic     Mitchell
</pre>

<p>The <kbd>Bessel</kbd> and <kbd>Sinc</kbd> filter is also provided (as well
as a faster <kbd>SincFast</kbd> equivalent form).  However these filters are
generally useless on their own as they are infinite filters that are being
clipped to the filters support size. Their direct use is not recommended
except via expert settings (see below). </p>

<p>Instead these special filter functions are typically windowed by a windowing
function that the <a href="#filter" >-filter</a> setting defines.   That is
using these functions will define a 'Windowed' filter, appropriate to the
operator involved.  Windowed filters include: </p>

<pre class="text">
   Lanczos       Hamming       Parzen
   Blackman      Kaiser        Welsh
   Hanning       Bartlett      Bohman
</pre>

<p>Also one special self-windowing filter is also provided
<kbd>Lagrange</kbd>, which will automagically re-adjust its function depending
on the current 'support' or 'lobes' expert settings (see below).</p>

<p>If you do not select a filter with this option, the filter defaults to
<kbd>Mitchell</kbd> for a colormapped image, a image with a matte channel, or
if the image is enlarged.  Otherwise the filter default to
<kbd>Lanczos</kbd>.</p>

<p>To print a complete list of resize filters, use the <a href="#list">-list
filter</a> option.</p>

<p>You can modify how the filter behaves as it scales your image through the
use of these expert settings (see also <a href="#define" >-define</a> and <a
href="#set" >-set</a>):-</p>

<dl class="doc">
<dt>-define filter:blur=<em>factor</em></dt>
<dd>Scale the X axis of the filter (and its window). Use &gt; 1.0 for
    blurry or &lt; 1.0 for sharp. This should only be used with Gaussian and
    Gaussian-like filters simple filters, or you may not get the expected
    results. </dd>

<dt>-define filter:support=<em>radius</em></dt>
<dd>Set the filter support radius. Defines how large the filter should be and
    thus directly defines how slow the filtered resampling process is. All
    filters have a default 'prefered' support size. Some filters like
    <kbd>Lagrange</kbd> and windowed filters adjust themselves depending on
    this value.  With simple filters this value either does nothing (but slow
    the resampling), or will clip the filter function in a detrimental way.
    </dd>

<dt>-define filter:lobes=<em>count</em></dt>
<dd>Set the number of lobes to use for the Sinc/Bessel filter. This an
    alternative way of specifying the 'support' range of the filter, that is
    designed to be more suited to windowed filters, especially when used for
    image distorts.</dd>

<dt>-define filter:b=<em>b-spline_factor</em></dt>
<dt>-define filter:c=<em>keys_alpha_factor</em></dt>
<dd>Redefine the values used for cubic filters such as <kbd>Cubic</kbd>,
    <kbd>Catrom</kbd>, <kbd>Mitchel</kbd>, and <kbd>Hermite</kbd>, as well as
    the <kbd>Parzen</kbd> Sinc windowing function. If only one of the values
    are defined, the other is set so as to generate a 'Keys' type cubic
    filter.  Values meaning was defined by a research paper by
    Mitchell-Netravali.</dd>

<dt>-define filter:filter=<em>filter_function</em></dt>
<dd>Use this function directly as the scaling filter.  This will allow
    you to directly use a windowing filter such as <kbd>Blackman</kbd>,
    rather than as its normal usage as a windowing function for 'Sinc' or
    'Bessel' functions. If defined, no windowing function is used, unless the
    following expert setting is also defined.</dd>

<dt>-define filter:window=<em>filter_function</em></dt>
<dd>The IIR (infinite impulse response) filters <kbd>Bessel</kbd> and
    <kbd>Sinc</kbd>  are windowed (brought down to zero over the defined
    support range) with the given filter. This allows you to specify a filter
    function that is not normally used as a windowing function, such as
    <kbd>Box</kbd>, (which effectively turns off the windowing function),
    to window a <kbd>Sinc</kbd>, or the function the previous setting defined.
    </dd>

<dt>-define filter:verbose=<em>1</em></dt>
<dd>This causes IM to print information on the final internal filter
    selection to standard output.  This includes a commented header on the
    filter settings being used, and data allowing the filter weights to be
    easily graphed. </dd>

<dd>Note however that some filters are internally defined in terms of other
    filters.  The <kbd>Lanczos</kbd> filter for example is defined in terms of
    a <kbd>SincFast</kbd> windowed <kbd>SincFast</kbd> filter, while
    <kbd>Mitchell</kbd> is defined as a <kbd>Cubic</kbd> filter with specific
    'B' and 'C' settings. </dd>

</dl>

<p>For example, to get a 8 lobe Bessel windowed Bessel filter:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -filter bessel \ <br/>
          -set filter:window=bessel -set filter:lobes=8 \ <br/>
          -resize 150%   image.jpg</span></p>
<p>Or a raw un-windowed Sinc filter with 4 lobes:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -set filter:filter=sinc -set filter:lobes=4 \ <br/>
          -resize 150%   image.jpg</span></p>
<p>Note that the use of expert options (except for 'blur' with simple resize
filters, and 'verbose' for viewing the internal filter selection), are
provided for image processing experts who have studied and understood how
resize filters work. Without this knowledge, and an understanding of the
definition of the actual filters involved, using expert settings are more
likely to be detrimental to your image resizing.</p>


<div style="margin: auto;">
  <h4><a id="flatten"></a>-flatten</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>This is a simple alias for the <a href="#layers" >-layers</a> method "flatten".</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="flip"></a>-flip</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>create a <em>mirror image</em>.</td><td style='text-align:right;'></td></tr></table>

<p>reflect the scanlines in the vertical direction.</p>

<div style="margin: auto;">
  <h4><a id="floodfill"></a>-floodfill {<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em> <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>floodfill the image with color at the specified offset. Using <a href="#fuzz" >-fuzz</a> to floodfill pixels which only change by a small amount.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="flop"></a>-flop</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>create a <em>mirror image</em>.</td><td style='text-align:right;'></td></tr></table>

<p>reflect the scanlines in the horizontal direction.</p>


<div style="margin: auto;">
  <h4><a id="font"></a>-font <em class="arg">name</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set the font to use when annotating images with text, or creating labels.</td><td style='text-align:right;'></td></tr></table>

<p>To print a complete list of fonts, use the <a href="#list">-list font</a> option (for versions prior to 6.3.6, use 'type' instead of 'font').</p>

<p>In addition to the fonts specified by the above pre-defined list, you can
also specify a font from a specific source.  For example <kbd>Arial.ttf</kbd>
is a TrueType font file, <kbd>ps:helvetica</kbd> is PostScript font, and
<kbd>x:fixed</kbd> is X11 font.</p>

<p>For other settings that affect fonts, see the options <a href="#family">-family</a>, <a href="#stretch">-stretch</a>, <a href="#style">-style</a>, and <a href="#weight">-weight</a>. </p>


<div style="margin: auto;">
  <h4><a id="foreground"></a>-foreground <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Define the foreground color.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>The default foreground color is black.</p>

<div style="margin: auto;">
  <h4><a id="format"></a>-format <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the image format type.</td><td style='text-align:right;'></td></tr></table>

<p>When used with the <kbd>mogrify</kbd> utility, this option converts any image to the image <a href="../www/formats.html">format</a> you specify.  For a list of image format types supported by ImageMagick, use <a href="#list">-list format</a>.</p>

<p>By default the file is written to its original name. However, if the filename extension matches a supported format, the extension is replaced with the image format type specified with <a href="#format">-format</a>. For example, if you specify <em class="arg">tiff</em> as the format type and the input image filename is <em class="arg">image.gif</em>, the output image filename becomes <em class="arg">image.tiff</em>.</p>

<div style="margin: auto;">
  <h4><a id="format_identify_"></a>-format <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>output formatted image characteristics.</td><td style='text-align:right;'>[<a href="../www/identify.html">identify</a>]</td></tr></table>

<p>See <a href="../www/escape.html">Format and Print Image Properties</a> for an explanation on how to specify the argument to this option.</p>

<div style="margin: auto;">
  <h4><a id="frame"></a>-frame <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Surround the image with a border or beveled frame.</td><td style='text-align:right;'></td></tr></table>

<p>The color of the border is specified with the <a href="#mattecolor"
>-mattecolor</a> command line option. </p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <em class="arg">size</em> portion of the <em
class="arg">geometry</em> argument indicates the amount of extra width and
height that is added to the dimensions of the image. If no offsets are given
in the <em class="arg">geometry</em> argument, then the border added is
a solid color.  Offsets <em>x</em> and <em>y</em>, if present, specify that
the width and height of the border is partitioned to form an outer bevel of
thickness <em>x</em>&nbsp;pixels and an inner bevel of thickness
<em>y</em>&nbsp;pixels. Negative offsets make no sense as frame arguments.
</p>

<p>The <a href="#frame">-frame</a> option is affected by the current <a
href="#compose">-compose</a> setting and assumes that this is using the default
'<kbd>Over</kbd>' composition method.  It generates a image of the appropriate
size with the current <a href="#bordercolor">-bordercolor</a> setting, and then
draws the frame of four distinct colors close to the current <a
href="#mattecolor">-mattecolor</a>.  The original image is then overlaid onto
center of this image.  This means that with the default compose method of
'<kbd>Over</kbd>' any transparent parts may be replaced by the current <a
href="#bordercolor">-bordercolor</a> setting.</p>

<p>The image composition is not
affected by the <a href="#gravity">-gravity</a> option.</p>


<div style="margin: auto;">
  <h4><a id="frame_import_"></a>-frame</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>include the X window frame in the imported image.</td><td style='text-align:right;'>[<a href="../www/import.html">import</a>]</td></tr></table>

<div style="margin: auto;">
  <h4><a id="function"></a>-function <em class="arg">function</em> <em class="arg">parameters</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply a function to channel values.</td><td style='text-align:right;'></td></tr></table>

<p>This operator performs calculations based on the given arguments to modify each of the color values for each previously set <a href="#channel">-channel</a> in the image. See <a href="#evaluate">-evaluate</a> for details concerning how the results of the calculations are handled.</p>

<p>This is can be considered a multi-argument version of the <a href="#evaluate">-evaluate</a> operator. (Added in ImageMagick&nbsp;6.4.8&minus;8.)</p>

<p>Here,  <em class="arg">parameters</em> is a comma-separated list of numerical values. The number of values varies depending on which <em class="arg">function</em> is selected. Choose the <em class="arg">function</em> from:</p>

<pre class="text">
  Polynomial
  Sinusoid
  Arcsin
  Arctan
</pre>

<p>To print a complete list of <a href="#function">-function</a> operators, use <a href="#list">-list function</a>. Descriptions follow.</p>

<dl class="doc">
<dt><kbd>Polynomial</kbd></dt>
<dd>
<p>The <kbd>Polynomial</kbd> function takes an arbitrary number of parameters, these being the coefficients of a polynomial, in decreasing order of degree. That is, entering</p>

<div style="text-align: center">
   -function Polynomial <em>a</em><sub><em>n</em></sub>,<em>a</em><sub><em>n</em>-1</sub>,...<em>a</em><sub>1</sub>,<em>a</em><sub>0</sub>
</div>

<p>will invoke a polynomial function given by</p>

<div style="text-align: center">
   <em>a</em><sub><em>n</em></sub> <b><em>u</em></b><sup><em>n</em></sup> +
   <em>a</em><sub><em>n</em>-1</sub> <b><em>u</em></b><sup><em>n</em>-1</sup> +
   &middot;&middot;&middot; <em>a</em><sub>1</sub> <b><em>u</em></b> + <em>a</em><sub>0</sub>,
</div>

<p>where <b><em>u</em></b> is pixel's original normalized channel value.</p>

<p>The <kbd>Polynomial</kbd> function can be used in place of <kbd>Set</kbd> (the <em>constant</em> polynomial) and <kbd>Add</kbd>, <kbd>Divide</kbd>, <kbd>Multiply</kbd>, and <kbd>Subtract</kbd> (some <em>linear</em> polynomials) of the <a href="#evaluate">-evaluate</a> operator. The <a href="#level">-level</a> operator also affects channels linearly. Some correspondences follow.</p>

<table class="doc">
  <col width="35%" />
  <col width="35%" />
  <col width="30%" />
  <tr>
        <td>-evaluate Set <em class="arg">value</em> </td>
        <td>-function Polynomial <em class="arg">value</em></td>
        <td>(Constant functions; set <em class="arg">value</em>&times;100% gray when channels are RGB.)</td>
  </tr>
  <tr>
        <td>-evaluate Add <em class="arg">value</em> </td>
        <td>-function Polynomial 1,<em class="arg">value</em></td>
  </tr>
  <tr>
        <td>-evaluate Subtract <em class="arg">value</em> </td>
        <td>-function Polynomial 1,&minus;<em class="arg">value</em></td>
  </tr>
  <tr>
        <td>-evaluate Multiply <em class="arg">value</em> </td>
        <td>-function Polynomial <em class="arg">value</em>,0</td>
  </tr>
  <tr>
        <td>+level  black% x white%</td>
        <td>-function Polynomial  A,B</td>
        <td>(Reduce contrast. Here, A=(white-black)/100 and  B=black/100.)</td>
  </tr>
</table>

<p>The <kbd>Polynomial</kbd> function gives great versatility, since polynomials can be used to fit any continuous curve to any degree of accuracy desired.</p>
</dd>

<dt><kbd>Sinusoid</kbd></dt>
<dd>
<p>The <kbd>Sinusoid</kbd> function can be used to vary the channel values sinusoidally by setting frequency, phase shift, amplitude, and a bias. These values are given as one to four parameters, as follows,</p>

<div style="text-align: center">
   -function <kbd>Sinusoid</kbd> <em class="arg">freq</em>,[<em class="arg">phase</em>,[<em class="arg">amp</em>,[<em class="arg">bias</em>]]]
</div>

<p>where <em>phase</em> is in degrees. (The domain [0,1] of the function corresponds to 0 through <em class="arg">freq</em>&times;360&nbsp;degrees.) The result is that if a pixel's normalized channel value is originally <b><em>u</em></b>, its resulting normalized value is given by </p>

<div style="text-align: center">
<em class="arg">amp</em> * sin(2*&pi;* (<em class="arg">freq</em> * <b><em>u</em></b> + <em class="arg">phase</em> / 360)) + <em class="arg">bias</em>
</div>

<p> For example, the following generates a curve that starts and ends at 0.9 (when <b><em>u</em></b>=0 and 1, resp.), oscillating three times between .7&minus;.2=.5 and .7+.2=.9. </p>

<p class="crtsnip">
   -function Sinusoid 3,-90,.2,.7
</p>

<p>The default values of <em class="arg">amp</em> and <em class="arg">bias</em> are both .5. The default for <em class="arg">phase</em> is 0.</p>

<p>The <kbd>Sinusoid</kbd> function generalizes <kbd>Sin</kbd> and <kbd>Cos</kbd> of the <a href="#evaluate">-evaluate</a> operator by allowing varying amplitude, phase and bias. The correspondence is as follows.</p>

<table class="doc">
  <tr>
        <td>-evaluate Sin <em class="arg">freq</em> </td>
        <td>-function Sinusoid <em class="arg">freq</em>,0 </td>
  </tr>
  <tr>
        <td>-evaluate Cos <em class="arg">freq</em> </td>
        <td>-function Sinusoid <em class="arg">freq</em>,90 </td>
  </tr>
</table>
</dd>

<dt><kbd>ArcSin</kbd></dt>
<dd>
<p>The <kbd>ArcSin</kbd> function generates the inverse curve of a Sinusoid,
and can be used to generate cylindrical distortion and displacement maps.
The curve can be adjusted relative to both the input values and output range
of values.</p>

<p style="text-align: center">
   -function <kbd>ArcSin</kbd> <em class="arg">width</em>,[<em class="arg">center</em>,[<em class="arg">range</em>,[<em class="arg">bias</em>]]]
</p>

<p>with all values given in terms of noramlize color values (0.0 for black,
1.0 for white). Defaulting to values covering the full range from 0.0 to 1.0
for bout input (<em class="arg">width</em>), and output (<em
class="arg">width</em>) values. '<code>1.0,0.5,1.0,0.5</code>' </p>

<p style="text-align: center">
<em class="arg">range</em>/&pi; * asin( 2/<em class="arg">width</em> * ( <b><em>u</em></b> - <em class="arg">center</em> ) ) + <em class="arg">bias</em>
</p>

</dd>

<dt><kbd>ArcTan</kbd></dt>
<dd>
<p>The <kbd>ArcTan</kbd> function generates a curve that smooth crosses from
limit values at infinities, though a center using the given slope value.
All these values can be adjusted via the arguments.</p>

<p style="text-align: center">
   -function <kbd>ArcTan</kbd> <em class="arg">slope</em>,[<em class="arg">center</em>,[<em class="arg">range</em>,[<em class="arg">bias</em>]]]
</p>

<p>Defaulting to '<code>1.0,0.5,1.0,0.5</code>'.
</p>

<p style="text-align: center">
<em class="arg">range</em>/&pi; * atan( <em class="arg">slope</em>*&pi; * ( <b><em>u</em></b> - <em class="arg">center</em> ) ) + <em class="arg">bias</em>
</p>

</dd>

</dl>


<div style="margin: auto;">
  <h4><a id="fuzz"></a>-fuzz <em class="arg">distance</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Colors within this <em class="arg">distance</em> are considered equal.</td><td style='text-align:right;'></td></tr></table>

<p>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. For example, if you want to automagically trim the edges of an image with <a href="#trim">-trim</a> but the image was scanned and the target background color may differ by a small amount. This option can account for these differences.</p>

<p>The <em class="arg">distance</em> can be in absolute intensity units or, by appending <kbd>%</kbd> as a percentage of the maximum possible intensity (255, 65535, or 4294967295).</p>


<div style="margin: auto;">
  <h4><a id="fx"></a>-fx <em class="arg">expression</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>apply a mathematical expression to an image or image channels.</td><td style='text-align:right;'></td></tr></table>

<p>If the first character of <em class="arg">expression</em> is <kbd>@</kbd>, the expression is read from a file titled by the remaining characters in the string.</p>

<p>See <a href="../www/fx.html">FX, The Special Effects Image Operator</a> for a detailed discussion of this option.</p>


<div style="margin: auto;">
  <h4><a id="gamma"></a>-gamma <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>level of gamma correction.</td><td style='text-align:right;'></td></tr></table>

<p>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 <kbd>0.8</kbd> to <kbd>2.3</kbd>. Gamma less than 1.0 darkens the image and gamma greater than 1.0 lightens it. Large adjustments to image gamma may result in the loss of some image information if the pixel quantum size is only eight bits (quantum range 0 to 255).</p>

<p>Gamma adjusts the image's channel values pixel-by-pixel according to a power law, namely, pow(pixel,1/gamma) or pixel^(1/gamma), where pixel is the normalized or 0 to 1 color value. For example, using a value of gamma=2 is the same as taking the square root of the image.</p>

<p>You can apply separate gamma values to the red, green, and blue channels of the image with a gamma value list delimited with commas (e.g., <kbd>1.7,2.3,1.2</kbd>).</p>

<p>Use <a href="#gamma">+gamma <em class="arg">value</em></a> to set the image gamma level without actually adjusting the image pixels. This option is useful if the image is of a known gamma but not set as an image attribute (e.g. PNG images).</p>

<p>Note that gamma adjustments are also available via the <a href="#level">-level</a> operator.</p>

<div style="margin: auto;">
  <h4><a id="gaussian-blur"></a>-gaussian-blur <em class="arg">radius</em><br />-gaussian-blur <em class="arg">radius</em>x<em class="arg">sigma</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Blur the image with a Gaussian operator.</td><td style='text-align:right;'></td></tr></table>

<p>Convolve the image with a Gaussian or normal distribution using the given
<em class="arg" >Sigma</em> value.  The formula is:</p>

<div class="eqn"><img alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"/>
</div>

<p>The <em class="arg" >Sigma</em> value is the important argument, and
determines the actual amount of blurring that will take place. </p>

<p>The <em class="arg" >Radius</em> is only used to determine the size of the
array which will hold the calculated Gaussian distribution. It should be an
integer.  If not given, or set to zero, IM will calculate the largest possible
radius that will provide meaningful results for the Gaussian distribution.
</p>

<p>The larger the <em class="arg" >Radius</em> the radius the slower the
operation is. However too small a <em class="arg" >Radius</em>, and sever
aliasing effects may result.  As a guideline, <em class="arg" >Radius</em>
should be at least twice the <em class="arg" >Sigma</em> value, though three
times will produce a more accurite result. </p>

<p>This differs from the faster <a href="#blur">-blur</a> operator in that a
full 2-dimensional convolution is used to generate the weighted average of the
neighboring pixels. </p>

<p>The <a href="#virtual-pixel">-virtual-pixel</a> setting will determine how
pixels which are outside the image proper are blurred into the final result.
</p>


<div style="margin: auto;">
  <h4><a id="geometry"></a>-geometry <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the preferred size and location of the image.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="gravity"></a>-gravity <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Sets the current gravity suggestion for various other settings and options.</td><td style='text-align:right;'></td></tr></table>

<p>Choices include: <kbd>NorthWest</kbd>, <kbd>North</kbd>, <kbd>NorthEast</kbd>,
<kbd>West</kbd>, <kbd>Center</kbd>, <kbd>East</kbd>, <kbd>SouthWest</kbd>,
<kbd>South</kbd>, <kbd>SouthEast</kbd>.  Use <a href="#list">-list gravity</a> to get a complete
list of <a href="#gravity">-gravity</a> settings available in your ImageMagick
installation.</p>

<p>The direction you choose specifies where to position text or subimages. For example, a gravity of <kbd>Center</kbd> forces the text to be centered within the image. By default, the image gravity is <kbd>NorthWest</kbd>. See <a href="#draw">-draw</a> for more details about graphic primitives.  Only the text primitive of <a href="#draw">-draw</a> affected by the <a href="#gravity">-gravity</a> option.</p>

<p>The <a href="#gravity">-gravity</a> option is also used in concert with the <a href="#geometry">-geometry</a> setting and other settings or options that take <em class="arg">geometry</em> as an argument, such as the <a href="#crop">-crop</a> option. </p>

<p>If a <a href="#gravity">-gravity</a> setting occurs before another option or setting having a <em class="arg">geometry</em> argument that specifies an offset, the offset is usually applied to the point within the image suggested by the <a href="#gravity">-gravity</a> argument.  Thus, in the following command, for example, suppose the file <kbd>image.png</kbd> has dimensions 200x100. The offset specified by the argument to <a href="#region">-region</a> is (&minus;40,+20). The argument to <a href="#gravity">-gravity</a> is <kbd>Center</kbd>, which suggests the midpoint of the image, at the point (100,50). The offset (&minus;40,20) is applied to that point, giving (100&minus;40,50+20)=(60,70), so the specified 10x10&nbsp;region is located at that point. (In addition, the <a href="#gravity">-gravity</a> affects the region itself, which is <em>centered</em> at the pixel coordinate&nbsp;(60,70). (See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.)</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -gravity Center -region 10x10-40+20 \ <br/> -negate output.png</span></p>
<p>When used as an option to <a href="../www/composite.html">composite</a>, <a href="#gravity">-gravity</a> gives the direction that the image gravitates within the composite.</p>

<p>When used as an option to <a href="../www/montage.html">montage</a>, <a href="#gravity">-gravity</a> gives the direction that an image gravitates within a tile. The default gravity is <kbd>Center</kbd> for this purpose.</p>


<div style="margin: auto;">
  <h4><a id="green-primary"></a>-green-primary <em class="arg">x,y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>green chromaticity primary point.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="hald-clut"></a>-hald-clut</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>apply a Hald color lookup table to the image.</td><td style='text-align:right;'></td></tr></table>

<p>A Hald color lookup table is a 3-dimensional color cube mapped to 2
dimensions.  Create it with the <kbd>HALD:</kbd> prefix (e.g. HALD:8).  You
can apply any color transformation to the Hald image and then use this option
to apply the transform to the image. </p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png hald.png -hald-clut transform.png</span></p>
<p>This option provides a convenient method for you to use Gimp or Photoshop
to make color corrections to the Hald CLUT image and subsequently apply them
to multiple images using an ImageMagick script. </p>

<p>Note that the representation is only of the normal RGB color space and that
the whole color value triplet is used for the interpolated lookup of the
represented Hald color cube image.  Because of this the operation is not <a
href="#channel" >-channel</a> setting effected, nor can it adjust or modify an
images transparency or alpha/matte channel.</p>

<p>See also <a href="#clut" >-clut</a> which provides color value replacement
of the individual color channels, usally involving a simplier gray-scale
image. E.g:  gray-scale to color replacement, or modification by a histogram
mapping. </p>


<div style="margin: auto;">
  <h4><a id="help"></a>-help</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>print usage instructions.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="highlight-color"></a>-highlight-color <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>when comparing images, emphasize pixel differences with this color.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="iconGeometry"></a>-iconGeometry <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>specify the icon geometry.</td><td style='text-align:right;'></td></tr></table>

<p>Offsets, if present in the geometry specification, are handled in the same manner as the <a href="#geometry">-geometry</a> option, using X11 style to handle negative offsets.</p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="iconic"></a>-iconic</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>iconic animation.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="identify"></a>-identify</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>identify the format and characteristics of the image.</td><td style='text-align:right;'></td></tr></table>

<p>This information is printed: image scene number; image name; image size; the image class (<em class="arg">DirectClass</em> or <em class="arg">PseudoClass</em>); the total number of unique colors; and the number of seconds to read and transform the image. Refer to <a href="../www/miff.html">MIFF</a> for a description of the image class.</p>

<p>If <a href="#colors">-colors</a> is also specified, the total unique colors in the image and color reduction error values are printed. Refer to <a href="../www/quantize.html">color reduction algorithm</a> for a description of these values.</p>

<p>If <a href="#verbose">-verbose</a> precedes this option, copious
amounts of image properties are displayed including image statistics, profiles,
image histogram, and others.</p>

<div style="margin: auto;">
  <h4><a id="ift"></a>-ift</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>implements the inverse discrete Fourier transform (DFT).</td><td style='text-align:right;'></td></tr></table>

<p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows users in ImageMagick 6.6.0-9). It transforms a pair of magnitude and phase images from the frequency domain to a single image in the normal or spatial domain. See for example, <a href="http://en.wikipedia.org/wiki/Fourier_transform">Fourier Transform</a>, <a href="http://en.wikipedia.org/wiki/DFT">Discrete Fourier Transform</a> and <a href="http://en.wikipedia.org/wiki/FFT">Fast Fourier Transform</a>.</p>

<p>For example, depending upon the image format used to store the result of the <a href="#fft">-fft</a>, one would use either</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert fft_image.miff -ift fft_image_ift.png</span></p>
<p>or</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert fft_image-0.png fft_image-1.png -ift fft_image_ift.png</span></p>

<p>The resulting image may need to be cropped due to padding introduced when the original image, prior to the <a href="#fft">-fft</a> or <a href="#fft">+fft</a>, was not square or even dimensioned. Any padding is at the right and/or bottom sides of the image.</p>

<p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required to use <a href="#ift">-ift</a>.</p>

<p>Use <a href="#ift">+ift</a> (with HDRI enabled) to transform a pair of real and imaginary images from the frequency domain to a single image in the normal (spatial) domain.</p>

<div style="margin: auto;">
  <h4><a id="immutable"></a>-immutable</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>make image immutable.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="implode"></a>-implode <em class="arg">factor</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>implode image pixels about the center.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="insert"></a>-insert <em class="arg">index</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>insert the last image into the image sequence.</td><td style='text-align:right;'></td></tr></table>

<p>This option takes last image in the current image sequence and inserts it at the given index. If a negative index is used, the insert position is calculated before the last image is removed from the sequence. As such <kbd>-insert -1</kbd> will result in no change to the image sequence.</p>

<p>The <kbd>+insert</kbd> option is equivalent to <kbd>-insert -1</kbd>. In other words, insert the last image, at the end of the current image sequence. Consequently this has no effect on the image sequence order.</p>

<div style="margin: auto;">
  <h4><a id="intent"></a>-intent <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>use this type of rendering intent when managing the image color.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to affect the color management operation of an image (see <a href="#profile">-profile</a>).  Choose from these intents: <kbd>Absolute, Perceptual, Relative, Saturation</kbd>.</p>

<p>The default intent is undefined.</p>

<p>To print a complete list of rendering intents, use <a href="#list">-list intent</a>.</p>

<div style="margin: auto;">
  <h4><a id="interlace"></a>-interlace <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the type of interlacing scheme.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from:</p>

<pre class="text">
  none
  line
  plane
  partition
  JPEG
  GIF
  PNG
</pre>

<p>This option is used to specify the type of interlacing scheme for raw image formats such as <kbd>RGB</kbd> or <kbd>YUV</kbd>.</p>

<p><kbd>None</kbd> means do not interlace (RGBRGBRGBRGBRGBRGB...),</p>

<p><kbd>Line</kbd> uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and.</p>

<p><kbd>Plane</kbd> uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...).</p>

<p><kbd>Partition</kbd> is like plane except the different planes are saved to individual files (e.g. image.R,
image.G, and image.B).</p>

<p>Use <kbd>Line</kbd> or <kbd>Plane</kbd> to create an <kbd>interlaced PNG</kbd> or <kbd>GIF</kbd> or <kbd>progressive JPEG</kbd>
image.</p>

<p>To print a complete list of interlacing schemes, use <a href="#list">-list interlace</a>.</p>

<div style="margin: auto;">
  <h4><a id="interpolate"></a>-interpolate <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the pixel color interpolation method to use when looking up a color based on a floating point or real value.</td><td style='text-align:right;'></td></tr></table>

<p>When looking up the color of a pixel using a non-integer floating point
value, you typically fall in between the pixel colors defined by the source
image. This setting determines how the color is determined from the colors of
the pixels surrounding that point.  That is how to determine the color of a
point that falls between two, or even four different colored pixels. </p>

<pre class="text">
  integer:           The color of the top-left pixel (floor function)
  nearest-neighbor:  The nearest pixel to the lookup point (rounded function)
  average:           The average color of the surrounding four pixels
  bilinear           A double linear interpolation of pixels (the default)
  mesh               Divide area into two flat triangular interpolations
  bicubic            Fitted bicubic-spines of surrounding 16 pixels
  spline             Direct spline curves (colors are blurred)
  filter             Use resize <a href="#filter">-filter</a> settings
</pre>

<p>This most important for distortion operators such as <a href="#distort"
>-distort</a>, <a href="#implode" >-implode</a>, <a href="#transform"
>-transform</a> and <a href="#fx" >-fx</a>. </p>

<p>To print a complete list of interpolation methods, use <a href="#list">-list interpolate</a>.</p>

<p>See also <a href="#virtual-pixel" >-virtual-pixel</a>, for control of the
lookup for positions outside the boundaries of the image. </p>


<div style="margin: auto;">
  <h4><a id="interline-spacing"></a>-interline-spacing <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the space between two text lines.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="interword-spacing"></a>-interword-spacing <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the space between two words.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="kerning"></a>-kerning <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the space between two letters.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="label"></a>-label <em class="arg">name</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>assign a label to an image.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to assign a specific label to the image, as it is read in
or created.  You can use the <a href="#set" >-set</a> operation to re-assign
a the labels of images already read in.  Image formats such as TIFF, PNG,
MIFF, supports saving the label information with the image.</p>

<p>When saving an image to a <em class="arg">PostScript</em> file, any label
assigned to an image is used as a header string to print above the postscript
image. </p>

<p>You can include the image filename, type, width, height, or other image
attribute by embedding special format character.  See <a href="../www/escape.html">Format and Print Image
Properties</a> for details of the percent escape codes.</p>

<p>For example,</p>

<p class="crtsnip">
  -label "%m:%f %wx%h"  bird.miff
</p>

<p>assigns an image label of <kbd>MIFF:bird.miff 512x480</kbd> to the
"<kbd>bird.miff</kbd>" image and whose width is 512 and height is 480, as it
is read in.  If a  <a href="#label">+label</a> option was used instead, any
existing label present in the image would be used.  You can remove all labels
from an image by assigning the empty string. </p>

<p>A label is not drawn on the image, but is embedded in the image datastream
via <em>Label</em> tag or similar mechanism. If you want the label to be
visible on the image itself, use the <a href="#draw">-draw</a> option, or
during the final processing in the creation of a image montage.</p>

<p>If the first character of <em class="arg">string</em> is <em
class="arg">@</em>, the image label is read from a file titled by the
remaining characters in the string. Labels in a file are literal, no embedded
formatting characters are recognized.</p>


<div style="margin: auto;">
  <h4><a id="lat"></a>-lat <em class="arg">width</em><br />-lat <em class="arg">width</em>x<em class="arg">height</em>{<em class="arg">+-</em>}<em class="arg">offset</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>perform local adaptive threshold.</td><td style='text-align:right;'></td></tr></table>

<p>Adaptively threshold each pixel based on the value of pixels in a
surrounding window.  If the current pixel is lighter than this average plus
the optional <kbd>offset</kbd>, then it is made white, otherwise it is made
black.  Small variations in pixel values such as found in scanned documents
can be ignored if offset is positive. A negative offset will make it more
sensitive to those small variations. </p>

<p>This is commonly used to threshold images with an uneven background.  It is
based on the assumption that average color of the small window is the
the local background color, from which to separate the forground color. </p>


<div style="margin: auto;">
  <h4><a id="layers"></a>-layers <em class="arg">method</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>handle multiple images forming a set of image layers or animation frames.</td><td style='text-align:right;'></td></tr></table>

<p>Perform various image operation methods to a ordered sequence of images
which may represent either a set of overlaid 'image layers', a GIF disposal
animation, or a fully-'coalesced' animation sequence. </p>

<table class="doc">
  <tbody>
  <tr valign="top">
    <th align="left" style="width: 8%">Method</th>
    <th align="left">Description</th>
  </tr>

  <tr valign="top">
    <td valign="top">compare-any</td>
    <td valign="top">Crop the second and later frames to the smallest rectangle
        that contains all the differences between the two images.  No GIF <a
        href="#dispose" >-dispose</a> methods are taken into account. </td>
  </tr>

  <tr><td></td><td>This exactly the same as the <a href="#deconstruct"
        >-deconstruct</a> operator, and does not preserve animations normal
        working, especially when animation used layer disposal methods such as
        '<kbd>Previous</kbd>' or '<kbd>Background</kbd>'. </td>
  </tr>

  <tr valign="top">
    <td valign="top">compare-clear</td>
    <td valign="top">As '<kbd>compare-any</kbd>' but crop to the bounds of any
       opaque pixels which become transparent in the second frame. That is the
       smallest image needed to mask or erase pixels for the next frame. </td>
  </tr>

  <tr valign="top">
    <td valign="top">compare-overlay</td>
    <td valign="top">As '<kbd>compare-any</kbd>' but crop to pixels that add
       extra color to the next image, as a result of overlaying color pixels.
       That is the smallest single overlaid image to add or change colors. </td>
   </tr>

   <tr><td></td><td>This can be used with the <a href="#compose" >-compose</a> alpha
       composition method '<kbd>change-mask</kbd>', to reduce the image to
       just the pixels that need to be overlaid. </td>
   </tr>

  <tr valign="top">
    <td valign="top">coalesce</td>
    <td valign="top">Equivalent to a call to the <a href="#coalesce"
        >-coalesce</a> operator.  Apply the layer disposal methods set in the
        current image sequence to form a fully defined animation sequence, as
        it should be displayed.  Effectively converting a GIF animation into a
        'film strip'-like animation.  </td>
  </tr>

  <tr valign="top">
    <td valign="top">composite</td>
    <td valign="top">Alpha Composition of two image lists, separated by a
        "<kbd>null:</kbd>" image, with the destination image list first, and
        the source images last.  An image from each list are composited
        together until one list is finished. The separator image and source
        image lists are removed. </td>
  </tr>


  <tr><td></td>
    <td>The <a href="#geometry" >-geometry</a> offset is adjusted according
        to <a href="#gravity" >-gravity</a> in accordance of the virtual
        canvas size of the first image in each list. Unlike a normal <a
        href="#composite" >-composite</a> operation, the canvas offset is also
        added to the final composite positioning of each image. </td> </tr>

  <tr><td></td>
    <td>If one of the image lists only contains one image, that image is
        applied to all the images in the other image list, regardless of which
        list it is. In this case it is the image meta-data of the list which
        preserved.  </td>
  </tr>


  <tr valign="top">
    <td valign="top">dispose</td>
    <td valign="top">This like '<kbd>coalesce</kbd>' but shows the look of
        the animation after the layer disposal method has been applied, before
        the next sub-frame image is overlaid. That is the 'dispose' image that
        results from the application of the GIF <a href="#dispose"
        >-dispose</a> method.  This allows you to check what
        is going wrong with a particular animation you may be developing.
        </td>
  </tr>

  <tr valign="top">
    <td valign="top">flatten</td>
    <td valign="top">Create a canvas the size of the first images virtual
        canvas using the current <a href="#background" >-background</a> color,
        and <a href="#compose" >-compose</a> each image in turn onto that
        canvas.  Images falling outside that canvas is clipped. Final
        image will have a zero virtual canvas offset. </td>
  </tr>

  <tr><td></td>
    <td>This usally used as one of the final 'image layering' operations
        overlaying all the prepared image layers into a final image. </td>
  </tr>

  <tr><td></td>
    <td>For a single image this method can also be used to fillout a virtual
        canvas with real pixels, or to underlay a opaque color to remove
        transparency from an image.</td>
  </tr>


  <tr valign="top">
    <td valign="top">merge</td>
    <td valign="top">As 'flatten' method but merging all the given image
        layers into a new layer image just large enough to hold all the image
        without clipping or extra space. The new images virtual offset will
        prevere the position of the new layer, even if this offset is
        negative.  the virtual canvas size of the first image is preserved.
        </td>
    </tr>

     <tr><td></td><td>Caution is advised when handling image layers with negative offsets
        as few image file formats handle them correctly. </td>
  </tr>

  <tr valign="top">
    <td valign="top">mosaic</td>
    <td valign="top">As 'flatten' method but expanding the initial canvas size
        of the first image so as to hold all the image layers.  However as a
        virtual canvas is 'locked' to the origin, by definition, image layers
        with a negative offsets will still be clipped by the top and left
        edges.</td>
  </tr>

  <tr><td></td><td>This method is commonly used to layout individual image using various
        offset but without knowing the final canvas size. The resulting image
        will, like 'flatten' not have any virtual offset, so can be saved to
        any image file format. </td>
  </tr>


  <tr valign="top">
    <td valign="top">optimize</td>
    <td valign="top">Optimize a coalesced animation, into GIF animation using
        a number of general techniques.  This currently a short cut to
        apply both the '<kbd>optimize-frame</kbd>', and
        '<kbd>optimize-transparency</kbd>' methods but may be expanded to
        include other optimization methods as they are developed. </td>
  </tr>

  <tr valign="top">
    <td valign="top">optimize-frame</td>
    <td valign="top">Optimize a coalesced animation, into GIF animation by
        reducing the number of pixels per frame as much as possible by
        attempting to pick the best layer disposal method to use, while ensuring
        the result will continue to animate properly. </td>
  </tr>

  <tr><td></td><td> There is no guarantee that the best optimization is found. But
        then no reasonably fast GIF optimization algorithm can do this.
        However this does seem to do better than most other GIF frame
        optimizers seen. </td>
  </tr>

  <tr valign="top">
    <td valign="top">optimize-plus</td>
    <td valign="top">As '<kbd>optimize-frame</kbd>' but attempt to improve the
        overall optimization by adding extra frames to the animation, without
        changing the final look or timing of the animation.  The frames are
        added to attempt to separate the clearing of pixels from the
        overlaying of new additional pixels from one animation frame to the
        next.  If this does not improve the optimization (for the next frame
        only), it will fall back to the results of the previous normal
        '<kbd>optimize-frame</kbd>' technique. </td>
  </tr>

  <tr><td></td><td>There is the possibility that the change in the disposal style will
        result in a worsening in the optimization of later frames, though this
        is unlikely. In other words there no guarantee that it is better than
        the normal '<kbd>optimize-frame</kbd>' technique. For some animations
        however you can get a vast improvement in the final animation size. </td>
  </tr>

  <tr valign="top">
    <td valign="top">optimize-transparency</td>
    <td valign="top">Given a GIF animation, replace any pixel in the sub-frame
        overlay images with transparency, if it does not change the resulting
        animation by more than the current <a href="#fuzz" >-fuzz</a> factor.
        </td>
  </tr>

  <tr><td></td><td>This should allow a existing frame optimized GIF animation to compress
        into a smaller file size due to larger areas of one (transparent)
        color rather than a pattern of multiple colors repeating the current
        disposed image of the last frame. </td>
  </tr>

  <tr valign="top">
    <td valign="top">remove-dups</td>
    <td valign="top">Remove (and merge time delays) of duplicate consecutive
        images, so as to simplify layer overlays of coalesced animations.
        </td>
  </tr>

   <tr><td></td><td>Usually this a result of using a constant time delay across the
        whole animation, or after a larger animation was split into smaller
        sub-animations.  The duplicate frames could also have been used as
        part of some frame optimization methods. </td>
  </tr>

  <tr valign="top">
    <td valign="top">remove-zero</td>
    <td valign="top">Remove any image with a zero time delay, unless ALL the
        images have a zero time delay (and is not a proper timed animation, a
        warning is then issued). </td>
  </tr>

  <tr><td></td><td>In a GIF animation, such images are usually frames which provide
        partial intermediary updates between the frames that are actually
        displayed to users.  These frames are usally added for improved frame
        optimization in GIF animations. </td>
  </tr>

  <tr valign="top">
    <td valign="top">trim-bounds</td>
    <td valign="top">Find the bounds of all the images in the current
        image sequence, then adjust the offsets so all images are contained on
        a minimal positive canvas. None of the image data is modified, only
        there virtual canvas size and offset.  The all the image is given
        the same canvas size, and and will have a positive offset, but will
        remain in the same position relative to each other. As a result of the
        minimal canvas size at least one image will touch every edge of that
        canvas.  The image data however may be transparent.
        </td>
  </tr>

  </tbody>
</table>

<p>To print a complete list of layer types, use <a href="#list">-list layers</a>.</p>

<p>The operators <a href="#coalesce" >-coalesce</a>, <a href="#deconstruct"
>-deconstruct</a>, <a href="#flatten" >-flatten</a>, and <a href="#mosaic"
>-mosaic</a> are only aliases for the above methods.  Also see  <a
href="#page" >-page</a>,  <a href="#repage" >-repage</a> operators, the <a
href="#compose" >-compose</a> setting, and the GIF <a href="#dispose"
>-dispose</a> and  <a href="#delay" >-delay</a> settings. </p>


<div style="margin: auto;">
  <h4><a id="level"></a>-level <em class="arg">black_point</em>{,<em class="arg">white_point</em>}{<em class="arg">%</em>}{,<em class="arg">gamma</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>adjust the level of image channels.</td><td style='text-align:right;'></td></tr></table>

<p>Given one, two or three values delimited with commas: black-point,
white-point, gamma (for example: 10,250,1.0 or 2%,98%,0.5). The black and
white points range from 0 to <em class="QR">QuantumRange</em>, or from 0 to 100%; if the white
point is omitted it is set to (<em class="QR">QuantumRange</em> - black_point), so as to center
contrast changes.  If a <kbd>%</kbd> sign is present anywhere in the string,
both black and white points are percentages of the full color range.  Gamma
will do a <a href="#gamma">-gamma</a> adjustment of the values.  If it is
omitted, the default of 1.0 (no gamma correction) is assumed.</p>

<p>In normal usage (<kbd>-level</kbd>) the image values are stretched so that
the given '<kbd>black_point</kbd>' value in the original image is set to
zero (or black), while the given '<kbd>white_point</kbd>' value is set to
<em class="QR">QuantumRange</em> (or white).  This provides you with direct contrast adjustments
to the image.  The '<kbd>gamma</kbd>' of the resulting image will then be
adjusted. </p>

<p>From ImageMagick v6.4.1-9 using the plus form of the operator (<kbd>+level</kbd>) or
adding the special '!' flag anywhere in the argument list, will cause the
operator to do the reverse of the level adjustment.  That is a zero, or
<em class="QR">QuantumRange</em> value (black, and white, resp.) in the original image, is
adjusted to the given level values, allowing you to de-contrast, or compress
the channel values within the image. The '<kbd>gamma</kbd>' is adjusted before the level adjustment to de-contrast the image is made. </p>

<p>Only the channels defined by the current <a href="#channel">-channel</a>
setting are adjusted (defaults to RGB color channels only), allowing you to
limit the effect of this operator. </p>

<p>Please note that the transparency channel is treated as 'matte'
values (0 is opaque) and not as 'alpha' values (0 is transparent).</p>


<div style="margin: auto;">
  <h4><a id="level-colors"></a>-level-colors {<em
  class="arg">black_color</em>}{,}{<em class="arg">white_color</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>adjust the level of an image using the provided dash separated colors.</td><td style='text-align:right;'></td></tr></table>

<p>This function is exactly like <a href="#level">-level</a>, except that the
value value for each color channel is determined by the
'<kbd>black_color</kbd>' and '<kbd>white_color</kbd>' colors given (as
described under the <a href="#fill">-fill</a> option). </p>

<p>This effectually means the colors provided to <kbd>-level-colors</kbd>
is mapped to become 'black' and 'white' respectively, with all the other
colors linearly adjusted (or clipped) to match that change. Each channel is
adjusted separately using the channel values of the colors specified. </p>

<p>On the other hand the plus form of the operator (<kbd>+level-colors</kbd>)
will map the image color 'black' and 'white' to the given colors
respectively, resulting in a gradient (de-contrasting) tint of the image to
those colors. This can also be used to convert a plain gray-scale image into a
one using the gradient of colors specified. </p>

<p>By supplying a single color with a comma separator either before or after
that color, will just replace the respective 'black' or 'white' point
respectively.  But if no comma separator is provided, the given color is
used for both the black and white color points, making the operator either
threshold the images around that color (- form) or set all colors to that
color (+ form). </p>


<div style="margin: auto;">
  <h4><a id="limit"></a>-limit <em class="arg">type value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the pixel cache resource limit.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from: <kbd>area</kbd>, <kbd>disk</kbd>, <kbd>file</kbd>, <kbd>map</kbd>, <kbd>memory</kbd>, <kbd>threads</kbd>, or <kbd>time</kbd>.</p>

<p>The value for <kbd>file</kbd> is in number of files. The other limits are in bytes. By default the limits are 768 files, 2GB of image area, 1.5GiB memory, 8GiB memory map, and 18.45EB of disk.  These limits are adjusted relative to the available resources on your computer if this information is available.   When any limit is reached, ImageMagick fails in some fashion but attempts to take compensating actions, if possible. For example, the following limits memory:</p>

<p class="crtsnip">
  -limit memory 32MiB -limit map 64MiB
</p>

<p>Use <a href="#list">-list resource</a> to list the current limits. For example, our system shows these limits:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -list resource</span><span class='crtout'></span></p><pre class="text">
File         Area       Memory          Map         Disk   Thread         Time
------------------------------------------------------------------------------
 768     12.404GB    8.6642GiB    23.104GiB  18.446744EB        8    unlimited
</pre>

<p>Requests for pixel storage to keep intermediate images are satisfied by one of three resource categories: in-memory pool, memory-mapped files pool, and disk pool (in that order) depending on the <a href="../www/command-line-options.html#limit">&#x2011;limit</a> settings and whether the system honors a resource request. If the total size of allocated pixel storage in the given pool reaches the corresponding limit, the request is passed to the next pool. Additionally, requests that exceed the  <kbd>area</kbd> limit automagically are allocated on disk.</p>

<p>To illustrate how ImageMagick utilizes resource limits, consider a typical image resource request.  First, ImageMagick tries to allocate the pixels in memory.  The request might be denied if the resource request exceeds the <kbd>memory</kbd> limit or if the system does not honor the request.  If a memory request is not honored, the pixels are allocated to disk and the file is memory-mapped. However, if the allocation request exceeds the <kbd>map</kbd> limit, the resource allocation goes to disk. In all cases, if the resource request exceeds the <kbd>area</kbd> limit, the pixels are automagically cached to disk. If the disk has a hard limit, the program fails.</p>

<p>In most cases you simply do not need to concern yourself with resource limits.  ImageMagick chooses reasonable defaults and most images do not tax your computer resources.  Where limits do come in handy is when you process images that are large or on shared systems where ImageMagick can consume all or most of the available memory. In this case, the ImageMagick workflow slows other processes or, in extreme cases, brings the system to a halt.  Under these circumstances, setting limits give some assurances that the ImageMagick workflow will not interfere with other concurrent uses of the computer.  For example, assume you have a web interface that processes images uploaded from the Internet.  To assure ImageMagick does not exceed 10mb of memory you can simply set the area limit to 10mb:</p>

<p class="crtsnip">
-limit area 10mb
</p>

<p>Now whenever a large image is processed, the pixels are automagically cached to disk instead of memory.  This of course implies that large images typically process very slowly, simply because pixel processing in memory can be an order of magnitude faster than on disk.  Because your web site users might inadvertently upload a huge image to process, you should set a disk limit as well:</p>

<p class="crtsnip">
-limit area 10mb -limit disk 500mb
</p>

<p>Here ImageMagick stops processing if an image requires more than 500MB of disk storage.</p>

<p>In addition to command-line resource limit option, resources can be set with <a href="../www/resources.html#environment">environment variables</a>. Set the environment variables <kbd>MAGICK_AREA_LIMIT</kbd>, <kbd>MAGICK_DISK_LIMIT</kbd>, <kbd>MAGICK_FILE_LIMIT</kbd>, <kbd>MAGICK_MEMORY_LIMIT</kbd>, <kbd>MAGICK_MAP_LIMIT</kbd>, <kbd>MAGICK_THREAD_LIMIT</kbd>, <kbd>MAGICK_TIME_LIMIT</kbd> for limits of  image area, disk space, open files, heap memory, memory map, number of threads of execution, and maximum elapsed time in seconds respectively.</p>

<p> Inquisitive users can try adding <a href="#debug">-debug cache</a> to their commands and then scouring the generated output for references to the pixel cache, in order to determine how the pixel cache was allocated and how resources were consumed. Advanced Unix/Linux users can pipe that output through <kbd>grep memory|open|destroy|disk</kbd> for more readable sifting.
</p>

<p>For more about ImageMagick's use of resources, see the section <b>Cache Storage and Resource Requirements</b> on the <a href="../www/architecture.html#cache">Architecture</a> page.
</p>

<div style="margin: auto;">
  <h4><a id="linear-stretch"></a>-linear-stretch <em class="arg">black-point</em><br />-linear-stretch <em class="arg">black-point</em>{x<em class="arg">white-point</em>}{<em class="arg">%</em>}}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Linear with saturation stretch.</td><td style='text-align:right;'></td></tr></table>

<p>This is very similar to <a href="#contrast-stretch" >-contrast-stretch</a>,
and uses a 'histogram bin' to determine the range of color values that needs to
be stretched.  However it then stretchs those colors using the <a
href="#level" >-level</a> operator.</p>

<p>As such while the initial determination may have 'binning' round off
effects, the image colors are stretched mathematically, rather than using the
histogram bins.  This makes the operator more accurate. </p>

<p>note however that a <a href="#linear-stretch" >-linear-stretch</a> of
'<kbd>0</kbd>' does nothing, while a value of '<kbd>1</kbd>' does a near
perfect stretch of the color range. </p>

<p>See also <a href="#auto-level" >-auto-level</a> for a 'perfect'
normalization of mathematical images. </p>

<p>This operator is under review for re-development. </p>


<div style="margin: auto;">
  <h4><a id="linewidth"></a>-linewidth</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the line width for subsequent draw operations.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="liquid-rescale"></a>-liquid-rescale <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>rescale image with seam-carving.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="list"></a>-list <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Print a list of supported arguments for various options or settings.  Choose from these list types:</td><td style='text-align:right;'></td></tr></table>

<pre class="text">
  Align
  Alpha
  Boolean
  Channel
  Class
  ClipPath
  Coder
  Color
  Colorspace
  Command
  Compose
  Compress
  Configure
  DataType
  Debug
  Decoration
  Delegate
  Direction
  Dispose
  Distort
  Dither
  Endian
  Evaluate
  FillRule
  Filter
  Font
  Format
  Function
  Gravity
  ImageList
  Intent
  Interlace
  Interpolate
  Kernel
  Layers
  LineCap
  LineJoin
  List
  Locale
  LogEvent
  Log
  Magic
  Method
  Metric
  Mime
  Mode
  Morphology
  Module
  Noise
  Orientation
  Policy
  PolicyDomain
  PolicyRights
  Preview
  Primitive
  QuantumFormat
  Resource
  SparseColor
  Storage
  Stretch
  Style
  Threshold
  Type
  Units
  Validate
  VirtualPixel
</pre>

<p>These lists vary depending on your version of ImageMagick. Use "<kbd>-list
list</kbd>" to get a complete listing of all the "<kbd>-list</kbd>" arguments
available:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -list list</span></p>
<div style="margin: auto;">
  <h4><a id="log"></a>-log <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify format for debug log.</td><td style='text-align:right;'></td></tr></table>

<p>This option specifies the format for the log printed when the <a
href="#debug">-debug</a> option is active.</p>

<p>You can display the following components by embedding special format
characters:</p>

<pre class="text">
   %d   domain
   %e   event
   %f   function
   %l   line
   %m   module
   %p   process ID
   %r   real CPU time
   %t   wall clock time
   %u   user CPU time
   %%   percent sign
   \n   newline
   \r   carriage return
</pre>

<p>For example:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -debug coders -log "%u %m:%l %e" in.gif out.png</span></p>
<p>The default behavior is to print all of the components.</p>

<div style="margin: auto;">
  <h4><a id="loop"></a>-loop <em class="arg">iterations</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>add Netscape loop extension to your GIF animation.</td><td style='text-align:right;'></td></tr></table>

<p>Set iterations to zero to repeat the animation an infinite number of times,
otherwise the animation repeats itself up to <em class="arg">iterations</em>
times.</p>

<div style="margin: auto;">
  <h4><a id="lowlight-color"></a>-lowlight-color <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>when comparing images, de-emphasize pixel differences with this color.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="magnify"></a>-magnify <em class="arg">factor</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>magnify the image.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="map"></a>-map <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Display image using this <em class="arg">type</em>.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p>Choose from these <em class="arg">Standard Colormap</em> types:</p>

<pre class="text">
  best
  default
  gray
  red
  green
  blue
</pre>

<p>The <em class="arg">X server</em> must support the <em class="arg">Standard
Colormap</em> you choose, otherwise an error occurs.  Use <kbd>list</kbd> as
the type and <kbd>display</kbd> searches the list of colormap types in
<kbd>top-to-bottom</kbd> order until one is located. See <em
class="arg">xstdcmap(1)</em> for one way of creating Standard Colormaps.</p>


<div style="margin: auto;">
  <h4><a id="map_stream_"></a>-map <em class="arg">components</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>pixel map.</td><td style='text-align:right;'>[<a href="../www/stream.html">stream</a>]</td></tr></table>

<p>Here are the valid components of a map:</p>

<pre class="text">
  r        red pixel component
  g        green pixel component
  b        blue pixel component
  a        alpha pixel component (0 is transparent)
  o        opacity pixel component (0 is opaque)
  i        grayscale intensity pixel component
  c        cyan pixel component
  m        magenta pixel component
  y        yellow pixel component
  k        black pixel component
  p        pad component (always 0)
</pre>

<p>You can specify as many of these components as needed in any order (e.g.
bgr).  The components can repeat as well (e.g. rgbr).</p>


<div style="margin: auto;">
  <h4><a id="mask"></a>-mask
<em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Composite the image pixels as defined by the mask.</td><td style='text-align:right;'></td></tr></table>

<p>Use <a href="#mask">+mask</a> to remove the image mask.</p>

<div style="margin: auto;">
  <h4><a id="mattecolor"></a>-mattecolor <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify the color to be used with the <a href="#frame">-frame</a> option.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>The default matte color is <kbd>#BDBDBD</kbd>, <span
style="background-color: #bdbdbd;">this shade of gray</span>.</p>

<div style="margin: auto;">
  <h4><a id="maximum"></a>-maximum</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>return the maximum intensity of an image sequence.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="median"></a>-median <em class="arg">radius</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>apply a median filter to the image.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="metric"></a>-metric <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Output to STDERR a measure of the differences between images according to the <em class="arg">type</em> given metric.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from:</p>

<pre class="text">
 AE      absolute error count, number of different pixels (-fuzz effected)
 FUZZ    mean color distance
 MAE     mean absolute error (normalized), average channel error distance
 MEPP    mean error per pixel (normalized mean error, normalized peak error)
 MSE     mean error squared, average of the channel error squared
 NCC     normalized cross correlation
 PAE     peak absolute (normalize peak absolute)
 PSNR    peak signal to noise ratio
 RMSE    root mean squared (normalized root mean squared)
</pre>

<p>Control the '<kbd>AE</kbd>', or absolute count of pixels that are different,
with the <a href="#fuzz" >-fuzz</a> factor (ignore pixels which
only changed by a small amount).  Use '<kbd>PAE</kbd>' to find the
size of the <a href="#fuzz" >-fuzz</a> factor needed to make all pixels
'similar', while '<kbd>MAE</kbd>' dtermines the factor needed
for about half the pixels to be similar. </p>

<p>The '<kbd>MEPP</kbd>' metric returns three different metrics
('<kbd>MAE</kbd>', '<kbd>MAE</kbd>' normalized, and '<kbd>PAE</kbd>'
normalized) from a single comparison run. </p>

<p>To print a complete list of metrics, use the <a href="#list">-list
metrics</a> option.</p>


<div style="margin: auto;">
  <h4><a id="minimum"></a>-minimum</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>return the minimum intensity of an image sequence.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="mode"></a>-mode <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>make each pixel the 'predominate color' of the neighborhood.</td><td style='text-align:right;'>[<a href="../www/convert.html">convert</a>, <a href="../www/mogrify.html">mogrify</a>]</td></tr></table>

<div style="margin: auto;">
  <h4>-mode <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Mode of operation.</td><td style='text-align:right;'>[<a href="../www/montage.html">montage</a>]</td></tr></table>

<p>Choose the <em class="arg">value</em> from these styles: <kbd>Frame,
Unframe, or Concatenate</kbd></p>

<p>Use the <a href="#list" >-list</a> option with a '<kbd>Mode</kbd>' argument
for a list of <a href="#mode" >-mode</a> arguments available in your
ImageMagick installation.</p>


<div style="margin: auto;">
  <h4><a id="modulate"></a>-modulate <em class="arg">brightness</em>[,<em class="arg">saturation</em>,<em class="arg">hue</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Vary the <em class="arg">brightness</em>, <em
class="arg">saturation</em>, and <em class="arg">hue</em> of an image.</td><td style='text-align:right;'></td></tr></table>

<p>The arguments are given as a percentages of variation. A value of 100 means
no change, and any missing values are taken to mean 100.</p>

<p>The <em class="arg">brightness</em> is a multiplier of the overall
brightness of the image, so 0 means pure black, 50 is half as bright, 200 is
twice as bright. To invert its meaning <a href="#negate">-negate</a> the image
before and after. </p>

<p>The <em class="arg">saturation</em> controls the amount of color in an
image. For example, 0 produce a grayscale image, while a large value such as
200 produce a very colorful, 'cartoonish' color.</p>

<p>The <em class="arg">hue</em> argument causes a "rotation" of the colors
within the image by the amount specified. For example, 50 results in
a counter-clockwise rotation of 90, mapping red shades to purple, and so on.
A value of either 0 or 200 results in a complete 180 degree rotation of the
image. Using a value of 300 is a 360 degree rotation resulting in no change to
the original image. </p>

<p>For example, to increase the color brightness by 20% and decrease the color
saturation by 10% and leave the hue unchanged, use <a
href="#modulate">-modulate 120,90</a>.</p>

<p>Use <a href="#set">-set</a> attribute of '<kbd
class="arg">option:modulate:colorspace</kbd>' to specify which colorspace to
modulate.  Choose from <kbd>HSB</kbd>, <kbd>HSL</kbd> (the default), or
<kbd>HWB</kbd>.  For example,</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png</span></p>

<div style="margin: auto;">
  <h4><a id="monitor"></a>-monitor</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>monitor progress.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="monochrome"></a>-monochrome</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>transform the image to black and white.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="morph"></a>-morph <em class="arg">frames</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>morphs an image sequence.</td><td style='text-align:right;'></td></tr></table>

<p>Both the image pixels and size are linearly interpolated to give the
appearance of a meta-morphosis from one image to the next, over all the images
in the current image list. The added images are the equivalent of a <a
href="#blend">-blend</a> composition. The <em class="arg">frames</em>
argument determine how many images to interpolate between each image. </p>


<div style="margin: auto;">
  <h4><a id="morphology"></a>-morphology</h4>
  <h4>-morphology <em class="arg">method</em>  <em class="arg">kernel</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>apply a morphology method to the image.</td><td style='text-align:right;'></td></tr></table>

<p>Until I get around to writing a option summary for this, see <a
href="http://www.imagemagick.org/Usage/morphology/" >IM Usage Examples,
Morphology</a>. </p>


<div style="margin: auto;">
  <h4><a id="mosaic"></a>-mosaic</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>an simple alias for the <a href="#layers" >-layers</a> method "mosaic"</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="motion-blur"></a>-motion-blur <em class="arg">radius</em><br />-motion-blur <em class="arg">radius</em>x<em class="arg">sigma</em>+<em class="arg">angle</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate motion blur.</td><td style='text-align:right;'></td></tr></table>

<p>Blur with the given radius, standard deviation (sigma), and angle.   The
angle given is the angle toward which the image is blurred.  That is the
direction people would consider the object is coming from. </p>

<p>Note that the blur is not uniform distribution, giving the motion a
definite sense of direction of movement. </p>

<p>The <a href="#virtual-pixel">-virtual-pixel</a> setting will determine how
pixels which are outside the image proper are blurred into the final result.
</p>

<div style="margin: auto;">
  <h4><a id="name"></a>-name</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>name an image.</td><td style='text-align:right;'></td></tr></table>
<div style="margin: auto;">
  <h4><a id="negate"></a>-negate</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>replace each pixel with its complementary color.</td><td style='text-align:right;'></td></tr></table>

<p>The red, green, and blue intensities of an image are negated. White becomes black, yellow becomes blue, etc.  Use <a href="#negate">+negate</a> to only negate the grayscale pixels of the image.</p>

<div style="margin: auto;">
  <h4><a id="noise"></a>-noise <em class="arg">radius</em><br/>
  +noise <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Add or reduce noise in an image.</td><td style='text-align:right;'></td></tr></table>

<p>The principal function of noise peak elimination filter is to smooth the objects within an image without losing edge information and without creating undesired structures.  The central idea of the algorithm is to replace a pixel with its next neighbor in value within a pixel window, if this pixel has been found to be noise. A pixel is defined as noise if and only if this pixel is a maximum or minimum within the pixel window.</p>

<p>Use <kbd><a href="#noise">-noise</a> <em class="arg">radius</em></kbd> to specify the width of the neighborhood when reducing noise.</p>

<p>Use <a href="#noise">+noise</a> followed by a noise <em class="arg">type</em> to add noise to an image. Choose from these noise types:</p>

<pre class="text">
Gaussian
Impulse
Laplacian
Multiplicative
Poisson
Random
Uniform
</pre>

<p>To print a complete list of noises, use the <a href="#list">-list noise</a> option.</p>

<p>Also see the <a href="#evaluate">-evaluate</a> noise functions that allos
the use of a controlling value to specify teh amount of noise that should be
added to an image. </p>


<div style="margin: auto;">
  <h4><a id="normalize"></a>-normalize</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Increase the contrast in an image by <em>stretching</em> the range of intensity values.</td><td style='text-align:right;'></td></tr></table>

<p>The intensity values are stretched to cover the entire range of possible
values. While doing so, black-out at most <em>2%</em> of the pixels and
white-out at most <em>1%</em> of the pixels.</p>

<p>Note that as of ImageMagick 6.4.7-0, <a href="#normalize" >-normalize</a>
is equivalent to <a href="#contrast-stretch" >-contrast-stretch 2%x1%</a>.
(Before this version, it was equivalent to <a href="#contrast-stretch"
>-contrast-stretch 2%x99%</a>).</p>

<p>All the channels are normalized in concert by the came amount so as to
preserve color integrity, when the default <a href="#channel" >+channel</a>
setting is in use.  Specifying any other <a href="#channel" >-channel</a>
setting will normalize the RGB channels independently.</p>

<p>See  <a href="#contrast-stretch" >-contrast-stretch</a> for more details.
Also see <a href="#auto-level" >-auto-level</a> for a 'perfect' normalization
that is better suited to mathematically generated images. </p>

<p>This operator is under review for re-development. </p>


<div style="margin: auto;">
  <h4><a id="ordered-dither"></a>-ordered-dither <em class="arg">threshold_map</em>{,<em class="arg">level</em>...}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>dither the image using a pre-defined  ordered dither <em
class="arg">threshold map</em> specified, and a uniform color map with the
given number of <em class="arg">levels</em> per color channel .  </td><td style='text-align:right;'></td></tr></table>

<p>You can choose from these standard threshold maps:</p>

<pre class="text">
threshold        1x1          Threshold 1x1 (non-dither)
checks           2x1          Checkerboard 2x1 (dither)
o2x2             2x2          Ordered 2x2 (dispersed)
o3x3             3x3          Ordered 3x3 (dispersed)
o4x4             4x4          Ordered 4x4 (dispersed)
o8x8             8x8          Ordered 8x8 (dispersed)
h4x4a            4x1          Halftone 4x4 (angled)
h6x6a            6x1          Halftone 6x6 (angled)
h8x8a            8x1          Halftone 8x8 (angled)
h4x4o                         Halftone 4x4 (orthogonal)
h6x6o                         Halftone 6x6 (orthogonal)
h8x8o                         Halftone 8x8 (orthogonal)
h16x16o                       Halftone 16x16 (orthogonal)
c5x5b            c5x5         Circles 5x5 (black)
c5x5w                         Circles 5x5 (white)
c6x6b            c6x6         Circles 6x6 (black)
c6x6w                         Circles 6x6 (white)
c7x7b            c7x7         Circles 7x7 (black)
c7x7w                         Circles 7x7 (white)
</pre>

<p> The <kbd>checks</kbd> pattern produces a 3 level checkerbord dither
pattern.  Or you can define your own <em class="arg" >threshold map</em> in a
personal or system <kbd>thresholds.xml</kbd> XML file. </p>

<p>To print a complete list of threshold, use the <a href="#list" >-list
threshold</a> option.</p>

<p>It is recommended that the <a href="#map" >+map</a> operator be used after
applying <a href="#ordered-dither" >-ordered-dither</a> to reduce the number of
colors an animated image sequence, to less that 256 colors. This ensures that
a common or global color table is used when saving the result to a color
limited file format such as GIF.  </p>

<p>Note that at this time the exact same threshold dithering map is used for
all color channels, no attempt is made to offset or rotate the map for
different channels is made, to create an offset printing effect. (possible
future expansion) </p>


<div style="margin: auto;">
  <h4><a id="opaque"></a>-opaque <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>change this color to the fill color within the image.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">color</em> argument is defined using the format
described under the <a href="#fill" >-fill</a> option.  The <a href="#fuzz"
>-fuzz</a> setting can be used to match and replace colors similar to the one
given.</p>

<p>Use <a href="#opaque">+opaque</a> to paint any pixel that does not match
the target color. </p>

<p>The <a href="#transparent">-transparent</a>  operator is exactly the same
as <a href="#opaque" >-opaque</a> but replaces the matching color with
transparency rather than the current <a href="#fill">-fill</a> color setting.
To ensure that it can do this it also ensures that the image has an alpha
channel enabled, as per "<kbd><a href="#alpha" >-alpha</a> set</kbd>", for
the new transparent colors, and does not require you to modify the <a
href="#channel">-channel</a> to enable alpha channel handling. </p>


<div style="margin: auto;">
  <h4><a id="orient"></a>-orient <em class="arg">image orientation</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>specify orientation of a digital camera image.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from these orientations:</p>

<pre class="text">
  bottom-left
  bottom-right
  left-bottom
  left-top
  right-bottom
  right-top
  top-left
  top-right
  undefined
</pre>

<p>To print a complete list of orientations, use the <a href="#list" >-list
orientation</a> option.</p>


<div style="margin: auto;">
  <h4><a id="page"></a>-page <em class="arg">geometry</em><br/>
  -page <em class="arg">media</em>[<em class="arg">offset</em>][{<em class="arg">^!&lt;&gt;</em>}]<br/>
  +page
  </h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the size and location of an image on the larger virtual canvas.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<p>For convenience you can specify the page size using <em class="arg">media</em> (see below). Offsets can then be added as with other <em class="arg">geometry</em> arguments (e.g. <a href="#page">-page</a>&nbsp;<kbd>Letter+43+43</kbd>).</p>

<p>Use <em class="arg">media</em> as shorthand to specify the dimensions (<em class="arg">width</em>x<em class="arg">height</em>) of the <em class="arg">PostScript</em> page in dots per inch or a TEXT page in pixels. The choices for a PostScript page are:</p>
<table id="geometryTable" cellpadding="2" cellspacing="0" border="1" width="50%" style="margin-left: auto; margin-right: auto;">
<thead>
        <tr valign="top">
    <th align="center"><em class="arg">media</em></th>
    <th align="center"><em class="arg">width</em></th>
    <th align="center"><em class="arg">height</em></th>
        </tr>
</thead>
<tbody>
<tr><td align="left"> 11x17      </td> <td align="right">  792</td> <td align="right"> 1224</td> </tr>
<tr><td align="left"> Ledger     </td> <td align="right"> 1224</td> <td align="right">  792</td> </tr>
<tr><td align="left"> Legal      </td> <td align="right">  612</td> <td align="right"> 1008</td> </tr>
<tr><td align="left"> Letter     </td> <td align="right">  612</td> <td align="right">  792</td> </tr>
<tr><td align="left"> LetterSmall</td> <td align="right">  612</td> <td align="right">  792</td> </tr>
<tr><td align="left"> ArchE      </td> <td align="right"> 2592</td> <td align="right"> 3456</td> </tr>
<tr><td align="left"> ArchD      </td> <td align="right"> 1728</td> <td align="right"> 2592</td> </tr>
<tr><td align="left"> ArchC      </td> <td align="right"> 1296</td> <td align="right"> 1728</td> </tr>
<tr><td align="left"> ArchB      </td> <td align="right">  864</td> <td align="right"> 1296</td> </tr>
<tr><td align="left"> ArchA      </td> <td align="right">  648</td> <td align="right">  864</td> </tr>
<tr><td align="left"> A0         </td> <td align="right"> 2380</td> <td align="right"> 3368</td> </tr>
<tr><td align="left"> A1         </td> <td align="right"> 1684</td> <td align="right"> 2380</td> </tr>
<tr><td align="left"> A2         </td> <td align="right"> 1190</td> <td align="right"> 1684</td> </tr>
<tr><td align="left"> A3         </td> <td align="right">  842</td> <td align="right"> 1190</td> </tr>
<tr><td align="left"> A4         </td> <td align="right">  595</td> <td align="right">  842</td> </tr>
<tr><td align="left"> A4Small    </td> <td align="right">  595</td> <td align="right">  842</td> </tr>
<tr><td align="left"> A5         </td> <td align="right">  421</td> <td align="right">  595</td> </tr>
<tr><td align="left"> A6         </td> <td align="right">  297</td> <td align="right">  421</td> </tr>
<tr><td align="left"> A7         </td> <td align="right">  210</td> <td align="right">  297</td> </tr>
<tr><td align="left"> A8         </td> <td align="right">  148</td> <td align="right">  210</td> </tr>
<tr><td align="left"> A9         </td> <td align="right">  105</td> <td align="right">  148</td> </tr>
<tr><td align="left"> A10        </td> <td align="right">   74</td> <td align="right">  105</td> </tr>
<tr><td align="left"> B0         </td> <td align="right"> 2836</td> <td align="right"> 4008</td> </tr>
<tr><td align="left"> B1         </td> <td align="right"> 2004</td> <td align="right"> 2836</td> </tr>
<tr><td align="left"> B2         </td> <td align="right"> 1418</td> <td align="right"> 2004</td> </tr>
<tr><td align="left"> B3         </td> <td align="right"> 1002</td> <td align="right"> 1418</td> </tr>
<tr><td align="left"> B4         </td> <td align="right">  709</td> <td align="right"> 1002</td> </tr>
<tr><td align="left"> B5         </td> <td align="right">  501</td> <td align="right">  709</td> </tr>
<tr><td align="left"> C0         </td> <td align="right"> 2600</td> <td align="right"> 3677</td> </tr>
<tr><td align="left"> C1         </td> <td align="right"> 1837</td> <td align="right"> 2600</td> </tr>
<tr><td align="left"> C2         </td> <td align="right"> 1298</td> <td align="right"> 1837</td> </tr>
<tr><td align="left"> C3         </td> <td align="right">  918</td> <td align="right"> 1298</td> </tr>
<tr><td align="left"> C4         </td> <td align="right">  649</td> <td align="right">  918</td> </tr>
<tr><td align="left"> C5         </td> <td align="right">  459</td> <td align="right">  649</td> </tr>
<tr><td align="left"> C6         </td> <td align="right">  323</td> <td align="right">  459</td> </tr>
<tr><td align="left"> Flsa       </td> <td align="right">  612</td> <td align="right">  936</td> </tr>
<tr><td align="left"> Flse       </td> <td align="right">  612</td> <td align="right">  936</td> </tr>
<tr><td align="left"> HalfLetter </td> <td align="right">  396</td> <td align="right">  612</td> </tr>
</tbody>
</table>




<p>This option is also used to place subimages when writing to a multi-image format that supports offsets, such as GIF89 and MNG. When used for this purpose the offsets are always measured from the top left corner of the canvas and are not affected by the <a href="#gravity">-gravity</a> option. To position a GIF or MNG image, use <a href="#page">-page</a><em class="arg">{+-}x{+-}y</em> (e.g.  -page +100+200). When writing to a MNG file, a <a href="#page">-page</a> option appearing ahead of the first image in the sequence with nonzero width and height defines the width and height values that are written in the <kbd>MHDR</kbd> chunk.  Otherwise, the MNG width and height are computed from the bounding box that contains all images in the sequence. When writing a GIF89 file, only the bounding box method is used to determine its dimensions.</p>

<p>For a PostScript page, the image is sized as in <a href="#geometry">-geometry</a> but positioned relative to the <em>lower left-hand corner</em> of the page by {+-}<kbd>x</kbd><em class="arg">offset</em>{+-}<kbd>y</kbd> <em class="arg">offset</em>. Use <a href="#page">-page 612x792</a>, for example, to center the image within the page. If the image size exceeds the PostScript page, it is reduced to fit the page. The default gravity for the <a href="#page">-page</a> option is <em class="arg">NorthWest</em>, i.e., positive <kbd>x</kbd> and <kbd>y</kbd> <em class="arg">offset</em> are measured rightward and downward from the top left corner of the page, unless the <a href="#gravity">-gravity</a> option is present with a value other than <em class="arg">NorthWest</em>.</p>

<p>The default page dimensions for a TEXT image is 612x792.</p>

<p>This option is used in concert with <a href="#density">-density</a>.</p>

<p>Use <a href="#page">+page</a> to remove the page settings for an image.</p>

<div style="margin: auto;">
  <h4><a id="paint"></a>-paint <em class="arg">radius</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate an oil painting.</td><td style='text-align:right;'></td></tr></table>

<p>Each pixel is replaced by the most frequent color in a circular neighborhood whose width is specified with <em class="arg">radius</em>.</p>

<div style="margin: auto;">
  <h4><a id="path"></a>-path <em class="arg">path</em></h4></div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>write images to this path on disk.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="pause_animate_"></a>-pause <em class="arg">seconds</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Pause between animation loops.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>]</td></tr></table>

<p>Pause for the specified number of seconds before repeating the animation.</p>

<div style="margin: auto;">
  <h4><a id="pause_import_"></a>-pause <em class="arg">seconds</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Pause between snapshots.</td><td style='text-align:right;'>[<a href="../www/import.html">import</a>]</td></tr></table>

<p>Pause for the specified number of seconds before taking the next snapshot.</p>

<div style="margin: auto;">
  <h4><a id="ping"></a>-ping</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>efficiently determine image characteristics.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="pointsize"></a>-pointsize <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>pointsize of the PostScript, OPTION1, or TrueType font.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="polaroid"></a>-polaroid <em class="arg">angle</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate a Polaroid picture.</td><td style='text-align:right;'></td></tr></table>

<p>Use <kbd>+polaroid</kbd> to rotate the image at a random angle between -15 and +15 degrees.</p>

<div style="margin: auto;">
  <h4><a id="posterize"></a>-posterize <em class="arg">levels</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>reduce the image to a limited number of color levels.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="precision"></a>-precision <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set the maximum number of significant digits to be printed.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="preview"></a>-preview <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>image preview type.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to affect the preview operation of an image (e.g. <kbd>convert file.png -preview Gamma Preview:gamma.png</kbd>). Choose from these previews:</p>

<pre class="text">
  Rotate
  Shear
  Roll
  Hue
  Saturation
  Brightness
  Gamma
  Spiff
  Dull
  Grayscale
  Quantize
  Despeckle
  ReduceNoise
  Add Noise
  Sharpen
  Blur
  Threshold
  EdgeDetect
  Spread
  Shade
  Raise
  Segment
  Solarize
  Swirl
  Implode
  Wave
  OilPaint
  CharcoalDrawing
  JPEG
</pre>

<p>To print a complete list of previews, use the <a href="#list">-list preview</a> option.</p>

<p>The default preview is <kbd>JPEG</kbd>.</p>

<div style="margin: auto;">
  <h4><a id="print"></a>-print <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>interpret string and print to console.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="process"></a>-process <em class="arg">command</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>process the image with a custom image filter.</td><td style='text-align:right;'></td></tr></table>

<p>The command arguments has the form <kbd>"module arg1 arg2 arg3 ... argN"</kbd> where <kbd>module</kbd> is the name of the module to invoke (e.g.  "Analyze") and arg1 arg2 arg3 ... argN are an arbitrary number of arguments to pass to the process module.</p>

<div style="margin: auto;">
  <h4><a id="profile"></a>-profile <em class="arg">filename</em><br/>
  +profile <em class="arg">profile_name</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Manage ICM, IPTC, or generic profiles in an image.</td><td style='text-align:right;'></td></tr></table>

<p>Using <a href="#profile">-profile</a> <em class="arg">filename</em> adds an ICM (ICC color management), IPTC (newswire information), or a generic profile to the image.</p>

<p>Use <a href="#profile">+profile <em class="arg">profile_name</em></a> to remove the indicated profile. ImageMagick uses standard filename globbing, so wildcard expressions may be used to remove more than one profile.  Here we remove all profiles from the image except for the XMP profile:  <kbd>+profile "!xmp,*"</kbd>. </p>

<p>Use <kbd>identify -verbose</kbd> to find out which profiles are in the image file. Use <a href="#strip">-strip</a> to remove all profiles (and comments).</p>

<p>To extract a profile, the <a href="#profile">-profile</a> option is not used. Instead, simply write the file to an image format such as <em class="arg">APP1, 8BImageMagick, ICM,</em> or <em class="arg">IPTC</em>.</p>

<p>For example, to extract the Exif data (which is stored in JPEG files in the <em class="arg">APP1</em> profile), use.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert cockatoo.jpg profile.exif</span></p>
<p>It is important to note that results may depend on whether or not the original image already has an included profile. Also, keep in mind that <a href="#profile">-profile</a> is an "operator" (as opposed to a "setting") and therefore a conversion is made each time it is encountered, in order, in the command-line. For instance, in the following example, if the original image is CMYK with profile, a CMYK-CMYK-RGB conversion results.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff</span></p>
<p>Furthermore, since ICC profiles are not necessarily symmetric, extra conversion steps can yield unwanted results.
CMYK profiles are often very asymmetric since they involve 3&minus;&gt;4 and 4&minus;&gt;3 channel mapping.
</p>

<p>The <a href="#profile">-profile</a> option can also be used to inject
previously-formatted ancillary chunks into the output PNG file, using
the commandline option as shown below or by setting the profile via a
programming interface:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>-profile PNG-chunk-x:&lt;filename&gt;</span></p>
<p>where <em>x</em> is a location flag and
<em class="arg">filename</em> is a file containing the chunk
name in the first 4 bytes, then a colon (":"), followed by the chunk data.
This encoder will compute the chunk length and CRC, so those must not
be included in the file.</p>

<p>"x" can be "b" (before PLTE), "m" (middle, i.e., between PLTE and IDAT),
or "e" (end, i.e., after IDAT).  If you want to write multiple chunks
of the same type, then add a short unique string after the "x" to prevent
subsequent profiles from overwriting the preceding ones, e.g.,</p>


<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>-profile PNG-chunk-b01:file01 -profile PNG-chunk-b02:file02</span></p>
<div style="margin: auto;">
  <h4><a id="quality"></a>-quality <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>JPEG/MIFF/PNG compression level.</td><td style='text-align:right;'></td></tr></table>

<p>For the JPEG and MPEG image formats, quality is 1 (lowest image quality and highest compression) to 100 (best quality but least effective compression). The default is to use the estimate quality of your input image otherwise 92. Use the <a href="#sampling-factor">-sampling-factor</a> option to specify the factors for chroma downsampling.</p>

<p>For the MIFF image format, quality/10 is the zlib compression level, which is 0 (worst but fastest compression) to 9 (best but slowest). It has no effect on the image appearance, since the compression is always lossless.</p>

<p>For the JPEG-2000 image format, quality is mapped using a non-linear equation to the compression ratio required by the Jasper library. This non-linear equation is intended to loosely approximate the quality provided by the JPEG v1 format. The default quality value 100, a request for non-lossy compression.  A quality of 75 results in a request for 16:1 compression.</p>

<p>For the MNG and PNG image formats, the quality value sets the zlib compression level (quality / 10) and filter-type (quality % 10). For compression level 0, the Huffman-only strategy is used, which is fastest but not necessarily the worst compression.  The default PNG compression is 75.</p>

<p>If filter-type is 4 or less, the specified filter-type is used for all scanlines:</p>

<pre class="text">
  0: none
  1: sub
  2: up
  3: average
  4: Paeth
</pre>

<p>If filter-type is 5, adaptive filtering is used when quality is greater than 50 and the image does not have a color map, otherwise no filtering is used.</p>

<p>If filter-type is 6, adaptive filtering with <em class="arg">minimum-sum-of-absolute-values</em> is used.</p>

<p>Only if the output is MNG, if filter-type is 7, the LOCO color transformation and adaptive filtering with <em class="arg">minimum-sum-of-absolute-values</em> are used.</p>

<p>The quality setting has no effect on the appearance of PNG and MNG images, since the compression is always lossless.</p>

<p>For further information, see the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>

<div style="margin: auto;">
  <h4><a id="quantize"></a>-quantize <em class="arg">colorspace</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>reduce colors using this colorspace.</td><td style='text-align:right;'></td></tr></table>

<p>This setting defines the colorspace used to sort out and reduce the number
of colors needed by an image (for later dithering) by operators such as <a
href="#colors" >-colors</a>, Note that color reducion also happens
automatically when saving images to color-limited image file formats, such as
GIF, and PNG8.</p>


<div style="margin: auto;">
  <h4><a id="quiet"></a>-quiet</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>suppress all warning messages. Error messages are still reported.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="radial-blur"></a>-radial-blur  <em class="arg">angle</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Blur around the center of the image.</td><td style='text-align:right;'></td></tr></table>

<p>Note that this is actually a rotational blur rather than a radial and as
such actually mis-named. </p>

<p>The <a href="#virtual-pixel">-virtual-pixel</a> setting will determine how
pixels which are outside the image proper are blurred into the final result.
</p>


<div style="margin: auto;">
  <h4><a id="raise"></a>-raise <em class="arg">thickness</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Lighten or darken image edges.</td><td style='text-align:right;'></td></tr></table>

<p>This will create a 3-D effect. Use <a href="#raise">-raise</a> to create a raised effect, otherwise use <a href="#raise">+raise</a>.
</p>

<p>Unlike the similar <a href="#frame">-frame</a> option, <a href="#raise">-raise</a> does not alter the dimensions of the image.</p>

<div style="margin: auto;">
  <h4><a id="random-threshold"></a>-random-threshold <em class="arg">low</em>x<em class="arg">high</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply a random threshold to the image.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="red-primary"></a>-red-primary <em class="arg">x,y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the red chromaticity primary point.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="regard-warnings"></a>-regard-warnings</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Pay attention to warning messages.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="remap"></a>-remap <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Reduce the number of colors in an image to the colors used by this image.</td><td style='text-align:right;'></td></tr></table>

<p>If the <a href="#dither">-dither</a> setting is enabled (the default) then
the given colors are dithered over the image as necessary, otherwise the closest
color (in RGB colorspace) is selected to replace that pixel in the image. </p>

<p>As a side effect of applying a <a href="#remap">-remap</a> of colors across all
images in the current image sequence, all the images will have the same color
table.  That means that when saved to a file format such as GIF, it will use
that color table as a single common or global color table, for all the images,
without requiring extra local color tables. </p>

<p>Use <a href="#remap">+remap</a> to reduce all images in the current image
sequence to use a common color map over all the images. This equivalent to
appending all the images together (without extra background colors) and color
reducing those images using <a href="#colors">-colors</a> with a 256 color
limit, then <a href="#remap">-remap</a> those colors over the original list of
images. This ensures all the images follow a single color map. </p>

<p>If the number of colors over all the images is less than 256, then <a
href="#remap">+remap</a> should not perform any color reduction or dithering, as
no color changes are needed. In that case, its only effect is to force the use
of a global color table.  This recommended after using either <a
href="#colors">-colors</a> or <a href="#ordered-dither">-ordered-dither</a> to
reduce the number of colors in an animated image sequence. </p>

<div style="margin: auto;">
  <h4><a id="region"></a>-region <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set a region in which subsequent operations apply.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">x</em> and <em class="arg">y</em> offsets are treated in the same manner as in <a href="#crop">-crop</a>.</p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="remote"></a>-remote</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>perform a remote operation.</td><td style='text-align:right;'></td></tr></table>

<p>The only command recognized is the name of an image file to load.</p>

<p>If you have more than one <a href="../www/display.html">display</a> application running simultaneously, use the <a href="#window"> window</a> option to specify which application to control.</p>

<div style="margin: auto;">
  <h4><a id="render"></a>-render</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>render vector operations.</td><td style='text-align:right;'></td></tr></table>

<p>Use <a href="#render">+render</a> to turn off rendering vector operations. This useful when saving the result to vector formats such as MVG or SVG.</p>

<div style="margin: auto;">
<h4><a id="repage"></a>-repage <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Adjust the canvas and offset information of the image.</td><td style='text-align:right;'></td></tr></table>

<p>This option is like <a href="#page">-page</a> but acts as an image operator
rather than a setting.  You can separately set the canvas size or the offset
of the image on that canvas by only providing those components. </p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<p>If a <kbd>!</kbd> flag is given the offset given is added to the existing
offset to move the image relative to its previous position. This useful for
animation sequences. </p>

<p>A given a canvas size of zero such as '<kbd>0x0</kbd>' forces it to
recalculate the canvas size so the image (at its current offset) will appear
completely on that canvas (unless it has a negative offset).</p>

<p>Use <a href="#repage">+repage</a> to completely remove/reset the virtual
canvas meta-data from the images. </p>

<p>The <a href="#set">-set</a> '<kbd>page</kbd>' option can be used to
directly assign virtual canvas meta-data. </p>


<div style="margin: auto;">
  <h4><a id="resample"></a>-resample <em class="arg">horizontal</em>x<em class="arg">vertical</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Resample image to specified horizontal and vertical resolution.</td><td style='text-align:right;'></td></tr></table>

<p>Resize the image so that its rendered size remains the same as the original at the specified target resolution. For example, if a 300 DPI image renders at 3 inches by 2 inches on a 300 DPI device, when the image has been resampled to 72 DPI, it will render at 3 inches by 2 inches on a 72 DPI device.  Note that only a small number of image formats (e.g. JPEG, PNG, and TIFF) are capable of storing the image resolution. For formats which do not support an image resolution, the original resolution of the image must be specified via <a href="#density">-density</a> on the command line prior to specifying the resample resolution.</p>

<p>Note that Photoshop stores and obtains image resolution from a proprietary embedded profile. If this profile exists in the image, then Photoshop will continue to treat the image using its former resolution, ignoring the image resolution specified in the standard file header.</p>

<div style="margin: auto;">
  <h4><a id="resize"></a>-resize <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Resize an image.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets, if present in the geometry string, are ignored, and the <a href="#gravity">-gravity</a> option has no effect.</p>

<p>If the <a href="#filter">-filter</a> option precedes the <a href="#resize">-resize</a> option, the image is resized with the specified filter.</p>

<p>Many image processing algorithms assume your image is in a linear-light coding.  If your image is gamma-corrected, you can remove the nonlinear gamma correction, apply the transform, then restore it like this:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \ <br/> -quality 92 passport.jpg</span></p>
<div style="margin: auto;">
  <h4><a id="respect-parentheses"></a>-respect-parentheses</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>settings remain in effect until parenthesis boundary.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="reverse"></a>-reverse</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Reverse the order of images in the current image list.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="roll"></a>-roll {<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>roll an image vertically or horizontally by the amount given.</td><td style='text-align:right;'></td></tr></table>

<p>A negative <em class="arg">x</em> offset rolls the image left-to-right. A negative <em class="arg">y</em> offset rolls the image top-to-bottom.</p>


<div style="margin: auto;">
  <h4><a id="rotate"></a>-rotate <em class="arg">degrees</em>{<em class="arg">&lt;</em>}{<em class="arg">&gt;</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply Paeth image rotation (using shear operations) to the image.</td><td style='text-align:right;'></td></tr></table>

<p>Use <kbd>&gt;</kbd> to rotate the image only if its width exceeds the height. <kbd>&lt;</kbd> rotates the image <em>only</em> if its width is less than the height. For example, if you specify <kbd>-rotate "-90&gt;"</kbd> and the image size is 480x640, the image is not rotated. However, if the image is 640x480, it is rotated by -90 degrees. If you use <kbd>&gt;</kbd> or <kbd>&lt;</kbd>, enclose it in quotation marks to prevent it from being misinterpreted as a file redirection.</p>

<p>Empty triangles in the corners, left over from rotating the image, are
filled with the <kbd>background</kbd> color. </p>

<p>See also the <a href="#distort">-distort</a> operator and specifically the
'<kbd>ScaleRotateTranslate</kbd>' distort method. </p>


<div style="margin: auto;">
  <h4><a id="sample"></a>-sample <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>minify/magnify the image using pixel subsampling and pixel replication, respectively.</td><td style='text-align:right;'></td></tr></table>

<p>Change the image size simply by directly sampling the pixels original
image.  When magnifying, pixels are replicated in blocks.  When minifying,
pixels are sub-sampled (i.e., some rows and columns are skipped over). </p>

<p>The results are thus equivalent to using <a href="#resize">-resize</a> with
a <a href="#filter">-filter</a> setting of <kbd>point</kbd> (nearest
neighbour), though <a href="#sample">-sample</a> is a lot faster, as it
avoids all the filter processing of the image. As such it completely ignores
the current <a href="#filter">-filter</a> setting. </p>

<p>The key feature of the <a href="#sample">-sample</a> is that no new colors
will be added to the resulting image, though some colors may disappear. </p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets, if present in the geometry string, are
ignored, unlike <a href="#resize">-resize</a>. </p>


<div style="margin: auto;">
  <h4><a id="sampling-factor"></a>-sampling-factor <em class="arg">horizontal-factor</em>x<em class="arg">vertical-factor</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</td><td style='text-align:right;'></td></tr></table>

<p>This option specifies the sampling factors to be used by the JPEG encoder for chroma downsampling. If this option is omitted, the JPEG library will use its own default values. When reading or writing the YUV format and when writing the M2V (MPEG-2) format, use <a href="#sampling-factor">-sampling-factor 2x1</a> or <a href="#sampling-factor">-sampling-factor 4:2:2</a> to specify the 4:2:2 downsampling method.</p>

<div style="margin: auto;">
  <h4><a id="scale"></a>-scale <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>minify/magnify the image using pixel block averaging and pixel replication, respectively.</td><td style='text-align:right;'></td></tr></table>

<p>Change the image size simply by replacing pixels by averaging pixels
together when minifying, or replacing pixels when magnifing.  </p>

<p>The results are thus equivalent to using <a href="#resize">-resize</a> with
a <a href="#filter">-filter</a> setting of <kbd>box</kbd>.  Though it is a lot
faster, as it avoids all the filter processing of the image. As such it
completely ignores the current <a href="#filter">-filter</a> setting. </p>

<p>If when shrinking (minifying) images the original image is some integer
multiple of the new image size, the number of pixels avergaed together to
produce the new pixel color is the same across the whole image. This is
a special case known as 'binning' and is often used as a method of reducing
noise in image such as those generated by digital cameras, especially in low
light conditions. </p>


<div style="margin: auto;">
  <h4><a id="scene"></a>-scene <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set scene number.</td><td style='text-align:right;'></td></tr></table>

<p>This option sets the scene number of an image or the first image in an image sequence.</p>

<div style="margin: auto;">
  <h4><a id="screen"></a>-screen</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>specify the screen to capture.</td><td style='text-align:right;'></td></tr></table>

<p>This option indicates that the GetImage request used to obtain the image should be done on the root window, rather than directly on the specified window. In this way, you can obtain pieces of other windows that overlap the specified window, and more importantly, you can capture menus or other popups that are independent windows but appear over the specified window.</p>

<div style="margin: auto;">
  <h4><a id="seed"></a>-seed</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>seed a new sequence of pseudo-random numbers</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="segment"></a>-segment <em class="arg">cluster-threshold</em>x<em class="arg">smoothing-threshold</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>segment the colors of an image.</td><td style='text-align:right;'></td></tr></table>

<p>Segment an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy c-means technique. This is part of the ImageMagick color quantization routines. </p>

<p>Specify <em class="arg">cluster threshold</em> as the number of pixels in each cluster that must exceed the cluster threshold to be considered valid. <em class="arg">Smoothing threshold</em> eliminates noise in the second derivative of the histogram. As the value is increased, you can expect a smoother second derivative.  The default is 1.5.</p>

<p>If the <a href="#verbose">-verbose</a> setting is defined, a detailed report
of the color clusters is returned.</p>


<div style="margin: auto;">
  <h4><a id="selective-blur"></a>-selective-blur <em class="arg">geometry</em></h4>
</div>

<div style="margin: auto;">
  <h4>-selective-blur <em class="arg">radius</em><br />-unsharp <em class="arg">radius</em>x<em class="arg">sigma</em>{<em class="arg">+threshold</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Selectively blur pixels within a contrast threshold.</td><td style='text-align:right;'></td></tr></table>

<p>Blurs those pixels that are less than or equal to the threshold in contrast. The threshold may be expressed as a fraction of <em class="QR">QuantumRange</em> or as a percentage.</p>

<div style="margin: auto;">
  <h4><a id="separate"></a>-separate</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>separate an image channel into a grayscale image.  Specify the channel with <a href="#channel">-channel</a>.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="sepia-tone"></a>-sepia-tone <em class="arg">threshold</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate a sepia-toned photo.</td><td style='text-align:right;'></td></tr></table>

<p>Specify <em class="arg">threshold</em> as the percent threshold of the intensity (0 - 99.9%).</p>

<p>This option applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning.  Threshold ranges from 0 to <em class="QR">QuantumRange</em> and is a measure of the extent of the sepia toning.  A threshold of 80% is a good starting point for a reasonable tone.</p>



<div style="margin: auto;">
  <h4><a id="set"></a>-set <em class="arg">key value</em></h4>
  <h4>+set <em class="arg">key</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>sets image attributes and properties for images in the current
image sequence.</td><td style='text-align:right;'></td></tr></table>

<p>This will assign (or modify) specific settings attached to all the images
in the current image sequence.  Using the <a href="#set">+set</a> form of the
option will either remove, or reset that setting to a default state, as
appropriate.  </p>

<p>For example, it will modify specific well known image meta-data
'attributes' such as those normally overridden by: the options <a
href="#delay" >-delay</a>, <a href="#dispose" >-dispose</a>, and <a
href="#page" >-page</a>, <a href="#colorspace" >-colorspace</a>; generally
assigned before the image is read in, by using a <em class="arg">key</em> of
the same name. </p>

<p>If the given <em class="arg">key</em> does not match a specific known
'attribute ', such as shown above, the setting is stored as a a free form
'properity' string.  Such settings are listed in <a href="#verbose"
>-verbose</a> information ("<kbd>info:</kbd>" output format) as "Properties".
</p>

<p>This includes string 'properities' that are set by and assigned to images
using the options <a href="#comment" >-comment</a>, <a href="#label"
>-label</a>, <a href="#caption" >-caption</a>. These options actually assign
a global 'artifact' which are automatically assigned (and any <a href="../www/escape.html" >Format Percent
Escapes</a> expanded) to images as they are read in.  For example:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png</span><span class='crtout'>identify -format %c rose.png</span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>Rose is a rose is a rose is a rose</span></p>
<p>The set value can also make use of <a href="../www/escape.html" >Format and Print Image
Properties</a> in the defined value.  For example:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert rose: -set origsize '%wx%h' -resize 50% \</span><span class='crtout'>        -format 'Old size = %[origsize]  New size = %wx%h' info:</span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>Old size = 70x46  New size = 35x23</span></p>
<p>Other well known 'properities' that can be  include:
'<kbd>date:create</kbd>' and '<kbd>date:modify</kbd>' and
'<kbd>signature</kbd>'. </p>

<p>The <a href="#repage">-repage</a> operator will also allow you to modify
the '<kbd>page</kbd>' attribute of an image for images already in memory (also
see <a href="#repage">-page</a>).  However it is designed to provide a finer
control of the sub-parts of this 'attribute'. The <a href="#set">-set page</a>
option will only provide a direct, unmodified assignment of  '<kbd>page</kbd>'
attribute. </p>

<p>This option can also associate a colorspace or profile with your image.
For example,</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd</span></p>
<p>Some 'properties' must be defined in a specific way to be used. For
example only 'properties' prefixed with "<kbd>filename:</kbd>" can be used to
modify the output filename of an image. For example</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'</span></p>
<p>If the setting value is prefixed with "<kbd>option:</kbd>" the setting will
be saved as a global "Artifact" exactly as if it was set using the <a
href="#define" >-define</a> option. As such settings are globel in scope, they
can be used to pass 'attributes' and 'properities' of one specific image,
in a way that allows you to use them in a completely different image, even if
the original image has long since been modified or destroyed. For example: </p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert rose:  -set option:rosesize '%wx%h' -delete 0 \</span><span class='crtout'>        label:'%[rosesize]'   label_size_of_rose.gif</span></p>
<p>Note that <a href="../www/escape.html" >Format Percent Escapes</a> will only match
a 'artifact' if the given <em class="arg">key</em> does not match an existing
'attribute' or 'properity'.  </p>

<p>You can set the attributes of the image registry by prefixing the value
with <kbd>registry:</kbd>.</p>



<div style="margin: auto;">
  <h4><a id="shade"></a>-shade <em class="arg">azimuth</em>x<em class="arg">elevation</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>shade the image using a distant light source.</td><td style='text-align:right;'></td></tr></table>

<p>Specify <em class="arg">azimuth</em> and <em class="arg">elevation</em> as the position of the light source. Use <a href="#shade">+shade</a> to return the shading results as a grayscale image.</p>

<div style="margin: auto;">
  <h4><a id="shadow"></a>-shadow <em class="arg">percent-opacity</em>{x<em class="arg">sigma</em>}{<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate an image shadow.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a
id="shared-memory"></a>-shared-memory</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>use shared memory.</td><td style='text-align:right;'></td></tr></table>

<p>This option specifies whether the utility should attempt to use shared memory for pixmaps. ImageMagick must be compiled with shared memory support, and the display must support the <em class="arg">MIT-SHM</em> extension. Otherwise, this option is ignored. The default is <kbd>True</kbd>.</p>

<div style="margin: auto;">
  <h4><a id="sharpen"></a>-sharpen <em class="arg">radius</em>{x<em class="arg">sigma</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>sharpen the image.</td><td style='text-align:right;'></td></tr></table>

<p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p>

<div style="margin: auto;">
  <h4><a id="shave"></a>-shave <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Shave pixels from the image edges.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">size</em> portion of the <em class="arg">geometry</em> argument specifies the width of the region to be removed from both sides of the image and the height of the regions to be removed from top and bottom. Offsets are ignored.</p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="shear"></a>-shear <em class="arg">Xdegrees</em>[x<em class="arg">Ydegrees</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Shear the image along the x-axis and/or y-axis.</td><td style='text-align:right;'></td></tr></table>

<p>The shear angles may be positive, negative, or zero. When <em class="arg">Ydegrees</em> is omitted it defaults to 0. When both angles are given, the horizontal component of the shear is performed before the vertical component.</p>

<p>Shearing slides one edge of an image along the x-axis or y-axis (i.e., horizontally or vertically, respectively),creating a parallelogram. The amount of each is controlled by the respective shear angle. For horizontal shears, <em class="arg">Xdegrees</em> is measured clockwise relative to "up" (the negative y-axis), sliding the top edge to the right when 0&deg;&lt;<em class="arg">Xdegrees</em>&lt;90&deg; and to the left when 90&deg;&lt;<em class="arg">Xdegrees</em>&lt;180&deg;.  For vertical shears <em class="arg">Ydegrees</em> is measured clockwise relative to "right" (the positive x-axis), sliding the right edge down when 0&deg;&lt;<em class="arg">Ydegrees</em>&lt;90&deg; and up when 90&deg;&lt;<em class="arg">Ydegrees</em>&lt;180&deg;.</p>

<p>Empty triangles left over from shearing the image are filled with the color defined by the <a href="#fill">-background</a> option. The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>The horizontal shear is performed before the vertical part. This is important to note, since horizontal and vertical shears do not <em>commute</em>, i.e., the order matters in a sequence of shears. For example, the following two commands are not equivalent.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert logo: -shear 20x0 -shear 0x60 logo-sheared.png</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert logo: -shear 0x60 -shear 20x0 logo-sheared.png</span></p>
<p>The first of the two commands above is equivalent to the following, except for the amount of empty space created; the command that follows generates a smaller image, and so is a better choice in terms of time and space.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert logo: -shear 20x60 logo-sheared.png</span></p>
<div style="margin: auto;">
  <h4><a id="sigmoidal-contrast"></a>-sigmoidal-contrast <em class="arg">contrast</em>x<em class="arg">mid-point</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>increase the contrast without saturating highlights or shadows.</td><td style='text-align:right;'></td></tr></table>

<p>Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. <em class="arg">Contrast</em> indicates how much to increase the contrast (0 is none; 3 is typical; 20 is a lot); <em class="arg">mid-point</em> indicates where midtones fall in the resultant image (0 is white; 50% is middle-gray; 100% is black).  By default the image contrast is increased, use <em class="arg">+sigmoidal-contrast</em> to decrease the contrast.</p>

<div style="margin: auto;">
  <h4><a id="silent"></a>-silent</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>operate silently.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="size"></a>-size <em class="arg">width</em>[x<em class="arg">height</em>][<em class="arg">+offset</em>]</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set the width and height of the image.</td><td style='text-align:right;'></td></tr></table>

<p>Use this option to specify the width and height of raw images whose dimensions are unknown such as <kbd>GRAY</kbd>, <kbd>RGB</kbd>, or <kbd>CMYK</kbd>. In addition to width and height, use <a href="#size">-size</a> with an offset to skip any header information in the image or tell the number of colors in a <kbd>MAP</kbd> image file, (e.g. -size 640x512+256).</p>

<p>For Photo CD images, choose from these sizes:</p>

<pre class="text">
  192x128
  384x256
  768x512
  1536x1024
  3072x2048
</pre>

<div style="margin: auto;">
  <h4><a id="sketch"></a>-sketch <em class="arg">radius</em><br />-sketch <em class="arg">radius</em>x<em class="arg">sigma</em>+<em class="arg">angle</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>simulate a pencil sketch.</td><td style='text-align:right;'></td></tr></table>

<p>Sketch with the given radius, standard deviation (sigma), and angle.   The angle given is the angle toward which the image is sketched.  That is the direction people would consider the object is coming from.  </p>

<div style="margin: auto;">
  <h4><a id="smush"></a>-smush <em class="arg">offset</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>smush an image sequence together.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="snaps"></a>-snaps <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the number of screen snapshots.</td><td style='text-align:right;'>[<a href="../www/import.html">import</a>]</td></tr></table>

<p>Use this option to grab more than one image from the X server screen, to create an animation sequence.</p>

<div style="margin: auto;">
  <h4><a id="solarize"></a>-solarize <em class="arg">threshold</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>negate all pixels above the threshold level.</td><td style='text-align:right;'></td></tr></table>

<p>Specify <em class="arg">factor</em> as the percent threshold of the intensity (0 - 99.9%).</p>

<p>This option produces a <em class="arg">solarization</em> effect seen when exposing a photographic film to light during the development process.</p>

<div style="margin: auto;">
  <h4><a id="sparse-color"></a>-sparse-color <em
  class="arg">method</em>  '<em class="arg">x</em>,<em class="arg">y</em> <em class="arg">color</em>  ...'</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'> color the given image using the specified points of color, and filling the other intervening colors using the given methods. </td><td style='text-align:right;'></td></tr></table>


<table class="doc">
  <tbody>
  <tr valign="top">
    <th align="left" style="width: 8%">Method</th>
    <th align="left">Description</th>
  </tr>

  <tr valign="top">
    <td valign="top">voronoi</td>
    <td valign="top">Simply map each pixel to the to nearest color point
        given. The result are polygonal 'cells' of solid color. </td>
  </tr>

  <tr valign="top">
    <td valign="top">shepards</td>
    <td valign="top">Colors points biased on the ratio of inverse distance
        squared. Generating spots of color in a sea of the average of
        colors. </td>
    </tr>

  <tr valign="top">
    <td valign="top">barycentric</td>
    <td valign="top">three point triangle of color given 3 points.
        Giving only 2 points will form a linear gradient between those points.
        Gradient is however not restricted to just the triangle or line. </td>
  </tr>

  <tr valign="top">
    <td valign="top">bilinear</td>
    <td valign="top">Like barycentric but for 4 points. Less than 4 points
        fall back to barycentric. </td>
  </tr>

  </tbody>
</table>

<p>The points are placed according to the images location on the virtual
canvas (<a href="#page" >-page</a> or <a href="#repage" >-repage</a>
offset), and do not actually have to exist on the given image, but may be
some point beyond the edge of the image. All points are floating point values.
</p>

<p>Only the color channels defined by the <a href="#channel" >-channel</a> are
modified, whcih means the matte/alpha transparency channel is not effected by
default. If enabled, the image also needs a the matte/alpha channel to be
enabled for this operator to effect an images transparency. This is typical
transparency handling for images. </p>

<p>All the above methods when given a single point of color will replace all
the colors in the image with the color given, regardless of the point. This is
logical, and provides an alternative technique to recolor a image to some
default value. </p>


<div style="margin: auto;">
  <h4><a id="splice"></a>-splice <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Splice the current background color into the image.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. See <a href="#background">-background</a> to reset the background color.</p>

<div style="margin: auto;">
  <h4><a id="spread"></a>-spread <em class="arg">amount</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>displace image pixels by a random amount.</td><td style='text-align:right;'></td></tr></table>

<p>The argument <em class="arg">amount</em> defines the size of the neighborhood around each pixel from which to choose a candidate pixel to swap.</p>

<div style="margin: auto;">
  <h4><a id="stegano"></a>-stegano <em class="arg">offset</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>hide watermark within an image.</td><td style='text-align:right;'></td></tr></table>

<p>Use an offset to start the image hiding some number of pixels from the beginning of the image. Note this offset and the image size. You will need this information to recover the steganographic image (e.g. display -size 320x256+35 stegano:image.png).</p>

<div style="margin: auto;">
  <h4><a id="stereo"></a>-stereo <em class="arg">+x</em>{<em class="arg">+y</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>composite two images to create a stereo anaglyph.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>The left side of the stereo pair is saved as the red channel of the output image. The right side is saved as the green channel. Red-green stereo glasses are required to properly view the stereo image.</p>

<div style="margin: auto;">
  <h4><a id="storage-type"></a>-storage-type <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>pixel storage type.  Here are the valid types:</td><td style='text-align:right;'></td></tr></table>

<pre class="text">
  char        store pixels as unsigned characters
  double      store pixels as doubles
  float       store pixels as floats
  integer     store pixels as integers
  long        store pixels as longs
  quantum     store pixels in the native depth of your ImageMagick distribution
  short       store pixels as unsigned shorts
</pre>

<p>Float and double types are normalized from 0.0 to 1.0 otherwise the pixels
values range from 0 to the maximum value the storage type can support.</p>

<div style="margin: auto;">
  <h4><a id="stretch"></a>-stretch <em class="arg">fontStretch</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set a type of stretch style for fonts.</td><td style='text-align:right;'></td></tr></table>

<p>This setting suggests a type of stretch that ImageMagick should try to apply to the currently selected font family. Select <em class="arg">fontStretch</em> from the following.</p>

<pre class="text">
        Any
        Condensed
        Expanded
        ExtraCondensed
        ExtraExpanded
        Normal
        SemiCondensed
        SemiExpanded
        UltraCondensed
        UltraExpanded
</pre>

<p>To print a complete list of stretch types, use <a href="#list">-list stretch</a>.</p>

<p>For other settings that affect fonts, see the options <a href="#font">-font</a>, <a href="#family">-family</a>, <a href="#style">-style</a>, and <a href="#weight">-weight</a>. </p>

<div style="margin: auto;">
  <h4><a id="strip"></a>-strip</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>strip the image of any profiles or comments.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="stroke"></a>-stroke <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>color to use when stroking a graphic primitive.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>See <a href="#draw">-draw</a> for further details.</p>

<div style="margin: auto;">
  <h4><a id="strokewidth"></a>-strokewidth <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set the stroke width.</td><td style='text-align:right;'></td></tr></table>

<p>See <a href="#draw">-draw</a> for further details.</p>

<div style="margin: auto;">
  <h4><a id="style"></a>-style <em class="arg">fontStyle</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set a font style for text.</td><td style='text-align:right;'></td></tr></table>

<p>This setting suggests a font style that ImageMagick should try to apply to
the currently selected font family. Select <em class="arg">fontStyle</em> from
the following.</p>

<pre class="text">
        Any
        Italic
        Normal
        Oblique
</pre>

<p>For other settings that affect fonts, see the options <a href="#font">-font</a>, <a href="#family">-family</a>, <a href="#stretch">-stretch</a>, and <a href="#weight">-weight</a>. </p>

<div style="margin: auto;">
  <h4><a id="subimage-search"></a>-subimage-search</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>search for subimage.</td><td style='text-align:right;'>[<a href="../www/compare.html">compare</a>]</td></tr></table>

<p>This option is required to have compare search for the best match location
of a small image within a larger image. This search will produce two images
(or two frames). The first is the "difference" image and the second will
be the "match score" image.</p>

<p>The "match-score" image is smaller containing a pixel for ever possible
position of the top-left corner of the given sub-image. that is its size will
be the size of the larger_image - sub_image + 1.  The brightest location in
this image is the location s the locate on the best match that is also
reported. Note that this may or may nor be a perfect match, and the actual
brightness will reflect this. Other bright 'peaks' can be used to locate other
possible matching loctions. </p>

<p>Note that the search will try to compare teh sub-image at every possible
location in the larger image, as such it can be very slow.  The smaller the
sub-image the faster this search is. </p>


<div style="margin: auto;">
  <h4><a id="swap"></a>-swap <em class="arg">index,index</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Swap the positions of two images in the image sequence.</td><td style='text-align:right;'></td></tr></table>

<p>For example, <a href="#swap">-swap 0,2</a> swaps the first and the third
images in the current image sequence. Use <a href="#swap">+swap</a> to switch
the last two images in the sequence.</p>

<div style="margin: auto;">
  <h4><a id="swirl"></a>-swirl <em class="arg">degrees</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>swirl image pixels about the center.</td><td style='text-align:right;'></td></tr></table>

<p><em class="arg">Degrees</em> defines the tightness of the swirl.</p>

<div style="margin: auto;">
  <h4><a id="synchronize"></a>-synchronize</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>synchronize image to storage device.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="taint"></a>-taint</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Mark the image as modified.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="text-font"></a>-text-font <em class="arg">name</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>font for writing fixed-width text.</td><td style='text-align:right;'></td></tr></table>

<p>Specifies the name of the preferred font to use in fixed (typewriter style) formatted text. The default is 14 point <em class="arg">Courier</em>.</p>

<p>You can tag a font to specify whether it is a PostScript, TrueType, or OPTION1 font. For example, <kbd>Courier.ttf</kbd> is a TrueType font and <kbd>x:fixed</kbd> is OPTION1.</p>

<div style="margin: auto;">
  <h4><a id="texture"></a>-texture <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>name of texture to tile onto the image background.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="threshold"></a>-threshold <em class="arg">value</em>{<em class="arg">%</em>}</h4>
</div>

<!-- {<em class="arg">green,blue,opacity</em>}
<p>If the green or blue value is omitted, these channels use the same value as the first one provided. If all three color values are the same, the result is a bi-level image. If the opacity threshold is omitted, OpaqueOpacity is used and any partially transparent pixel becomes fully transparent.</p>
-->

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Apply simultaneous black/white threshold to the image.</td><td style='text-align:right;'></td></tr></table>

<p>Any pixel values (more specifically, those channels set using <a href="../www/command-line-options.html#channel">&#x2011;channel</a>) that exceed the specified threshold are reassigned the maximum channel value, while all other values are assigned the minimum.</p>

<p> The threshold value can be given as a percentage or as an absolute integer value corresponding to the desired channel value. When given as an integer, the minimum attainable value is 0 (corresponding to black when all channels are affected), but the maximum value (corresponding to white) is that of the <kbd>quantum depth</kbd> of the particular build of ImageMagick, and is therefore dependent on the installation. For that reason, a reasonable recommendation for most applications is to specify the threshold values as a percentage.
</p>

<p> The following would force pixels with red values above 50% to have 100% red values, while those at or below 50% red would be set to 0 in the red channel. The green, blue, and alpha channels (if present) would be unchanged. </p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert in.png -channel red -threshold 50% out.png</span></p>
<p>As (possibly) impractical but instructive examples, the following would generate an all-black and an all-white image with the same dimensions as the input image.</p>


<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert in.png -threshold 100% black.png</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert in.png -threshold -1 white.png</span></p>
<p>Note that the values of the transparency channel is treated as 'matte'
values (0 is opaque) and not as 'alpha' values (0 is transparent).</p>

<p> See also <a href="../www/command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a> and <a href="../www/command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a>.
</p>

<div style="margin: auto;">
  <h4><a id="thumbnail"></a>-thumbnail <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Create a thumbnail of the image.</td><td style='text-align:right;'></td></tr></table>

<p>This is similar to <a href="#resize">-resize</a>, except it is optimized for speed and any image profile, other than a color profile, is removed to reduce the thumbnail size.  To strip the color profiles as well, add <a href="#strip">-strip</a> just before of after this option.</p>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4><a id="tile"></a>-tile <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the tile image used for filling a subsequent graphic primitive.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4>-tile <em class="arg">geometry</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify the layout of images .</td><td style='text-align:right;'>[<a href="../www/montage.html">montage</a>]</td></tr></table>

<p>See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>

<div style="margin: auto;">
  <h4>-tile</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specifies that a subsequent composite operation is repeated across and down image.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<div style="margin: auto;">
  <h4><a id="tile-offset"></a>-tile-offset {<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify the offset for tile images, relative to the background image it is tiled on.</td><td style='text-align:right;'></td></tr></table>

<p>This should be set before the tiling image is set by <a href="#tile" >-tile</a> or <a href="#texture" >-texture</a>, or directly applied for creating a tiled canvas using <kbd>TILE:</kbd> or <kbd>PATTERN:</kbd> input formats. </p>

<p>Internally ImageMagick does a <a href="#roll" >-roll</a> of the tile image by the arguments given when the tile image is set. </p>

<div style="margin: auto;">
  <h4><a id="tint"></a>-tint <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Tint the image with the fill color.</td><td style='text-align:right;'></td></tr></table>

<p>Tint the image with the fill color.</p>

<p>Specify the amount of tinting as a percentage.  Pure colors like black, white red, yellow, will not be affected by -tint. Only mid-range colors such as the various shades of grey.</p>

<div style="margin: auto;">
  <h4><a id="title"></a>-title <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Assign a title to displayed image.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>, <a href="../www/montage.html">montage</a>]</td></tr></table>

<p>Use this option to assign a specific title to the image. This assigned to the image window and is typically displayed in the window title bar. Optionally you can include the image filename, type, width, height, Exif data, or other image attribute by embedding special format characters described under the <a href="#format">-format</a> option.</p>

<p>For example,</p>

<p class="crtsnip">
  -title "%m:%f %wx%h"
</p>

<p>produces an image title of <kbd>MIFF:bird.miff 512x480</kbd> for an image titled <kbd>bird.miff</kbd> and whose width is 512 and height is 480.</p>


<div style="margin: auto;">
  <h4><a id="transform"></a>-transform</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>transform the image.</td><td style='text-align:right;'></td></tr></table>

<p>This option applies the transformation matrix from a previous <a href="#affine">-affine</a> option.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg</span></p>

<p>This operator has been now been superseded by the  <a
href="#distort">-distort</a> '<kbd>AffineProjection</kbd>' method. </p>


<div style="margin: auto;">
  <h4><a id="transparent"></a>-transparent <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Make this color transparent within the image.</td><td style='text-align:right;'></td></tr></table>

<p>The <em class="arg">color</em> argument is defined using the format
described under the <a href="#fill">-fill</a> option. The <a href="#fuzz"
>-fuzz</a> setting can be used to match and replace colors similar to the one
given. </p>

<p>Use  <a href="#transparent" >+transparent</a> to invert the pixels matched.
that is make all non-matching colors transparent. </p>

<p>The <a href="#opaque">-opaque</a>  operator is exactly the same as <a
href="#transparent" >-transparent</a> but replaces the matching color with the
current <a href="#fill">-fill</a> color setting, rather than transparent.
However the <a href="#transparent" >-transparent</a> operator also ensures
that the image has an alpha channel enabled, as per "<kbd><a href="#alpha"
>-alpha</a> set</kbd>", and does not require you to modify the <a
href="#channel">-channel</a> to enable alpha channel handling. </p>

<p>Note that this does not define the color as being the 'transparency color'
used for color-mapped image formats, such as GIF.  For that use <a
href="#transparent-color" >-transparent-color</a> </p>


<div style="margin: auto;">
  <h4><a id="transparent-color"></a>-transparent-color <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set the transparent color.</td><td style='text-align:right;'></td></tr></table>

<p>Sometimes this is used for saving to image formats such as
GIF and PNG8 which uses this color to represent boolean transparency.  This
does not make a color transparent, it only defines what color the transparent
color is in the color palette of the saved image. Use <a
href="#transparent">-transparent</a> to make an opaque color transparent.</p>

<p>This option allows you to have both an opaque visible color, as well as a
transparent color of the same color value without conflict.  That is, you can
use the same color for both the transparent and opaque color areas within an
image.  This, in turn, frees to you to select a transparent color that is
appropriate when an image is displayed by an application that does not handle a
transparent color index, while allowing ImageMagick to correctly handle images of this
type. </p>

<p>The default transparent color is <kbd>#00000000</kbd>, which is fully transparent black.</p>

<div style="margin: auto;">
  <h4><a id="transpose"></a>-transpose</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Mirror the image along the top-left to bottom-right diagonal.</td><td style='text-align:right;'></td></tr></table>

<p> This option mathematically transposes the pixel array.  It is equivalent to the sequence <kbd>-flip -rotate 90</kbd>.
</p>

<div style="margin: auto;">
  <h4><a id="transverse"></a>-transverse</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Mirror the image along the images bottom-left top-right diagonal.  Equivalent to the operations <kbd>-flop -rotate 90</kbd>.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="treedepth"></a>-treedepth <em class="arg">value</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>tree depth for the color reduction algorithm.</td><td style='text-align:right;'></td></tr></table>

<p>Normally, this integer value is zero or one. A value of zero or one causes the use of an optimal tree depth for the color reduction algorithm.</p>

<p>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 the <a href="../www/quantize.html">color reduction algorithm</a> for more details.</p>

<p>The <a href="#colors">-colors</a> or <a href="#monochrome">-monochrome</a> option, or writing to an image format which requires color reduction, is required for this option to take effect.</p>

<div style="margin: auto;">
  <h4><a id="trim"></a>-trim</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>trim an image.</td><td style='text-align:right;'></td></tr></table>

<p>This option removes any edges that are exactly the same color as the corner pixels. Use <a href="#fuzz">-fuzz</a> to make <a href="#trim">-trim</a> remove edges that are nearly the same color as the corner pixels.</p>

<p>The page or virtual canvas information of the image is preserved allowing
you to extract the result of the <a href="#trim">-trim</a> operation from the
image.  Use a <a href="#repage">+repage</a> to remove the virtual canvas page
information if it is unwanted.</p>

<p>If the trimmed image 'disappears' an warning is produced, and a special
single pixel transparent 'missed' image is returned, in the same way as when a
<a href="#crop">-crop</a> operation 'misses' the image proper. </p>


<div style="margin: auto;">
  <h4><a id="type"></a>-type <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the image type.</td><td style='text-align:right;'></td></tr></table>
 <p>Choose from: <kbd>Bilevel</kbd>, <kbd>Grayscale</kbd>, <kbd>GrayscaleMatte</kbd>, <kbd>Palette</kbd>, <kbd>PaletteMatte</kbd>, <kbd>TrueColor</kbd>, <kbd>TrueColorMatte</kbd>, <kbd>ColorSeparation</kbd>, or <kbd>ColorSeparationMatte</kbd>.</p>

<p>Normally, when a format supports different subformats such as grayscale and truecolor, the encoder will try to choose an efficient subformat. The <a href="#type">-type</a> option can be used to overrride this behavior. For example, to prevent a JPEG from being written in grayscale format even though only gray pixels are present, use.</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>convert bird.png -type TrueColor bird.jpg</span></p>
<p>Similarly, use <a href="#type">-type TrueColorMatte</a> to force the encoder to write an alpha channel even though the image is opaque, if the output format supports transparency.</p>

<p>Use <a href="#type">-type optimize</a> to ensure the image is written in the smallest possible file size.</p>

<div style="margin: auto;">
  <h4><a id="undercolor"></a>-undercolor <em class="arg">color</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>set the color of the annotation bounding box.</td><td style='text-align:right;'></td></tr></table>

<p>The color is specified using the format described under the <a href="#fill">-fill</a> option.</p>

<p>See <a href="#draw">-draw</a> for further details.</p>


<div style="margin: auto;">
  <h4><a id="update"></a>-update <em class="arg">seconds</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>detect when image file is modified and redisplay.</td><td style='text-align:right;'></td></tr></table>

<p>Suppose that while you are displaying an image the file that is currently displayed is over-written.  <kbd>display</kbd> will automagically detect that the input file has been changed and update the displayed image accordingly.</p>


<div style="margin: auto;">
  <h4><a id="unique-colors"></a>-unique-colors</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>discard all but one of any pixel color.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="units"></a>-units <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>the units of image resolution.</td><td style='text-align:right;'></td></tr></table>

<p>Choose from: <kbd>Undefined</kbd>, <kbd>PixelsPerInch</kbd>, or <kbd>PixelsPerCentimeter</kbd>. This option is normally used in conjunction with the <a href="#density">-density</a> option.</p>


<div style="margin: auto;">
  <h4><a id="unsharp"></a>-unsharp <em class="arg">radius</em><br />-unsharp <em class="arg">radius</em>x<em class="arg">sigma</em>{<em class="arg">+amount</em>}{<em class="arg">+threshold</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>sharpen the image with an unsharp mask operator.</td><td style='text-align:right;'></td></tr></table>

<p>The <a href="#unsharp">-unsharp</a> option sharpens an image. The image is convolved with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 to have the method select a suitable radius.</p>

<p>The parameters are:</p>

<pre class="text">
  radius:    The radius of the Gaussian, in pixels,  not counting the center
             pixel (default 0).
  sigma:     The standard deviation of the Gaussian, in pixels (default 1.0).
  amount:    The fraction of the difference between the original and the blur
             image that is added back into the original (default 1.0).
  threshold: The threshold, as a fraction of <em class="QR">QuantumRange</em>, needed to apply the
             difference amount (default 0.05).
</pre>


<div style="margin: auto;">
  <h4><a id="verbose"></a>-verbose</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>print detailed information about the image when this option precedes the <a href="#identify">-identify</a> option or <kbd>info:</kbd>.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="version"></a>-version</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>print ImageMagick version string and exit.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="view"></a>-view <em class="arg">string</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>FlashPix viewing parameters.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="vignette"></a>-vignette <em class="arg">radius</em>{x<em class="arg">sigma</em>}{<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>soften the edges of the image in vignette style.</td><td style='text-align:right;'></td></tr></table>


<div style="margin: auto;">
  <h4><a id="virtual-pixel"></a>-virtual-pixel <em class="arg">method</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Specify contents of <em>virtual pixels</em>.</td><td style='text-align:right;'></td></tr></table>

<p>This option defines what color source should be used if and when a color
lookup completely 'misses' the source image. The color(s) that appear to
surround the source image.  Generally this color is derived from the source
image, but could also be set to a specify background color. </p>

<p>Choose from these methods:</p>

<pre class="text">
  background:           the area surrounding the image is the background color
  black:                the area surrounding the image is black
  checker-tile:         alternate squares with image and background color
  dither:               non-random 32x32 dithered pattern
  edge:                 extend the edge pixel toward infinity
  gray:                 the area surrounding the image is gray
  horizontal-tile:      horizontally tile the image, background color above/below
  horizontal-tile-edge: horizontally tile the image and replicate the side edge pixels
  mirror:               mirror tile the image
  random:               choose a random pixel from the image
  tile:                 tile the image (default)
  transparent:          the area surrounding the image is transparent blackness
  vertical-tile:        vertically tile the image, sides are background color
  vertical-tile-edge:   vertically tile the image and replicate the side edge pixels
  white:                the area surrounding the image is white
</pre>

<p>The default value is "edge".</p>

<p>This most important for distortion operators such as <a href="#distort"
>-distort</a>, <a href="#implode" >-implode</a>, and <a href="#fx" >-fx</a>.
However it also effects operations that may access pixels just outside the
image proper, such as <a href="#convolve">-convolve</a>, <a
href="#blur">-blur</a>, and <a href="#sharpen">-sharpen</a>. </p>

<p>To print a complete list of virtual pixel types, use the <a href="#list">-list virtual-pixel</a> option.</p>


<div style="margin: auto;">
  <h4><a id="visual"></a>-visual <em class="arg">type</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Animate images using this X visual type.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p>Choose from these visual classes:</p>

<pre class="text">
  StaticGray
  GrayScale
  StaticColor
  PseudoColor
  TrueColor
  DirectColor
  default
  visual id
</pre>

<p>The X server must support the visual you choose, otherwise an error occurs. If a visual is not specified, the visual class that can display the most simultaneous colors on the default screen is chosen.</p>


<div style="margin: auto;">
  <h4><a id="watermark"></a>-watermark <em
  class="arg">brightness</em>x<em class="arg">saturation</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Watermark an image using the given percentages of brightness and
saturation.</td><td style='text-align:right;'>[<a href="../www/composite.html">composite</a>]</td></tr></table>

<p>Take a grayscale image (with alpha mask) and modify the destination image's
brightness according to watermark image's grayscale value and the <em
class="arg">brightness</em> percentage.  The destinations color saturation
attribute is just direct modified by the <em class="arg">saturation</em>
percentage, which defaults to 100 percent (no color change). </p>


<div style="margin: auto;">
  <h4><a id="wave"></a>-wave <em class="arg">amplitude</em><br />-wave <em class="arg">amplitude</em>x<em class="arg">wavelength</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Shear the columns of an image into a sine wave.</td><td style='text-align:right;'></td></tr></table>

<p>Specify <em class="arg">amplitude</em> and <em class="arg">wavelength</em> of the wave.</p>

<div style="margin: auto;">
  <h4><a id="weight"></a>-weight <em class="arg">fontWeight</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Set a font weight for text.</td><td style='text-align:right;'></td></tr></table>

<p>This setting suggests a font weight that ImageMagick should try to apply to the currently selected font family. Use a positive integer for <em class="arg">fontWeight</em> or select from the following.</p>

<table class="doc">
  <col width="25%" />
  <col width="75%" />
  <thead>
  <tr>
  <th><em class="arg">fontWeight</em></th>
  <th>Description</th>
  </tr>
  </thead>
  <tbody>
    <tr><td>All </td>       <td>No effect. </td></tr>
    <tr><td>Bold </td>      <td>Same as <em class="arg">fontWeight</em> = 700.</td></tr>
    <tr><td>Bolder </td>    <td>Add 100 to font weight if currently &le; 800.</td></tr>
    <tr><td>Lighter </td>   <td>Subtract 100 to font weight if currently &le; 100.</td></tr>
    <tr><td>Normal </td>    <td>Same as <em class="arg">fontWeight</em> = 400.</td></tr>
 </tbody>
 </table>

<p>To print a complete list of weight types, use <a href="#list">-list weight</a>.</p>

<p>For other settings that affect fonts, see the options <a href="#font">-font</a>, <a href="#family">-family</a>, <a href="#stretch">-stretch</a>, and <a href="#style">-style</a>. </p>

<div style="margin: auto;">
  <h4><a id="white-point"></a>-white-point <em class="arg">x,y</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>chromaticity white point.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="white-threshold"></a>-white-threshold <em class="arg">value</em>{<em class="arg">%</em>}</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Force to white all pixels above the threshold while leaving all pixels at or below the threshold unchanged.</td><td style='text-align:right;'></td></tr></table>

<p> The threshold value can be given as a percentage or as an absolute integer value within [0,&nbsp;<em class="QR">QuantumRange</em>] corresponding to the desired <a href="../www/command-line-options.html#channel">&#x2011;channel</a> value. See <a href="../www/command-line-options.html#threshold">&#x2011;threshold</a> for more details on thresholds and resulting values.
</p>

<div style="margin: auto;">
  <h4><a id="window"></a>-window <em class="arg">id</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>Make the image the background of a window.</td><td style='text-align:right;'>[<a href="../www/animate.html">animate</a>, <a href="../www/display.html">display</a>]</td></tr></table>

<p><em class="arg">id</em> can be a window id or name. Specify <kbd>root</kbd> to select X's root window as the target window.</p>

<p>By default the image is tiled onto the background of the target window. If <kbd>backdrop</kbd> or <a href="#geometry">-resize</a> are specified, the image is surrounded by the background color. Refer to <kbd>X RESOURCES</kbd> for details.</p>

<p>The image will not display on the root window if the image has more unique colors than the target window colormap allows. Use <a href="#colors">-colors</a> to reduce the number of colors.</p>

<div style="margin: auto;">
  <h4><a id="window-group"></a>-window-group</h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>specify the window group.</td><td style='text-align:right;'></td></tr></table>

<div style="margin: auto;">
  <h4><a id="write"></a>-write <em class="arg">filename</em></h4>
</div>

<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>write an image sequence.</td><td style='text-align:right;'></td></tr></table>
 <p>The image sequence preceding the <a href="#write">-write</a> <em class="arg">filename</em> option is written out, and processing continues with the same image in its current state if there are additional options. To restore the image to its original state after writing it, use the <a href="#write">+write</a> <em class="arg">filename</em> option.</p>

<p>Use <a href="#compress">-compress</a> to specify the type of image compression.</p>
</div>
</div>

</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="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2011 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>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
