



<!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 rel="follow" 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 rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a rel="follow" title="Sponsor: Fototapete" href=" http://www.allesdruck.de/Fototapete-Tapetendruck,category,8830.html">Fototapete</a><!-- 20110701000080 a-o.de -->
</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 zero
offsets so as to remove a single edge from an image.  Compare this to <a
href="#shave" >-shave</a> which 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 equivalent 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 equivalent 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 to create a new layer image just large enough to hold all the
        image without clipping or extra space. The new images virtual offset
        will preserve 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.
        Following this operation methd with <a href="#repage" >+repage</a>
        will remove the layer offset, and create a image in which all the
        overlaid image positions relative to each other is preserved, though
        not nessaraily exactly where you specified them.
        </td>
  </tr>

  <tr><td></td><td>See also 'trim-bounds' below whcih is closely related but
        without  doing the'flatten' to merge the images together. </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 in a positive direction only so as to hold all the
        image layers.  However as a virtual canvas is 'locked' to the origin,
        by its own definition, image layers with a negative offsets will still
        become clipped by the top and left edges. See 'merge' or 'trim-bounds'
        if this could be a problem. </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 or
        merged, only the individual image virtual canvas size and offset.
        All the images 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 touching those
        edges however may be transparent.  </td>
  </tr>

  <tr><td></td><td>The result is much like if you used 'merge' followed by a
        <a href="#repage" >+repage</a> option, except that all the images
        have been kept separate.  If 'flatten' is used after using
        'trim-bounds' you will get the same result.  </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 and may be depreciated in
the future.  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%'>Prevent updates to image pixels specified by the mask.</td><td style='text-align:right;'></td></tr></table>

<p>This the same as using a mask used for composite masking operations, with
grayscale values causing blended updates of the image the mask is attached to.
</P>

<p>Use <a href="#mask">+mask</a> to remove the mask from images.</p>

<p>Also see <a href="#clip-mask">-clip-mask</a> which work in the same way,
but with strict boolean masking. </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>

<p>Select the 'maximum' value from all the surrounding pixels. </p>

<p>This is legacy option from the <a href="#statistic" >method</A> of the same
name. </p>

<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>

<p>Select the 'middle' value from all the surrounding pixels. </p>

<p>This is legacy option from the <a href="#statistic" >method</A> of the same
name. </p>

<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>

<p>Select the 'minimal' value from all the surrounding pixels. </p>

<p>This is legacy option from the <a href="#statistic" >method</A> of the same
name. </p>



<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 equivalent 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">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.
        The gradient generated extends beyond the triangle created by those
        3 points. </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>
  <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">inverse</td>
    <td valign="top">Colors points biased on the ratio of inverse distance.
        This generates sharper points of color rather than rounded spots of
        '<kbd>shepards</kbd>'  Generating spots of color in a sea of the
        average of colors. </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, which means that by default matte/alpha transparency channel is not
effected. Typically transparency channel is turned off either before or after
the operation. </P>

Of course if some color points are transparent to generate a transparent
gradient, then the image also requires transparency enabled to store the
values. </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>This will add rows and columns of the current <a
href="#background">-background</a> color into the given image according to the
given  <a href="#gravity">-gravity</a> effectd geometry setting.  >See <a href="../www/command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Essentually <a href="#splice">-splice</a> will divide the
image into four quadrants, separating them by the inserted rows and columns.
</P>

If a dimension of geometry is zero no rows or columns will be added for that
dimension.  Similarly using a zero offset with the appropriate <a
href="#gravity">-gravity</a> setting will add rows and columns to the edges of
the image, padding the image only along that one edge. Edge padding is what <a
href="#splice">-splice</a> is most commonly used for. </p>

<p>If the exact same  <em class="arg">geometry</em> and <a
href="#gravity">-gravity</a> is later used with <a href="#chop">-chop</a> the
added added all splices removed. </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>
