



<!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">
<div style="margin: 17px auto; float: left;">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "5439289906";
    google_ad_width = 728;
    google_ad_height = 90;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>
<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>

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201108010090 alexanian media -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<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: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</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 Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011070100030 autoteile-Carparts-->
</div>
</div>
</div>
</div>

<div class="eastbar">

</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#black-point-compensation">&#x2011;black&#x2011;point&#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#duplicate">&#x2011;duplicate</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#statistic">&#x2011;statistic</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>]</h4>
</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="black-point-compensation"></a>-black-point-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 identical 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 clone 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
effectively 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; .04045 then Rs=R/12.92 else Rs=((R+.055)/1.055)^2.4</td></tr>
        <tr><td align="left" valign="middle">if Gs &le; .04045 then Gs=B/12.92 else Gs=((G+.055)/1.055)^2.4</td></tr>
        <tr><td align="left" valign="middle">if Bs &le; .04045 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>The "include-chunk" and "exclude-chunk" lists only affect the behavior
    of the PNG encoder and have no effect on the PNG decoder.</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>

    <p>Any chunk names that are not known to ImageMagick are ignored
    if they appear in either the "include-chunk" or "exclude-chunk" list.
    The ancillary chunks currently known to ImageMagick are
    <kbd>bKGD</kbd>, <kbd>cHRM</kbd>, <kbd>gAMA</kbd>, <kbd>iCCP</kbd>,
    <kbd>oFFs</kbd>, <kbd>pHYs</kbd>, <kbd>sRGB</kbd>, <kbd>tEXt</kbd>,
    <kbd>tRNS</kbd>, <kbd>vpAg</kbd>, and <kbd>zTXt</kbd>.</p>

    <p>You can also put <kbd>date</kbd> in the list to include or exclude
    the "Date:create" and "Date:modify" text chunks that ImageMagick normally
    inserts in the output PNG.</p>

</dd>

<dt>png:preserve-colormap</dt>
  <dd>Use the existing image->colormap. Normally the PNG encoder will
      try to optimize the palette, eliminating unused entries and putting
      the transparent colors first.  If this flag is set, that behavior
      is suppressed.</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">indexes</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="duplicate"></a>-duplicate <em class="arg">count,indexes</em></h4>
</div>

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

<p>Specify the count and the image to duplicate 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>+duplicate</kbd> to duplicate the last image in the current image sequence.</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">geometry</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">geometry</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">geometry</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>threshold</kbd> generated a simple 50% threshold of the image.
This could be used with <em class="arg" >level</em> to do the equivelent of <a
href="#posterize" >-posterize</a> to reduce an image to basic primary colors.
</p>

<p>The <kbd>checks</kbd> pattern produces a 3 level checkerbord dither
pattern. That is a grayscale will become a pattern of solid black, solid
white, and  mid-tone colors into a checkerboard pattern of black and white.
</p>

<p>You can define your own <em class="arg" >threshold map</em> for ordered
dithering and halftoning your images, in either personal or system
<kbd>thresholds.xml</kbd> XML file. See <a href="resources.html" >Resources</A>
for more details of configuration files. </p>

<p>To print a complete list of the thresholds that have been defined, use the
<a href="#list" >-list threshold</a> option.</p>

<p>Note that at this time the 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. Also as the maps are
simple threshold levels, the halftone and circle maps will create incomplete
circles along the edges of a colored area. Also all the effects are purely
on/off boolean effects, without anti-aliasing to make the circles smooth
looking. Large dots can be made to look better with a small amount of blurring
after being created. </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">radius</em><br />-selective-blur <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
'property' 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 global 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 'property'.  </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="statistic"></a>-statistic <em class="arg">type</em> <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%'>replace each pixel with corresponding statistic from 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>

<p>Choose from these statistic types:</p>
<pre class="text">
   Gradient   maximum difference in area
   Maximum    maximum value per channel in neighborhood
   Minimum    minimum value per channel in neighborhood
   Mean       average value per channel in neighborhood
   Median     median value per channel in neighborhood
   Mode       mode (most frequent) value per channel in neighborhood
   Nonpeak    value just before or after the median value per channel in neighborhood
</pre>

<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     unsigned characters
   double   doubles
   float    floats
   integer  integers
   long     longs
   quantum  pixels in the native depth of your ImageMagick distribution
   short    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>
