diff --git a/www/command-line-options.html b/www/command-line-options.html
index 146b881..d31e906 100644
--- a/www/command-line-options.html
+++ b/www/command-line-options.html
@@ -26,9 +26,9 @@
 <div class="main">
 <div class="magick-masthead">
   <div class="container">
-    <script async src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3129977114552745" data-ad-slot="6345125851" data-ad-format="auto"></ins>
+    <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3129977114552745" data-ad-slot="6345125851" data-ad-format="auto"></ins>
     <script>
-    (adsbygoogle = window.adsbygoogle || []).push({});
+      (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
     <nav class="magick-nav">
       <a class="magick-nav-item " href="../index.html">Home</a>
@@ -43,7625 +43,7 @@
   </div>
 </div>
 <div class="container">
-<div class="magick-header">
-<p class="text-center"><a href="command-line-options.html#adaptive-blur">‑adaptive‑blur</a>  • <a href="command-line-options.html#adaptive-resize">‑adaptive‑resize</a>  • <a href="command-line-options.html#adaptive-sharpen">‑adaptive‑sharpen</a>  • <a href="command-line-options.html#adjoin">‑adjoin</a>  • <a href="command-line-options.html#affine">‑affine</a>  • <a href="command-line-options.html#alpha">‑alpha</a>  • <a href="command-line-options.html#annotate">‑annotate</a>  • <a href="command-line-options.html#antialias">‑antialias</a>  • <a href="command-line-options.html#append">‑append</a>  • <a href="command-line-options.html#attenuate">‑attenuate</a>  • <a href="command-line-options.html#authenticate">‑authenticate</a>  • <a href="command-line-options.html#auto-gamma">‑auto‑gamma</a>  • <a href="command-line-options.html#auto-level">‑auto‑level</a>  • <a href="command-line-options.html#auto-orient">‑auto‑orient</a>  • <a href="command-line-options.html#backdrop">‑backdrop</a>  • <a href="command-line-options.html#background">‑background</a>  • <a href="command-line-options.html#bench">‑bench</a>  • <a href="command-line-options.html#bias">‑bias</a>  • <a href="command-line-options.html#black-point-compensation">‑black‑point‑compensation</a>  • <a href="command-line-options.html#black-threshold">‑black‑threshold</a>  • <a href="command-line-options.html#blend">‑blend</a>  • <a href="command-line-options.html#blue-primary">‑blue‑primary</a>  • <a href="command-line-options.html#blue-shift">‑blue‑shift</a>  • <a href="command-line-options.html#blur">‑blur</a>  • <a href="command-line-options.html#border">‑border</a>  • <a href="command-line-options.html#bordercolor">‑bordercolor</a>  • <a href="command-line-options.html#borderwidth">‑borderwidth</a>  • <a href="command-line-options.html#brightness-contrast">‑brightness‑contrast</a>  • <a href="command-line-options.html#cache">‑cache</a>  • <a href="command-line-options.html#canny">‑canny</a>  • <a href="command-line-options.html#caption">‑caption</a>  • <a href="command-line-options.html#cdl">‑cdl</a>  • <a href="command-line-options.html#channel">‑channel</a>  • <a href="command-line-options.html#charcoal">‑charcoal</a>  • <a href="command-line-options.html#chop">‑chop</a>  • <a href="command-line-options.html#clamp">‑clamp</a>  • <a href="command-line-options.html#clip">‑clip</a>  • <a href="command-line-options.html#clip-mask">‑clip‑mask</a>  • <a href="command-line-options.html#clip-path">‑clip‑path</a>  • <a href="command-line-options.html#clone">‑clone</a>  • <a href="command-line-options.html#clut">‑clut</a>  • <a href="command-line-options.html#coalesce">‑coalesce</a>  • <a href="command-line-options.html#colorize">‑colorize</a>  • <a href="command-line-options.html#colormap">‑colormap</a>  • <a href="command-line-options.html#color-matrix">‑color‑matrix</a>  • <a href="command-line-options.html#colors">‑colors</a>  • <a href="command-line-options.html#colorspace">‑colorspace</a>  • <a href="command-line-options.html#combine">‑combine</a>  • <a href="command-line-options.html#comment">‑comment</a>  • <a href="command-line-options.html#compare">‑compare</a>  • <a href="command-line-options.html#complex">‑complex</a>  • <a href="command-line-options.html#compose">‑compose</a>  • <a href="command-line-options.html#composite">‑composite</a>  • <a href="command-line-options.html#compress">‑compress</a>  • <a href="command-line-options.html#connected-components">‑connected‑components</a>  • <a href="command-line-options.html#contrast">‑contrast</a>  • <a href="command-line-options.html#contrast-stretch">‑contrast‑stretch</a>  • <a href="command-line-options.html#convolve">‑convolve</a>  • <a href="command-line-options.html#copy">‑copy</a>  • <a href="command-line-options.html#crop">‑crop</a>  • <a href="command-line-options.html#cycle">‑cycle</a>  • <a href="command-line-options.html#debug">‑debug</a>  • <a href="command-line-options.html#decipher">‑decipher</a>  • <a href="command-line-options.html#deconstruct">‑deconstruct</a>  • <a href="command-line-options.html#define">‑define</a>  • <a href="command-line-options.html#delay">‑delay</a>  • <a href="command-line-options.html#delete">‑delete</a>  • <a href="command-line-options.html#density">‑density</a>  • <a href="command-line-options.html#depth">‑depth</a>  • <a href="command-line-options.html#descend">‑descend</a>  • <a href="command-line-options.html#deskew">‑deskew</a>  • <a href="command-line-options.html#despeckle">‑despeckle</a>  • <a href="command-line-options.html#direction">‑direction</a>  • <a href="command-line-options.html#displace">‑displace</a>  • <a href="command-line-options.html#display">‑display</a>  • <a href="command-line-options.html#dispose">‑dispose</a>  • <a href="command-line-options.html#dissimilarity-threshold">‑dissimilarity‑threshold</a>  • <a href="command-line-options.html#dissolve">‑dissolve</a>  • <a href="command-line-options.html#distort">‑distort</a>  • <a href="command-line-options.html#distribute-cache">‑distribute‑cache</a>  • <a href="command-line-options.html#dither">‑dither</a>  • <a href="command-line-options.html#draw">‑draw</a>  • <a href="command-line-options.html#duplicate">‑duplicate</a>  • <a href="command-line-options.html#edge">‑edge</a>  • <a href="command-line-options.html#emboss">‑emboss</a>  • <a href="command-line-options.html#encipher">‑encipher</a>  • <a href="command-line-options.html#encoding">‑encoding</a>  • <a href="command-line-options.html#endian">‑endian</a>  • <a href="command-line-options.html#enhance">‑enhance</a>  • <a href="command-line-options.html#equalize">‑equalize</a>  • <a href="command-line-options.html#evaluate">‑evaluate</a>  • <a href="command-line-options.html#evaluate-sequence">‑evaluate‑sequence</a>  • <a href="command-line-options.html#extent">‑extent</a>  • <a href="command-line-options.html#extract">‑extract</a>  • <a href="command-line-options.html#family">‑family</a>  • <a href="command-line-options.html#features">‑features</a>  • <a href="command-line-options.html#fft">‑fft</a>  • <a href="command-line-options.html#fill">‑fill</a>  • <a href="command-line-options.html#filter">‑filter</a>  • <a href="command-line-options.html#flatten">‑flatten</a>  • <a href="command-line-options.html#flip">‑flip</a>  • <a href="command-line-options.html#floodfill">‑floodfill</a>  • <a href="command-line-options.html#flop">‑flop</a>  • <a href="command-line-options.html#font">‑font</a>  • <a href="command-line-options.html#foreground">‑foreground</a>  • <a href="command-line-options.html#format">‑format</a>  • <a href="command-line-options.html#format_identify_">‑format[identify]</a>  • <a href="command-line-options.html#frame">‑frame</a>  • <a href="command-line-options.html#frame_import_">‑frame[import]</a>  • <a href="command-line-options.html#function">‑function</a>  • <a href="command-line-options.html#fuzz">‑fuzz</a>  • <a href="command-line-options.html#fx">‑fx</a>  • <a href="command-line-options.html#gamma">‑gamma</a>  • <a href="command-line-options.html#gaussian-blur">‑gaussian‑blur</a>  • <a href="command-line-options.html#geometry">‑geometry</a>  • <a href="command-line-options.html#gravity">‑gravity</a>  • <a href="command-line-options.html#grayscale">‑grayscale</a>  • <a href="command-line-options.html#green-primary">‑green‑primary</a>  • <a href="command-line-options.html#hald-clut">‑hald‑clut</a>  • <a href="command-line-options.html#help">‑help</a>  • <a href="command-line-options.html#highlight-color">‑highlight‑color</a>  • <a href="command-line-options.html#hough-lines">‑hough‑lines</a>  • <a href="command-line-options.html#iconGeometry">‑iconGeometry</a>  • <a href="command-line-options.html#iconic">‑iconic</a>  • <a href="command-line-options.html#identify">‑identify</a>  • <a href="command-line-options.html#ift">‑ift</a>  • <a href="command-line-options.html#immutable">‑immutable</a>  • <a href="command-line-options.html#implode">‑implode</a>  • <a href="command-line-options.html#insert">‑insert</a>  • <a href="command-line-options.html#intensity">‑intensity</a>  • <a href="command-line-options.html#intent">‑intent</a>  • <a href="command-line-options.html#interlace">‑interlace</a>  • <a href="command-line-options.html#interpolate">‑interpolate</a>  • <a href="command-line-options.html#interline-spacing">‑interline‑spacing</a>  • <a href="command-line-options.html#interword-spacing">‑interword‑spacing</a>  • <a href="command-line-options.html#kerning">‑kerning</a>  • <a href="command-line-options.html#kuwahara">‑kuwahara</a>  • <a href="command-line-options.html#label">‑label</a>  • <a href="command-line-options.html#lat">‑lat</a>  • <a href="command-line-options.html#layers">‑layers</a>  • <a href="command-line-options.html#level">‑level</a>  • <a href="command-line-options.html#level-colors">‑level‑colors</a>  • <a href="command-line-options.html#limit">‑limit</a>  • <a href="command-line-options.html#linear-stretch">‑linear‑stretch</a>  • <a href="command-line-options.html#linewidth">‑linewidth</a>  • <a href="command-line-options.html#liquid-rescale">‑liquid‑rescale</a>  • <a href="command-line-options.html#list">‑list</a>  • <a href="command-line-options.html#log">‑log</a>  • <a href="command-line-options.html#loop">‑loop</a>  • <a href="command-line-options.html#lowlight-color">‑lowlight‑color</a>  • <a href="command-line-options.html#magnify">‑magnify</a>  • <a href="command-line-options.html#map">‑map</a>  • <a href="command-line-options.html#map_stream_">‑map[stream]</a>  • <a href="command-line-options.html#mask">‑mask</a>  • <a href="command-line-options.html#mattecolor">‑mattecolor</a>  • <a href="command-line-options.html#median">‑median</a>  • <a href="command-line-options.html#mean-shift">‑mean‑shift</a>  • <a href="command-line-options.html#metric">‑metric</a>  • <a href="command-line-options.html#mode">‑mode</a>  • <a href="command-line-options.html#modulate">‑modulate</a>  • <a href="command-line-options.html#moments">‑moments</a>  • <a href="command-line-options.html#monitor">‑monitor</a>  • <a href="command-line-options.html#monochrome">‑monochrome</a>  • <a href="command-line-options.html#morph">‑morph</a>  • <a href="command-line-options.html#morphology">‑morphology</a>  • <a href="command-line-options.html#mosaic">‑mosaic</a>  • <a href="command-line-options.html#motion-blur">‑motion‑blur</a>  • <a href="command-line-options.html#name">‑name</a>  • <a href="command-line-options.html#negate">‑negate</a>  • <a href="command-line-options.html#noise">‑noise</a>  • <a href="command-line-options.html#normalize">‑normalize</a>  • <a href="command-line-options.html#opaque">‑opaque</a>  • <a href="command-line-options.html#ordered-dither">‑ordered‑dither</a>  • <a href="command-line-options.html#orient">‑orient</a>  • <a href="command-line-options.html#page">‑page</a>  • <a href="command-line-options.html#paint">‑paint</a>  • <a href="command-line-options.html#path">‑path</a>  • <a href="command-line-options.html#pause_animate_">‑pause[animate]</a>  • <a href="command-line-options.html#pause_import_">‑pause[import]</a>  • <a href="command-line-options.html#perceptible">‑perceptible</a>  • <a href="command-line-options.html#ping">‑ping</a>  • <a href="command-line-options.html#pointsize">‑pointsize</a>  • <a href="command-line-options.html#polaroid">‑polaroid</a>  • <a href="command-line-options.html#poly">‑poly</a>  • <a href="command-line-options.html#posterize">‑posterize</a>  • <a href="command-line-options.html#precision">‑precision</a>  • <a href="command-line-options.html#preview">‑preview</a>  • <a href="command-line-options.html#print">‑print</a>  • <a href="command-line-options.html#process">‑process</a>  • <a href="command-line-options.html#profile">‑profile</a>  • <a href="command-line-options.html#quality">‑quality</a>  • <a href="command-line-options.html#quantize">‑quantize</a>  • <a href="command-line-options.html#quiet">‑quiet</a>  • <a href="command-line-options.html#radial-blur">‑radial‑blur</a>  • <a href="command-line-options.html#raise">‑raise</a>  • <a href="command-line-options.html#random-threshold">‑random‑threshold</a>  • <a href="command-line-options.html#red-primary">‑red‑primary</a>  • <a href="command-line-options.html#regard-warnings">‑regard‑warnings</a>  • <a href="command-line-options.html#region">‑region</a>  • <a href="command-line-options.html#remap">‑remap</a>  • <a href="command-line-options.html#remote">‑remote</a>  • <a href="command-line-options.html#render">‑render</a>  • <a href="command-line-options.html#repage">‑repage</a>  • <a href="command-line-options.html#resample">‑resample</a>  • <a href="command-line-options.html#resize">‑resize</a>  • <a href="command-line-options.html#respect-parentheses">‑respect‑parentheses</a>  • <a href="command-line-options.html#reverse">‑reverse</a>  • <a href="command-line-options.html#roll">‑roll</a>  • <a href="command-line-options.html#rotate">‑rotate</a>  • <a href="command-line-options.html#sample">‑sample</a>  • <a href="command-line-options.html#sampling-factor">‑sampling‑factor</a>  • <a href="command-line-options.html#scale">‑scale</a>  • <a href="command-line-options.html#scene">‑scene</a>  • <a href="command-line-options.html#screen">‑screen</a>  • <a href="command-line-options.html#seed">‑seed</a>  • <a href="command-line-options.html#segment">‑segment</a>  • <a href="command-line-options.html#selective-blur">‑selective‑blur</a>  • <a href="command-line-options.html#separate">‑separate</a>  • <a href="command-line-options.html#sepia-tone">‑sepia‑tone</a>  • <a href="command-line-options.html#set">‑set</a>  • <a href="command-line-options.html#shade">‑shade</a>  • <a href="command-line-options.html#shadow">‑shadow</a>  • <a href="command-line-options.html#shared-memory">‑shared‑memory</a>  • <a href="command-line-options.html#sharpen">‑sharpen</a>  • <a href="command-line-options.html#shave">‑shave</a>  • <a href="command-line-options.html#shear">‑shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">‑sigmoidal‑contrast</a>  • <a href="command-line-options.html#silent">‑silent</a>  • <a href="command-line-options.html#similarity-threshold">‑similarity‑threshold</a>  • <a href="command-line-options.html#size">‑size</a>  • <a href="command-line-options.html#sketch">‑sketch</a>  • <a href="command-line-options.html#smush">‑smush</a>  • <a href="command-line-options.html#snaps">‑snaps</a>  • <a href="command-line-options.html#solarize">‑solarize</a>  • <a href="command-line-options.html#sparse-color">‑sparse‑color</a>  • <a href="command-line-options.html#splice">‑splice</a>  • <a href="command-line-options.html#spread">‑spread</a>  • <a href="command-line-options.html#statistic">‑statistic</a>  • <a href="command-line-options.html#stegano">‑stegano</a>  • <a href="command-line-options.html#stereo">‑stereo</a>  • <a href="command-line-options.html#storage-type">‑storage‑type</a>  • <a href="command-line-options.html#stretch">‑stretch</a>  • <a href="command-line-options.html#strip">‑strip</a>  • <a href="command-line-options.html#stroke">‑stroke</a>  • <a href="command-line-options.html#strokewidth">‑strokewidth</a>  • <a href="command-line-options.html#style">‑style</a>  • <a href="command-line-options.html#subimage-search">‑subimage‑search</a>  • <a href="command-line-options.html#swap">‑swap</a>  • <a href="command-line-options.html#swirl">‑swirl</a>  • <a href="command-line-options.html#synchronize">‑synchronize</a>  • <a href="command-line-options.html#taint">‑taint</a>  • <a href="command-line-options.html#text-font">‑text‑font</a>  • <a href="command-line-options.html#texture">‑texture</a>  • <a href="command-line-options.html#threshold">‑threshold</a>  • <a href="command-line-options.html#thumbnail">‑thumbnail</a>  • <a href="command-line-options.html#tile">‑tile</a>  • <a href="command-line-options.html#tile-offset">‑tile‑offset</a>  • <a href="command-line-options.html#tint">‑tint</a>  • <a href="command-line-options.html#title">‑title</a>  • <a href="command-line-options.html#transform">‑transform</a>  • <a href="command-line-options.html#transparent">‑transparent</a>  • <a href="command-line-options.html#transparent-color">‑transparent‑color</a>  • <a href="command-line-options.html#transpose">‑transpose</a>  • <a href="command-line-options.html#transverse">‑transverse</a>  • <a href="command-line-options.html#treedepth">‑treedepth</a>  • <a href="command-line-options.html#trim">‑trim</a>  • <a href="command-line-options.html#type">‑type</a>  • <a href="command-line-options.html#undercolor">‑undercolor</a>  • <a href="command-line-options.html#unique-colors">‑unique‑colors</a>  • <a href="command-line-options.html#units">‑units</a>  • <a href="command-line-options.html#unsharp">‑unsharp</a>  • <a href="command-line-options.html#update">‑update</a>  • <a href="command-line-options.html#verbose">‑verbose</a>  • <a href="command-line-options.html#version">‑version</a>  • <a href="command-line-options.html#view">‑view</a>  • <a href="command-line-options.html#vignette">‑vignette</a>  • <a href="command-line-options.html#virtual-pixel">‑virtual‑pixel</a>  • <a href="command-line-options.html#visual">‑visual</a>  • <a href="command-line-options.html#watermark">‑watermark</a>  • <a href="command-line-options.html#wave">‑wave</a>  • <a href="command-line-options.html#weight">‑weight</a>  • <a href="command-line-options.html#white-point">‑white‑point</a>  • <a href="command-line-options.html#white-threshold">‑white‑threshold</a>  • <a href="command-line-options.html#window">‑window</a>  • <a href="command-line-options.html#window-group">‑window‑group</a>  • <a href="command-line-options.html#write">‑write</a>  </p>
-
-<p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="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="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="adaptive-blur"></a>-adaptive-blur <var>radius</var>[x<var>sigma</var>]</h3>
-</div>
-
-<p class="magick-description">Adaptively blur pixels, with decreasing effect near edges.</p>
-
-<p>A Gaussian operator of the given radius and standard deviation (<var>sigma</var>) is used. If <var>sigma</var> is not given it
-defaults to 1.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="adaptive-resize"></a>-adaptive-resize <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Resize the image using data-dependent triangulation.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <a href="command-line-options.html#adaptive-resize">-adaptive-resize</a>
-option defaults to data-dependent triangulation.  Use the <a href="command-line-options.html#filter">-filter</a> to choose a different resampling algorithm.
-Offsets, if present in the geometry string, are ignored, and the <a href="command-line-options.html#gravity">-gravity</a> option has no effect.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="adaptive-sharpen"></a>-adaptive-sharpen <var>radius</var>[x<var>sigma</var>]</h3>
-</div>
-
-<p class="magick-description">Adaptively sharpen pixels, with increasing effect near edges.</p>
-
-<p>A Gaussian operator of the given radius and standard deviation
-(<var>sigma</var>) is used. If <var>sigma</var> is not given it
-defaults to 1.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="adjoin"></a>-adjoin</h3>
-</div>
-
-<p class="magick-description">Join images into a single multi-image file.</p>
-
-<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="command-line-options.html#scene">-scene</a> number before the suffix, in order to
-make distinct names for each image. </p>
-
-<p>Use <a href="command-line-options.html#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="command-line-options.html#adjoin">+adjoin</a> and are used to specify
-where the <a href="command-line-options.html#scene">-scene</a> number is placed in the filenames. These
-strings, such as '<code>%d</code>' or '<code>%03d</code>', are familiar to those
-who have used the standard <code>printf()</code>' C-library function. As an
-example, the command</p>
-
-<pre>
-convert logo: rose: -morph 15 my%02dmorph.jpg
-</pre>
-
-<p>will create a sequence of 17 images (the two given plus 15 more created by
-<a href="command-line-options.html#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...</p>
-<ol>
-<li>the output image's file format does not allow multi-image files,</li>
-<li>the <a href="command-line-options.html#adjoin">+adjoin</a> option is given, or</li>
-<li>a printf() integer format string (eg: "%d") is present in the output
- filename.</li>
-</ol>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="affine"></a>-affine
-  <var>s<sub>x</sub></var>,<var>r<sub>x</sub></var>,<var>r<sub>y</sub></var>,<var>s<sub>y</sub></var>[,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var>]</h3>
-</div>
-
-<p class="magick-description">Set the drawing transformation matrix for combined rotating and scaling.</p>
-
-<p>This option sets a transformation matrix, for use by subsequent <a href="command-line-options.html#draw">-draw</a> or <a href="command-line-options.html#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 (<var>x'</var>, <var>y'</var>) of a pixel at
-position (<var>x</var>, <var>y</var>) in the original
-image are calculated using the following matrix equation.</p>
-
-<p class="text-center"><img class="img-thumbnail" alt="affine transformation" src="../images/affine.png"> </p>
-
-<p> The size of the resulting image is that of the smallest rectangle that
-contains the transformed source image.  The parameters 
-<var>t<sub>x</sub></var> and <var>t<sub>y</sub></var>
-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 <var>x</var> and <var>y</var> directions
-are rightward and downward, resp.; positive rotation is clockwise.</p>
-
-<p> If the translation coefficients <var>t<sub>x</sub></var> and 
-<var>t<sub>y</sub></var> are omitted they default to 0,0. Therefore,
-four parameters suffice for rotation and scaling without translation.</p>
-
-<p>Scaling by the factors <var>s<sub>x</sub></var> and 
-<var>s<sub>y</sub></var> in the <var>x</var> and <var>y</var> directions,
-respectively, is accomplished with the following.</p>
-
-<p>See <a href="command-line-options.html#transform">-transform</a>, and the <a href="command-line-options.html#distort">-distort</a> method '<code>Affineprojection</code> for more
-information </p>
-
-
-<pre>
--affine <var>s<sub>x</sub></var>,0,0,<var>s<sub>y</sub></var>
-</pre>
-
-<p>Translation by a displacement (<var>t<sub>x</sub></var>, <var>t<sub>y</sub></var>) is accomplished like so:</p>
-
-<pre>
--affine 1,0,0,1,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var>
-</pre>
-
-<p>Rotate clockwise about the origin (the upper left-hand corner) by an angle
-<var>a</var> by letting <var>c</var> = cos(<var>a</var>), <var>s</var>
-= sin(<var>a</var>), and using the following.</p>
-
-<pre>
--affine <var>c</var>,<var>s</var>,-<var>s</var>,<var>c</var>
-</pre>
-
-<p>The cumulative effect of a sequence of <a href="command-line-options.html#affine">-affine</a>
-transformations can be accomplished by instead by a single <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="alpha"></a>-alpha <var>type</var></h3>
-</div>
-
-<p class="magick-description">Gives control of the alpha/matte channel of an image.</p>
-
-<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 <var>type</var> from the list below.</p>
-
-<dl class="dl-horizontal">
-    <dt>Activate</dt>
-    <dd>
-       Enable the image's transparency channel. Note normally Set
-       should be used instead of this, unless you specifically need to
-       preserve existing (but specifically turned Off) transparency
-       channel. </dd>
-
-    <dt>Associate</dt>
-    <dd>
-       associate the alpha channel with the image.</dd>
-
-    <dt>Deactivate</dt>
-    <dd>
-       Disables the image's transparency channel. Does not delete or change the
-       existing data, just turns off the use of that data.</dd>
-
-    <dt>Disassociate</dt>
-    <dd>
-       disassociate the alpha channel from the image.</dd>
-
-    <dt>Set</dt>
-    <dd>
-       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.</dd>
-
-    <dt>Opaque</dt>
-    <dd>
-       Enables the alpha/matte channel and forces it to be fully opaque.
-       </dd>
-
-    <dt>Transparent</dt>
-    <dd>
-       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. </dd>
-
-    <dt>Extract</dt>
-    <dd>
-       Copies the alpha channel values into all the color channels and turns
-       'Off' 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 'Copy'.
-       </dd>
-
-    <dt>Copy</dt>
-    <dd>
-       Turns 'On' 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.  </dd>
-
-    <dt>Shape</dt>
-    <dd>
-       As per 'Copy' but also colors the resulting shape mask with
-       the current background color.  That is the RGB color channels is
-       replaced, with appropriate alpha shape.
-       </dd>
-
-    <dt>Remove</dt>
-    <dd>
-       Composite the image over the background color.
-       </dd>
-
-    <dt>Background</dt>
-    <dd>
-       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.
-       </dd>
-</dl>
-
-<p>Note that while the obsolete <code>+matte</code> operation was the
-same as "<code><a href="command-line-options.html#alpha">-alpha</a> Off</code>", the <code>
-&gt;-matte</code> operation was the same as "<code><a href="command-line-options.html#alpha">-alpha</a>
-Set</code>" and not "<code><a href="command-line-options.html#alpha">-alpha</a> On</code>".  </p>
-
-
-<div style="margin: auto;">
- <h3 class="magick-header"><a id="annotate"></a>
- -annotate <var>degrees</var> <var>text</var><br>
- -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br> -annotate <var>Xdegrees</var>x<var>Ydegrees</var> {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3>
-</div>
-
-<p class="magick-description">Annotate an image with text</p>
-
-<p>This is a convenience for annotating an image with text. For more precise
-control over text annotations, use <a href="command-line-options.html#draw">-draw</a>.</p>
-
-
-<p>The values <var>Xdegrees</var> and <var>Ydegrees</var>
-control the shears applied to the text, while <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are offsets that give the location of the text relative any <a href="command-line-options.html#gravity">-gravity</a> setting and defaults to the upper left corner of the image.</p>
-
-<p>Using <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>
-or <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>x<var>degrees</var> produces an unsheared rotation of the text. The
-direction of the rotation is positive, which means a clockwise rotation if <var>degrees</var> is positive. (This conforms to the usual mathematical
-convention once it is realized that the positive <var>y</var>–direction is
-conventionally considered to be <var>downward</var> for images.)</p>
-
-<p>The new (transformed) coordinates (<var>x'</var>, <var>y'</var>) of a pixel at position (<var>x</var>, <var>y</var>) in the image are calculated using the following matrix
-equation.</p>
-
-<p class="text-center"><img class="img-thumbnail" alt="annotate transformation" src="../images/annotate.png"></p>
-
-<p>If <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> 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="command-line-options.html#gravity">-gravity</a> option in this
-case leads to nice results.</p>
-
-<p>Text is any UTF-8 encoded character sequence.  If <var>text</var>
-is of the form '@mytext.txt', the text is read from the file
-<code>mytext.txt</code>.  Text  in a file is taken literally; no embedded
-formatting characters are recognized.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="antialias"></a>-antialias</h3>
-</div>
-
-<p class="magick-description">Enable/Disable of the rendering of anti-aliasing pixels when drawing fonts and lines.</p>
-
-<p>By default, objects (e.g. text, lines, polygons, etc.) are antialiased when
-drawn.  Use <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="append"></a>-append</h3>
-</div>
-
-<p class="magick-description">Join current images vertically or horizontally.</p>
-
-<p>This option creates a single longer image, by joining all the current
-images in sequence top-to-bottom. Use <a href="command-line-options.html#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="command-line-options.html#background">-background</a> color setting, and their
-position relative to each other can be controlled by the current <a href="command-line-options.html#gravity">-gravity</a> setting. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="attenuate"></a>-attenuate <var>value</var></h3>
-</div>
-
-<p class="magick-description">Lessen (or intensify) when adding noise to an image.</p>
-
-<p>If unset the value is equivalent to 1.0, or a maximum noise addition</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="authenticate"></a>-authenticate <var>password</var></h3>
-</div>
-
-<p class="magick-description">Decrypt a PDF with a password.</p>
-
-<p>Use this option to supply a <var>password</var> 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="command-line-options.html#encipher">-encipher</a>
-and <a href="command-line-options.html#decipher">-decipher</a>. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="auto-gamma"></a>-auto-gamma</h3>
-</div>
-
-<p class="magick-description">Automagically adjust gamma level of image.</p>
-
-<p>This calculates the mean values of an image, then applies a calculated  <a href="command-line-options.html#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="command-line-options.html#channel">-channel</a> setting, (including the
-'<var>sync</var>' flag for channel synchronization), to determine which color
-values is used and modified. As the default <a href="command-line-options.html#channel">-channel</a> setting is '<var>RGB,sync</var>', channels are modified
-together by the same gamma value, preserving colors. </p>
-
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="auto-level"></a>-auto-level</h3>
-</div>
-
-<p class="magick-description">Automagically adjust color levels of image.</p>
-
-<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="command-line-options.html#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="command-line-options.html#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="command-line-options.html#normalize">-normalize</a>, <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a>, and <a href="command-line-options.html#linear-stretch">-linear-stretch</a> operators, but without 'histogram binning' or 'clipping'
-problems that these operators may have. That is <a href="command-line-options.html#auto-level">-auto-level</a> is the perfect or ideal version these operators. </p>
-
-<p>It uses the <a href="command-line-options.html#channel">-channel</a> setting, (including the
-special '<var>sync</var>' flag for channel synchronization), to determine
-which color values are used and modified. As the default <a href="command-line-options.html#channel">+channel</a> setting is '<var>RGB,sync</var>', the
-'<var>sync</var>' ensures that the color channels will are modified
-together by the same gamma value, preserving colors, and ignoring
-transparency. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="auto-orient"></a>-auto-orient</h3>
-</div>
-
-<p class="magick-description">adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
-
-<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
-camera, 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 EXIF profile was previously stripped, the  <a href="command-line-options.html#auto-orient">-auto-orient</a> operator will do nothing. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="average"></a>-average</h3>
-</div>
-
-<p class="magick-description">Average a set of images.</p>
-
-<p>An error results if the images are not identically sized.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="backdrop"></a>-backdrop</h3>
-</div>
-
-<p class="magick-description">Display the image centered on a backdrop.</p>
-
-<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="command-line-options.html#fill">-fill</a> option.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="background"></a>-background <var>color</var></h3>
-</div>
-
-<p class="magick-description">Set the background color.</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option. The default background color (if none is
-specified or found in the image) is white.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="bench"></a>-bench <var>iterations</var></h3>
-</div>
-
-<p class="magick-description">Measure performance.</p>
-
-<p>Repeat the entire command for the given number of <var>iterations</var> 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>
-
-<pre>
--&gt; convert logo: -resize 1000% -bench 5 logo.png
-Performance[4]: 5i 0.875657ips 6.880u 0:05.710
-</pre>
-
-<p>In this example, 5 iterations were completed at 0.875657 iterations per
-second, using 4 threads and 6.88 seconds of the user's allotted time, for
-a total elapsed time of 5.71 seconds.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="bias"></a>-bias <var>value</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">Add bias when convolving an image.</p>
-
-<p>This option shifts the output of <a href="command-line-options.html#convolve">‑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="command-line-options.html#bias">‑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="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;">
-  <h3 class="magick-header"><a id="black-point-compensation"></a>-black-point-compensation</h3>
-</div>
-
-<p class="magick-description">Use black point compensation.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="black-threshold"></a>-black-threshold <var>value</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.</p>
-
-<p> The threshold value can be given as a percentage or as an absolute integer
-value within [0, <var>QuantumRange</var>] corresponding to the
-desired <a href="command-line-options.html#channel">‑channel</a> value. See <a href="command-line-options.html#threshold">‑threshold</a>for more details on thresholds and resulting values.  </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="blend"></a>-blend <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">blend an image into another by the given absolute value or percent.</p>
-
-<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
-<code>-blend 30%</code> merges 30% of the 'source' image with 70% of the
-'destination' image.  Thus it is equivalent to <code>-blend 30x70%</code>.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="blue-primary"></a>-blue-primary <var>x</var>,<var>y</var></h3>
-</div>
-
-<p class="magick-description">Set the blue chromaticity primary point.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="blue-shift"></a>-blue-shift <var>factor</var></h3>
-</div>
-
-<p class="magick-description">simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5</p>
-
-<div style="margin: auto;">
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="blur"></a>-blur <var>radius</var><br>-blur <var>radius</var>x<var>sigma</var></h3>
-</div>
-
-<p class="magick-description">Reduce image noise and reduce detail levels.</p>
-
-<p>Convolve the image with a Gaussian or normal distribution using the given
-<var>Sigma</var> value.  The formula is:</p>
-
-<p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"></p>
-
-<p>The <var>Sigma</var> value is the important argument, and
-determines the actual amount of blurring that will take place. </p>
-
-<p>The <var>Radius</var> 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 <var>Radius</var> the slower the
-operation is. However too small a <var>Radius</var>, and sever
-aliasing effects may result.  As a guideline, <var>Radius</var>
-should be at least twice the <var>Sigma</var> value, though three
-times will produce a more accurate result. </p>
-
-<p>This option differs from <a href="command-line-options.html#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="command-line-options.html#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;">
-  <h3 class="magick-header">-blur <var>Width</var>[x<var>Height</var>[+<var>Angle</var>]]</h3>
-</div>
-
-<p class="magick-description">Variably blur an image according to the overlay mapping.</p>
-
-<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 <var>Width</var> and <var>Height</var>. The <var>Height</var>
-defaults to the <var>Width</var> for a normal circular Gaussian
-weighting.  The <var>Angle</var> will rotate the ellipse from
-horizontal clock-wise.  </p>
-
-<p>The <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="border"></a>-border <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Surround the image with a border of color. </p>
-
-<p>Set the width and height using the <var>size</var> portion of the
-<var>geometry</var> argument.  See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets are
-ignored. </p>
-
-<p>As of IM 6.7.8-8, the <var>geometry</var> arguments behave as follows:</p>
-
-<dl class="dl-horizontal">
-<dt><var>value</var></dt>
-<dd>value is added to both left/right and top/bottom</dd>
-<dt><var>value-x</var><kbd>x</kbd></dt>
-<dd>value-x is added only to left/right and top/bottom are unchanged</dd>
-<dt><kbd>x</kbd><var>value-y</var></dt>
-<dd>value-y is added only to top/bottom and left/right are unchanged</dd>
-<dt><var>value-x</var><kbd>x</kbd><var>value-y</var></dt>
-<dd>value-x is added to left/right and value-y added to top/bottom</dd>
-<dt><var>value-x</var><kbd>x</kbd>0</dt>
-<dd>value-x is added only to left/right and top/bottom are unchanged</dd>
-<dt>0<kbd>x</kbd><var>value-y</var></dt>
-<dd>value-y is added only to top/bottom and left/right are unchanged</dd>
-<dt><var>value</var>%</dt>
-<dd>value % of width is added to left/right and value % of height is added to top/bottom</dd>
-<dt><var>value-x</var><kbd>x</kbd>%</dt>
-<dd>value-x % of width is added to left/right and to top/bottom</dd>
-<dt>x<var>value-y</var>%</dt>
-<dd>value-y % of height is added to top/bottom and to left/right</dd>
-<dt><var>value-x</var>%<kbd>x</kbd><var>value-y</var>%</dt>
-<dd>value-x % of width is added to left/right and value-y % of height is added to top/bottom</dd>
-<dt><var>value-x</var>%<kbd>x</kbd>0%</dt>
-<dd>value-x % of width is added to left/right and top/bottom are unchanged</dd>
-<dt>0%<kbd>x</kbd><var>value-y</var>%</dt>
-<dd>value-y % of height is added to top/bottom and left/right are unchanged</dd>
-</dl>
-
-<p>Set the border color by preceding with the <a href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
-
-<p>The <a href="command-line-options.html#border">-border</a> operation is affected by the current <a href="command-line-options.html#compose">-compose</a> setting and assumes that this is using the default
-'<code>Over</code>' composition method.  It generates an image of the appropriate
-size colors by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> before
-overlaying the original image in the center of this net image.  This means that
-with the default compose method of '<code>Over</code>' any transparent parts may
-be replaced by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
-<p>See also the <a href="command-line-options.html#frame">-frame</a> option, which has more
-functionality.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="bordercolor"></a>-bordercolor <var>color</var></h3>
-</div>
-
-<p class="magick-description">Set the border color.</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
-
-<p>The default border color is <code>#DFDFDF</code>, <span style="background-color: #dfdfdf;">this shade of gray</span>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="borderwidth"></a>-borderwidth <var>geometry</var> </h3>
-</div>
-
-<p class="magick-description">Set the border width.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="brightness-contrast"></a>-brightness-contrast <var>brightness</var><br>-brightness-contrast <var>brightness</var>{x<var>contrast</var>}{<var>%</var>}}</h3>
-</div>
-
-<p class="magick-description">Adjust the brightness and/or contrast of the image.</p>
-
-<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="command-line-options.html#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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="cache"></a>-cache <var>threshold</var></h3>
-</div>
-
-<p class="magick-description">(This option has been replaced by the <a href="command-line-options.html#limit">-limit</a> option).</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="canny"></a>-canny <var>radius</var><br>-canny <var>radius</var>x<var>sigma</var>{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3>
-</div>
-
-<p class="magick-description">Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.</p>
-
-<p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>x<var>sigma</var> controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="caption"></a>-caption <var>string</var></h3>
-</div>
-
-<p class="magick-description">Assign a caption to an image.</p>
-
-<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
-"<code><a href="command-line-options.html#set">-set</a> caption</code>". </p>
-
-<p>The caption can contain special format characters listed in the <a href="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 <var>string</var> is <var>@</var>, 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 is not visible on the image itself. To do that use the
-<a href="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> options
-instead.</p>
-
-<p>For example,</p>
-
-<pre>
--caption "%m:%f %wx%h"  bird.miff
-</pre>
-
-<p>produces an image caption of <code>MIFF:bird.miff 512x480</code> (assuming
-that the image <code>bird.miff</code> has a width of 512 and a height of
-480.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="cdl"></a>-cdl <var>filename</var></h3>
-</div>
-
-<p class="magick-description">color correct with a color decision list.</p>
-
-<p>Here is an example color correction collection:</p>
-
-<pre>
-&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;">
-  <h3 class="magick-header"><a id="channel"></a>-channel <var>type</var></h3>
-</div>
-
-<p class="magick-description">Specify those image color channels to which subsequent operators are limited.</p>
-
-<p>Choose from: <code>Red</code>, <code>Green</code>, <code>Blue</code>,
-<code>Alpha</code>, <code>Gray</code>, <code>Cyan</code>, <code>Magenta</code>,
-<code>Yellow</code>, <code>Black</code>, <code>Opacity</code>,
-<code>Index</code>, <code>RGB</code>, <code>RGBA</code>, <code>CMYK</code>, or
-<code>CMYKA</code>.</p>
-
-<p>The channels above can also be specified as a comma-separated list or can be
-abbreviated as a concatenation of the letters '<code>R</code>', '<code>G</code>',
-'<code>B</code>', '<code>A</code>', '<code>O</code>', '<code>C</code>',
-'<code>M</code>', '<code>Y</code>', '<code>K</code>'.
-
-For example, to only select the <code>Red</code> and <code>Blue</code> channels
-you can either use </p>
-<pre>
--channel Red,Blue
-</pre>
-<p>or you can use the short hand form</p>
-<pre>
--channel RB
-</pre>
-
-<p>All the channels that are present in an image can be specified using the
-special channel type <code>All</code>. 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 an extra flag can be specified,
-'<code>Sync</code>'.  This is turned on by default and if set means that
-operators that understand this flag should perform: cross-channel
-synchronization 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="command-line-options.html#channel">-channel</a>
-setting) completely independently from each other. </p>
-
-<p>For example for operators such as <a href="command-line-options.html#auto-level">-auto-level</a> and
-<a href="command-line-options.html#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="command-line-options.html#morphology">-morphology</a> '<code>Convolve</code>' method
-and the <a href="command-line-options.html#compose">-compose</a> mathematical methods, also understands
-the '<code>Sync</code>' 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 synchronous, and
-treats transparency as special, unless the <a href="command-line-options.html#channel">-channel</a>
-setting is modified so as to remove the effect of the '<code>Sync</code>' 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="command-line-options.html#list">-list
-channel</a>.</p>
-
-<p>By default, ImageMagick sets <a href="command-line-options.html#channel">-channel</a> to the value
-'<code>RGBK,sync</code>', 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 an understanding of transparency
-(depending on the operation being applied).  The 'plus' form <a href="command-line-options.html#channel">+channel</a> will reset the value back to this default. </p>
-
-<p>Options that are affected by the <a href="command-line-options.html#channel">-channel</a> setting
-include the following.
-
-<a href="command-line-options.html#auto-gamma">-auto-gamma</a>,
-<a href="command-line-options.html#auto-level">-auto-level</a>,
-<a href="command-line-options.html#black-threshold">-black-threshold</a>,
-<a href="command-line-options.html#blur">-blur</a>,
-<a href="command-line-options.html#clamp">-clamp</a>,
-<a href="command-line-options.html#clut">-clut</a>,
-<a href="command-line-options.html#combine">-combine</a>,
-<a href="command-line-options.html#composite">-composite</a> (Mathematical compose methods only),
-<a href="command-line-options.html#convolve">-convolve</a>,
-<a href="command-line-options.html#contrast-stretch">-contrast-stretch</a>,
-<a href="command-line-options.html#evaluate">-evaluate</a>,
-<a href="command-line-options.html#function">-function</a>,
-<a href="command-line-options.html#fx">-fx</a>,
-<a href="command-line-options.html#gaussian-blur">-gaussian-blur</a>,
-<a href="command-line-options.html#hald-clut">-hald-clut</a>,
-<a href="command-line-options.html#motion-blur">-motion-blur</a>,
-<a href="command-line-options.html#morphology">-morphology</a>,
-<a href="command-line-options.html#negate">-negate</a>,
-<a href="command-line-options.html#normalize">-normalize</a>,
-<a href="command-line-options.html#ordered-dither">-ordered-dither</a>,
-<a href="command-line-options.html#radial-blur">-radial-blur</a>,
-<a href="command-line-options.html#random-threshold">-random-threshold</a>,
-<a href="command-line-options.html#separate">-separate</a>,
-<a href="command-line-options.html#threshold">-threshold</a>, and
-<a href="command-line-options.html#white-threshold">-white-threshold</a>.
-</p>
-
-<p>Warning, some operators behave differently when the <a href="command-line-options.html#channel">+channel</a> default setting is in effect, verses ANY user defined <a href="command-line-options.html#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="command-line-options.html#threshold">-threshold</a> will by default gray-scale
-the image before thresholding, if no <a href="command-line-options.html#channel">-channel</a> setting
-has been defined. This is not 'Sync flag controlled, yet. </p>
-
-<p>Also some operators such as <a href="command-line-options.html#blur">-blur</a>, <a href="command-line-options.html#gaussian-blur">-gaussian-blur</a>, will modify their handling of the
-color channels if the '<code>alpha</code>' channel is also enabled by <a href="command-line-options.html#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="command-line-options.html#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="command-line-options.html#channel">-channel</a> setting tells
-the operator to apply the operation using alpha channels. The <a href="command-line-options.html#clut">-clut</a> operator is a good example of this. </p>
-
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="charcoal"></a>-charcoal <var>factor</var></h3>
-</div>
-
-<p class="magick-description">Simulate a charcoal drawing.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="chop"></a>-chop <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Remove pixels from the interior of an image.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>width</var>
-and <var>height</var> given in the of the <var>size</var>
-portion of the <var>geometry</var> argument give the number of
-columns and rows to remove. The <var>offset</var> portion of
-the <var>geometry</var> argument is influenced by
-a <a href="command-line-options.html#gravity">-gravity</a> setting, if present.</p>
-
-<p>The <a href="command-line-options.html#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="command-line-options.html#gravity">-gravity</a> setting and zero
-offsets so as to remove a single edge from an image.  Compare this to <a href="command-line-options.html#shave">-shave</a> which removes equal numbers of pixels from opposite
-sides of the image.  </p>
-
-<p>Using <a href="command-line-options.html#chop">-chop</a> effectively undoes the results of a <a href="command-line-options.html#splice">-splice</a> that was given the same <var>geometry</var> and <a href="command-line-options.html#gravity">-gravity</a> settings. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clamp"></a>-clamp</h3>
-</div>
-
-<p class="magick-description">set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clip"></a>-clip</h3>
-</div>
-
-<p class="magick-description">Apply the clipping path if one is present.</p>
-
-<p>If a clipping path is present, it is applied to subsequent operations.</p>
-
-<p>For example, in the command</p>
-
-<pre>
-convert cockatoo.tif -clip -negate negated.tif
-</pre>
-
-<p>only the pixels within the clipping path are negated.</p>
-
-<p>The <a href="command-line-options.html#clip">-clip</a> feature requires SVG support. If the SVG
-delegate library is not present, the option is ignored.</p>
-
-<p>Use <a href="command-line-options.html#clip">+clip</a> to disable clipping for subsequent operations.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clip-mask"></a>-clip-mask</h3>
-</div>
-
-<p class="magick-description">Clip the image as defined by this mask.</p>
-
-<p>Use the alpha channel of the current image as a mask.  Any areas that is
-white is not modified by any of the 'image processing operators' that follow,
-until the mask is removed. Pixels in the black areas of the clip mask are
-modified per the requirements of the operator. </p>
-
-<p>In some ways this is similar to (though not the same) as defining
-a rectangular <a href="command-line-options.html#region">-region</a>, or using the negative of the
-mask (third) image in a three image <a href="command-line-options.html#composite">-composite</a>,
-operation. </p>
-
-<p>Use <a href="command-line-options.html#clip-mask">+clip-mask</a> to disable clipping for subsequent operations.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clip-path"></a>-clip-path <var>id</var></h3>
-</div>
-
-<p class="magick-description">Clip along a named path from the 8BIM profile.</p>
-
-<p>This is identical to <a href="command-line-options.html#clip">-clip</a> except choose a specific clip path in the event the image has more than one path available. </p>
-
-<p>Use <a href="command-line-options.html#clip-path">+clip-path</a> to disable clipping for subsequent operations.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clone"></a>-clone <var>index(s)</var></h3>
-</div>
-
-<p class="magick-description">make a clone of an image (or images).</p>
-
-<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, <code>−1</code>
-represents the last image of the sequence.  Specify a range of images with a
-dash (e.g. <code>0−4</code>).  Separate multiple indexes with commas but no
-spaces (e.g. <code>0,2,5</code>).  A value of '<code>0−−1</code> will
-effectively clone all the images. </p>
-
-<p>The <a href="command-line-options.html#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
-'<code>−1</code>'. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="clut"></a>-clut</h3>
-</div>
-
-<p class="magick-description">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.</p>
-
-<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="command-line-options.html#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 '<code>bilinear</code>' and
-'<code>bicubic</code>' interpolation settings, which give smooth color
-gradients, and the '<code>integer</code>' 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="command-line-options.html#channel">-channel</a>
-setting will have their values replaced. In particular, since the default <a href="command-line-options.html#channel">-channel</a> setting is <code>RGB</code>, this means that
-transparency (alpha/matte channel) is not affected, unless the <a href="command-line-options.html#channel">-channel</a> setting is modified. When the alpha channel is
-set, it is treated by the <a href="command-line-options.html#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="command-line-options.html#alpha">-alpha</a> is turned 'off') but the <a href="command-line-options.html#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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="coalesce"></a>-coalesce</h3>
-</div>
-
-<p class="magick-description">Fully define the look of each frame of an GIF animation sequence, to form a 'film strip' animation.</p>
-
-<p>Overlay each image in an image sequence according to
-its <a href="command-line-options.html#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="command-line-options.html#layers">-layers</a> method '<code>optimize</code>', although
-there is no guarantee that the restored GIF animation optimization is
-better than the original. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="colorize"></a>-colorize <var>value</var></h3>
-</div>
-
-<p class="magick-description">Colorize the image by an amount specified by <var>value</var> using the color specified by the most recent <a href="command-line-options.html#fill">-fill</a> setting.</p>
-
-<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., <code>-colorize 0,0,50</code>).</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="colormap"></a>-colormap <var>type</var></h3>
-</div>
-
-<p class="magick-description">Define the colormap type.</p>
-
-<p>The <var>type</var> can be  <code>shared</code> or <code>private</code>.</p>
-
-<p>This option only applies when the default X server visual
-is <code>PseudoColor</code> or <code>GrayScale</code>. Refer
-to <a href="command-line-options.html#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 <code>private</code> is chosen, the image colors appear exactly
-as they are defined. However, other clients may go <var>technicolor</var>
-when the image colormap is installed.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="colors"></a>-colors <var>value</var></h3>
-</div>
-
-<p class="magick-description">Set the preferred number of colors in the image.</p>
-
-<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 <var>value</var> 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="quantize.html">
-color reduction algorithm</a> for more details.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="color-matrix"></a>-color-matrix <var>matrix</var></h3>
-</div>
-
-<p class="magick-description">apply color correction to the image.</p>
-
-<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>
-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;">
-  <h3 class="magick-header"><a id="colorspace"></a>-colorspace <var>value</var></h3>
-</div>
-
-<p class="magick-description">Set the image colorspace.</p>
-
-<p>Choices are:</p>
-
-<pre>
-CMY          CMYK         Gray         HCL
-HCLp         HSB          HSI          HSL
-HSV          HWB          Lab          LCHab
-LCHuv        LMS          Log          Luv
-OHTA         Rec601YCbCr  Rec709YCbCr  RGB
-scRGB        sRGB         Transparent  xyY
-XYZ          YCbCr        YCC          YDbDr
-YIQ          YPbPr        YUV
-</pre>
-
-<p>To print a complete list of colorspaces, use <a href="command-line-options.html#list">-list colorspace</a>.</p>
-
-<p>For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the <a href="command-line-options.html#profile">-profile</a> option.  Note, ImageMagick assumes the sRGB colorspace if the image format does not indicate otherwise.  For colorspace conversion, the gamma function is first removed to produce linear RGB.</p>
-
-<table class="table table-condensed table-striped">
-        <caption>Conversion of RGB to Other Color Spaces</caption>
-        <tr><th valign="middle">CMY</th></tr>
-        <tr><td valign="middle">C=<var>QuantumRange</var>−R</td></tr>
-        <tr><td valign="middle">M=<var>QuantumRange</var>−G</td></tr>
-        <tr><td valign="middle">Y=<var>QuantumRange</var>−B</td></tr>
-        <tr><th valign="middle">CMYK — starts with CMY from above</th></tr>
-        <tr><td valign="middle">K=min(C,Y,M)</td></tr>
-        <tr><td valign="middle">C=<var>QuantumRange</var>*(C−K)/(<var>QuantumRange</var>−K)</td></tr>
-        <tr><td valign="middle">M=<var>QuantumRange</var>*(M−K)/(<var>QuantumRange</var>−K)</td></tr>
-        <tr><td valign="middle">Y=<var>QuantumRange</var>*(Y−K)/(<var>QuantumRange</var>−K)</td></tr>
-
-        <tr><th valign="middle">Gray</th></tr>
-        <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>
-
-        <tr><th valign="middle">HSB — Hue, Saturation, Brightness; like a cone peak downward</th></tr>
-        <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
-        <tr><td valign="middle">S=distance from axis outward</td></tr>
-        <tr><td valign="middle">B=distance along axis from bottom upward; B=max(R,G,B); <var>intensity-like</var></td></tr>
-
-        <tr><th valign="middle">HSL — Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom</th></tr>
-        <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
-        <tr><td valign="middle">S=distance from axis outward</td></tr>
-        <tr><td valign="middle">L=distance along axis from bottom upward; L=0.5*max(R,G,B) + 0.5*min(R,G,B); <var>intensity-like</var></td></tr>
-
-        <tr><th valign="middle">HWB — Hue, Whiteness, Blackness</th></tr>
-        <tr><td valign="middle">Hue (complicated equation)</td></tr>
-        <tr><td valign="middle">Whiteness (complicated equation)</td></tr>
-        <tr><td valign="middle">Blackness (complicated equation)</td></tr>
-
-        <tr><th valign="middle">LAB</th></tr>
-        <tr><td valign="middle">L (complicated equation relating X,Y,Z)</td></tr>
-        <tr><td valign="middle">A (complicated equation relating X,Y,Z)</td></tr>
-        <tr><td valign="middle">B (complicated equation relating X,Y,Z)</td></tr>
-
-        <tr><th valign="middle">LOG</th></tr>
-        <tr><td valign="middle">I1 (complicated equation involving logarithm of R)</td></tr>
-        <tr><td valign="middle">I2 (complicated equation involving logarithm of G)</td></tr>
-        <tr><td valign="middle">I3 (complicated equation involving logarithm of B)</td></tr>
-
-        <tr><th valign="middle">OHTA — approximates principal components transformation</th></tr>
-        <tr><td valign="middle">I1=0.33333*R+0.33334*G+0.33333*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">I2=(0.50000*R+0.00000*G−0.50000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">I3=(−0.25000*R+0.50000*G−0.25000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">Rec601Luma</th></tr>
-        <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>
-
-        <tr><th valign="middle">Rec601YCbCr</th></tr>
-        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">Cb=(−0.168736*R-0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">Rec709Luma</th></tr>
-        <tr><td valign="middle">Gray=0.212656*R+0.715158*G+0.072186*B</td></tr>
-
-        <tr><th valign="middle">Rec709YCbCr</th></tr>
-        <tr><td valign="middle">Y=0.212656*R+0.715158*G+0.072186*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">Cb=(−0.114572*R−0.385428*G+0.500000*B)+(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">Cr=(0.500000*R−0.454153*G−0.045847*B)+(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">sRGB</th></tr>
-        <tr><td valign="middle">if R ≤ .0.0031308 then Rs=R/12.92 else Rs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>
-        <tr><td valign="middle">if G ≤ .0.0031308 then Gs=B/12.92 else Gs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>
-        <tr><td valign="middle">if B ≤ .0.0031308 then Bs=B/12.92 else Bs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>
-
-        <tr><th valign="middle">XYZ</th></tr>
-        <tr><td valign="middle">X=0.4124564*R+0.3575761*G+0.1804375*B</td></tr>
-        <tr><td valign="middle">Y=0.2126729*R+0.7151522*G+0.0721750*B</td></tr>
-        <tr><td valign="middle">Z=0.0193339*R+0.1191920*G+0.9503041*B</td></tr>
-
-        <tr><th valign="middle">YCC</th></tr>
-        <tr><td valign="middle">Y=(0.298839*R+0.586811*G+0.114350*B) (with complicated scaling); <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">C1=(−0.298839*R−0.586811*G+0.88600*B) (with complicated scaling)</td></tr>
-        <tr><td valign="middle">C2=(0.70100*R−0.586811*G−0.114350*B) (with complicated scaling)</td></tr>
-
-        <tr><th valign="middle">YCbCr</th></tr>
-        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">Cb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">YIQ</th></tr>
-        <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">I=(0.59600*R−0.27400*G−0.32200*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">Q=(0.21100*R−0.52300*G+0.31200*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">YPbPr</th></tr>
-        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">Pb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">Pr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-
-        <tr><th valign="middle">YUV</th></tr>
-        <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>
-        <tr><td valign="middle">U=(−0.14740*R−0.28950*G+0.43690*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-        <tr><td valign="middle">V=(0.61500*R−0.51500*G−0.10000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
-</table>
-
-<p>Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="combine"></a>-combine</h3>
-</div>
-
-<p class="magick-description">Combine one or more images into a single image.</p>
-
-<p>The channels (previously set by <a href="command-line-options.html#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 <code>RGB</code>, this
-means the first image  is assigned to the <code>Red</code> channel, the second
-to the <code>Green</code> channel, the third to the <code>Blue</code>.</p>
-
-<p>This option can be thought of as the inverse to <a href="command-line-options.html#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>
-
-<pre>
-convert original.png -channel RGB -separate sepimage.png
-convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
-  -combine imagecopy.png
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="comment"></a>-comment <var>string</var></h3>
-</div>
-
-<p class="magick-description">Embed a comment in an image.</p>
-
-<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
-"<code><a href="command-line-options.html#set">-set</a> comment</code>". </p>
-
-<p>The comment can contain special format characters listed in the <a href="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 <var>string</var> is <var>@</var>, 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="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> options
-instead.</p>
-
-<p>For example,</p>
-
-<pre>
--comment "%m:%f %wx%h"  bird.miff
-</pre>
-
-<p>produces an image comment of <code>MIFF:bird.miff 512x480</code> (assuming
-that the image <code>bird.miff</code> has a width of 512 and a height of
-480.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="compare"></a>-compare</h3>
-</div>
-
-<p class="magick-description">mathematically and visually annotate the difference between an image and its reconstruction</p>
-
-<p>This is a convert version of "<code>compare</code>" for two same sized images. The syntax is as follows, but other metrics are allowed.</p>
-
-<pre>
-convert image.png reference.png -metric RMSE -compare \ <br> difference.png
-</pre>
-
-<p>To get the metric value use the string format "%[distortion]".</p>
-
-<pre>
-convert image.png reference.png -metric RMSE -compare -format \
-   "%[distortion]" info:
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="complex"></a>-complex <var>operator</var></h3>
-</div>
-
-<p class="magick-description">perform complex mathematics on an image sequence</p>
-
-Choose from these operators:
-
-<pre>
-add
-conjugate
-divide
-magnitude-phase
-multiply
-real-imaginary
-subtract
-</pre>
-
-<p>Optionally specify the <code>divide</code> operator SNR with <code><a href="command-line-options.html#define">-define</a> complex:snr=float</code>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="compose"></a>-compose <var>operator</var></h3>
-</div>
-
-<p class="magick-description">Set the type of image composition.</p>
-
-<p>See <a href="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="command-line-options.html#composite">-compare</a>,
-<a href="command-line-options.html#composite">-composite</a>,
-<a href="command-line-options.html#layers">-layers</a> composite,
-<a href="command-line-options.html#flatten">-flatten</a>,
-<a href="command-line-options.html#mosaic">-mosaic</a>,
-<a href="command-line-options.html#layers">-layers</a> merge,
-<a href="command-line-options.html#border">-border</a>,
-<a href="command-line-options.html#frame">-frame</a>,
-and <a href="command-line-options.html#extent">-extent</a>. </p>
-
-<p>It is also one of the primary options for the "<code>composite</code>"
-command.  </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="composite"></a>-composite</h3>
-</div>
-
-<p class="magick-description">Perform alpha composition on two images and an optional mask</p>
-
-<p>Take the first image 'destination' and overlay the second 'source' image
-according to the current <a href="command-line-options.html#compose">-compose</a> setting. The location
-of the 'source' or 'overlay' image is controlled according to <a href="command-line-options.html#geometry">-geometry</a>, and <a href="command-line-options.html#geometry">-geometry</a>
-settings. </p>
-
-<p>If a third image is given this is treated as a gray-scale blending 'mask' image
-relative to the first 'destination' image. This mask is blended with the
-source image.  However for the '<code>displace</code>' compose method, the
-mask is used to provide a separate Y-displacement image instead. </p>
-
-<p>If a <a href="command-line-options.html#compose">-compose</a> method requires extra numerical
-arguments or flags these can be provided by setting the  <a href="command-line-options.html#set">-set</a> '<code>option:compose:args</code>'
-appropriately for the compose method. </p>
-
-<p>Some <a href="command-line-options.html#compose">-compose</a> methods can modify the 'destination'
-image outside the overlay area. You can disable this by setting the special <a href="command-line-options.html#set">-set</a> '<code>option:compose:outside-overlay</code>'
-to '<code>false</code>'.  </p>
-
-<p>The SVG compositing specification requires that color and opacity values range between zero and QuantumRange inclusive.  You can permit values outside this range with this option: <a href="command-line-options.html#set">-set</a> '<code>option:compose:clamp=false</code></p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="compress"></a>-compress <var>type</var></h3>
-</div>
-
-<p class="magick-description">Use pixel compression specified by <var>type</var> when writing the image.</p>
-
-<p>Choices are: <code>None</code>, <code>BZip</code>, <code>Fax</code>, <code>Group4</code>, <code>JPEG</code>,  <code>JPEG2000</code>, <code>Lossless</code>, <code>LZW</code>, <code>RLE</code> or <code>Zip</code>.</p>
-
-<p>To print a complete list of compression types, use <a href="command-line-options.html#list">-list
-compress</a>.</p>
-
-<p>Specify <a href="command-line-options.html#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 <code>LZW</code> 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><code>Lossless</code> 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>
-When writing an ICO file, you may request that the images be encoded in
-PNG format, by specifying <code>Zip</code> compression.</p>
-
-<p>
-When writing a JNG file, specify <code>Zip</code> compression to request that
-the alpha channel be encoded in PNG "IDAT" format, or <code>JPEG</code>
-to request that it be encoded in JPG "JDAA" format.</p>
-
-<p>Use the <a href="command-line-options.html#quality">-quality</a> option to set the compression level
-to be used by JPEG, PNG, MIFF, and MPEG encoders.
-Use the <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="connected-components"></a>-connected-components <var>connectivity</var></h3>
-</div>
-
-<p class="magick-description">connected-components uniquely labeled, choose from 4 or 8 way connectivity.</p>
-
-<p>Use <code><a href="command-line-options.html#define">-define</a> connected-components:verbose=true</code> to output statistics associated with each unique label.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="contrast"></a>-contrast</h3>
-</div>
-
-<p class="magick-description">Enhance or reduce the image contrast.</p>
-
-<p>This option enhances the intensity differences between the lighter and
-darker elements of the image. Use <a href="command-line-options.html#contrast">-contrast</a> to enhance
-the image or <a href="command-line-options.html#contrast">+contrast</a> to reduce the image
-contrast.</p>
-
-<p>For a more pronounced effect you can repeat the option:</p>
-
-<pre>
-convert rose: -contrast -contrast rose_c2.png
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="contrast-stretch"></a>-contrast-stretch <var>black-point</var><br>-contrast-stretch <var>black-point</var>{x<var>white-point</var>}{<var>%</var>}}</h3>
-</div>
-
-<p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p>
-
-<p>While performing the stretch, black-out at most <var>black-point</var> pixels and white-out at most <var>white-point</var> pixels. Or, if percent is used, black-out at most
-<var>black-point %</var> pixels and white-out at most <var>white-point %</var> pixels.</p>
-
-<p>Prior to ImageMagick 6.4.7-0, <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> will black-out at most <var>black-point</var> pixels and white-out at most <var>total pixels
-minus white-point</var> pixels. Or, if percent is used, black-out at most <var>black-point %</var> pixels and white-out at most <var>100% minus white-point %</var> pixels.</p>
-
-<p>Note that <code>-contrast-stretch 0</code> will modify the image such that
-the image's min and max values are stretched to 0 and <var>QuantumRange</var>, respectively, without any loss of data due to burn-out or
-clipping at either end. This is not the same as <a href="command-line-options.html#normalize">-normalize</a>, which is equivalent to <code>-contrast-stretch 0.15x0.05%</code> (or
-prior to ImageMagick 6.4.7-0, <code>-contrast-stretch 2%x99%</code>).</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="command-line-options.html#channel">+channel</a>
-setting is in use.  Specifying any other <a href="command-line-options.html#channel">-channel</a>
-setting will normalize the RGB channels independently.</p>
-
-<p>See also  <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="convolve"></a>-convolve <var>kernel</var></h3>
-</div>
-
-<p class="magick-description">Convolve an image with a user-supplied convolution kernel.</p>
-
-<p>The <var>kernel</var> 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 <var>kernel</var> 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="command-line-options.html#convolve">‑convolve</a> operator supports the <a href="command-line-options.html#bias">‑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="command-line-options.html#bias">‑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="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;">
-  <h3 class="magick-header"><a id="copy"></a>-copy <var>geometry</var> <var>offset</var></h3>
-</div>
-
-<p class="magick-description">copy pixels from one area of an image to another.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="crop"></a>-crop <var>geometry</var>{<var>@</var>}{<var>!</var>}</h3>
-</div>
-
-<p class="magick-description">Cut out one or more rectangular regions of the image.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<p>The <var>width</var> and <var>height</var> of the <var>geometry</var> argument give the size of the image that remains
-after cropping, and <var>x</var> and <var>y</var> in the
-<var>offset</var> (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="command-line-options.html#shave">-shave</a> instead.</p>
-
-<p>If the <var>x</var> and <var>y</var> 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="command-line-options.html#gravity">-gravity</a> option is
-present with <code>NorthEast</code>, <code>East</code>, or <code>SouthEast</code>
-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="command-line-options.html#gravity">-gravity</a> option is present with <code>SouthWest</code>,
-<code>South</code>, or <code>SouthEast</code> gravity, the distance is measured
-upward between the bottom edges.</p>
-
-<p>If the <var>x</var> and <var>y</var> 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>You can add the <var>@</var> to the geometry argument to equally divide the image into the number of tiles generated.</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="command-line-options.html#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.
-
-Similarly you may want to use <a href="command-line-options.html#repage">+repage</a> after cropping to
-remove the page offset that will be left behind. This is especially true when
-you are going to write to an image format such as PNG that supports an image
-offset.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="cycle"></a>-cycle <var>amount</var></h3>
-</div>
-
-<p class="magick-description">displace image colormap by amount.</p>
-
-<p><var>Amount</var> defines the number of positions each
-colormap entry is shifted.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="debug"></a>-debug <var>events</var></h3>
-</div>
-
-<p class="magick-description">enable debug printout.</p>
-
-<p>The <code>events</code> parameter specifies which events are to be logged. It
-can be either <code>None</code>, <code>All</code>, <code>Trace</code>, or
-a comma-separated list consisting of one or more of the following domains:
-<code>Accelerate</code>, <code>Annotate</code>, <code>Blob</code>, <code>Cache</code>,
-<code>Coder</code>, <code>Configure</code>, <code>Deprecate</code>,
-<code>Exception</code>, <code>Locale</code>, <code>Render</code>,
-<code>Resource</code>, <code>Security</code>, <code>TemporaryFile</code>,
-<code>Transform</code>, <code>X11</code>, or <code>User</code>. </p>
-
-
-<p>For example, to log cache and blob events, use.</p>
-
-<pre>
-convert -debug "Cache,Blob" rose: rose.png
-</pre>
-
-<p>The <code>User</code> 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="command-line-options.html#list">-list
-debug</a>.</p>
-
-<p>Use the <a href="command-line-options.html#log">-log</a> option to specify the format for debugging
-output.</p>
-
-<p>Use <a href="command-line-options.html#debug">+debug</a> to turn off all logging.</p>
-
-<p>Debugging may also be set using the <code>MAGICK_DEBUG</code> <a href="resources.html#environment">environment variable</a>.  The allowed values for the <code>MAGICK_DEBUG</code>
-environment variable are the same as for the <a href="command-line-options.html#debug">-debug</a>
-option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="decipher"></a>-decipher <var>filename</var></h3>
-</div>
-
-<p class="magick-description">Decipher and restore pixels that were previously transformed by <a href="command-line-options.html#encipher">-encipher</a>.</p>
-
-<p>Get the passphrase from the file specified by <var>filename</var>.</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;">
-  <h3 class="magick-header"><a id="deconstruct"></a>-deconstruct</h3>
-</div>
-
-<p class="magick-description">find areas that has changed between images </p>
-
-<p>Given a sequence of images all the same size, such as produced by <a href="command-line-options.html#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="command-line-options.html#layers">-layers</a>
-method '<code>compare-any</code>'. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="define"></a>-define <var>key</var>{<var>=value</var>}<var>...</var></h3>
-</div>
-
-<p class="magick-description">add specific global settings generally used to control coders and image processing operations.</p>
-
-<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="command-line-options.html#verbose">-verbose</a> information ("<code>info:</code>" output format)
-as "Artifacts". </p>
-
-<p>If <var>value</var> 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="command-line-options.html#define">+define key</a> to remove definitions
-previously created.  Use <a href="command-line-options.html#define">+define "*"</a> to remove all
-existing definitions.</p>
-
-<p>The same 'artifact' settings can also be defined using the <a href="command-line-options.html#set">-set "option:<var>key</var>" "<var>value</var>"</a> option, which also allows the use of <a href="escape.html">Format and Print Image
-Properties</a> in the defined value. </p>
-
-<p>The <var>option</var> and <var>key</var> are case-independent (they are
-converted to lowercase for use within the decoders) while the <var>value</var>
-is case-dependent.</p>
-
-<p>Such settings are global in scope, and affect all images and operations. </p>
-
-<p>The following definitions are just some of the artifacts that are
-available:</p>
-
-<table class="table table-condensed table-striped">
-  <tr>
-    <td>bmp:format=<var>value</var></td>
-    <td> valid values are <var>bmp2</var>, <var>bmp3</var>,
-   and <var>bmp4</var>.  This option can be useful when the
-   method of prepending "BMP2:" to the output filename is inconvenient or
-   is not available, such as when using the <a href="mogrify.html">mogrify</a>   utility.</td>
-  </tr>
-
-  <tr>
-    <td>colorspace:auto-grayscale=<var>on|off</var></td>
-    <td>prevent automatic conversion to grayscale inside coders that support grayscale.</td>
-  </tr>
-
-  <tr>
-    <td>complex:snr=<var>value</var></td>
-    <td>Set the divide SNR constant<a href="command-line-options.html#complex">-complex</a></td>
-  </tr>
-
-  <tr>
-    <td>compose:args=<var>arguments</var></td>
-     <td>Sets certain compose argument values when using convert ... -compose ...
-    -composite. See <a href="http://www.imagemagick.org/www/compose.html">Image Composition</a></td>
-  </tr>
-
-  <tr>
-    <td>compose:clamp=<var>on|off</var></td>
-    <td>set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.  Define supported in ImageMagick 6.9.1-3 and above.</td>
-  </tr>
-
-  <tr>
-    <td>convolve:scale=<var>{kernel_scale}[!^] [,{origin_addition}] [%]</var></td>
-     <td>Defines the kernel scaling. The special flag ! automatically scales to 
-    full dynamic range. The ! flag can be used in combination with a factor or 
-    percent. The factor or percent is then applied after the automatic scaling. 
-    An example is 50%!. This produces a result 50% darker than full dynamic 
-    range scaling. The ^ flag assures the kernel is 'zero-summing', for 
-    example when some values are positive and some are negative as in edge 
-    detection kernels. The origin addition adds that value to the center 
-    pixel of the kernel. This produces and effect that is like adding the image 	
-    that many times to the result of the filtered image. The typical value 
-    is 1 so that the original image is added to the result of the convolution. 
-    The default is 0.</td>
-  </tr>
-
-  <tr>
-    <td>convolve:showkernel=<var>1</var></td>
-     <td>Outputs (to 'standard error') all the information about a specified <a href="command-line-options.html#morphology">-morphology convolve</a> kernel.</td>
-  </tr>
-
-  <tr>
-    <td>dcm:display-range=<var>reset</var></td>
-     <td>Sets the display range to the minimum and maximum pixel values for the
-    DCM image format.</td>
-  </tr>
-
-  <tr>
-    <td>dds:cluster-fit=<var>true|false</var></td>
-     <td>Enables the dds cluster-fit.</td>
-  </tr>
-
-  <tr>
-    <td>dds:compression=<var>dxt1|dxt5|none</var></td>
-     <td>Sets the dds compression.</td>
-  </tr>
-
-  <tr>
-    <td>dds:mipmaps=<var>value</var></td>
-     <td>Sets the dds number of mipmaps.</td>
-  </tr>
-
-  <tr>
-    <td>dds:weight-by-alpha=<var>true|false</var></td>
-     <td>Enables the dds alpha weighting.</td>
-  </tr>
-
-  <tr>
-    <td>delegate:bimodal=<var>true</var></td>
-     <td>Specifies direct conversion from Postscript to PDF.</td>
-  </tr>
-
-  <tr>
-    <td>distort:scale=<var>value</var></td>
-    <td>Sets the output scaling factor for use with <a href="command-line-options.html#distort">-distort</a></td>
-  </tr>
-
-  <tr>
-    <td>distort:viewport=<var>WxH+X+Y</var></td>
-    <td>Sets the viewport for use with <a href="command-line-options.html#distort">-distort</a></td>
-  </tr>
-
-  <tr>
-    <td>dot:layout-engine=<var>value</var></td>
-     <td>Specifies the layout engine for the DOT image format (e.g.
-    <code>neato</code>).</td>
-  </tr>
-
-  <tr>
-    <td>filter:option=<var>value</var></td>
-     <td>Set a filter option for use with <a href="command-line-options.html#resize">-resize</a>.
-    See <a href="command-line-options.html#filter">-filter</a> for details.</td>
-  </tr>
-
-  <tr>
-    <td>fourier:normalize=<var>inverse</var></td>
-    <td>Sets the location for the FFT/IFT normalization as use by 
-    <a href="command-line-options.html#fft">+-fft</a> and <a href="command-line-options.html#ift">+-ift</a>. The default is 
-    <var>forward</var>.</td>
-  </tr>
-
-  <tr>
-    <td>h:format=<var>value</var></td>
-     <td>Set the image encoding format use when writing a C-style header.
-         <var>format</var> can be any output format supported by ImageMagick
-         except for <var>h</var> and <var>magick</var></td>.  If this
-         option is omitted, the default is <var>GIF</var> for PseudoClass
-         images and <var>PNM</var> for DirectClass images.
-  </tr>
-
-  <tr>
-    <td>icon:auto-resize</td>
-     <td>Automatically stores multiple sizes when writing an ico image
-    (requires a 256x256 input image).</td>
-  </tr>
-
-  <tr>
-    <td>jp2:layer-number=<var>value</var></td>
-     <td>Sets the maximum number of quality layers to decode. Same for JPT, JC2,
-    and J2K</td>
-  </tr>
-
-  <tr>
-    <td>jp2:number-resolutions=<var>value</var></td>
-     <td>Sets the number of resolutions to encode.Same for JPT, JC2, and J2K</td>
-  </tr>
-
-  <tr>
-    <td>jp2:progression-order=<var>value</var></td>
-     <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and 
-    J2K</td>
-  </tr>
-
-  <tr>
-    <td>jp2:quality=<var>value,value...</var></td>
-     <td>Sets the quality layer PSNR, given in dB. The order is from left to 
-    right in ascending order. The default is a single lossless quality layer.  
-    Same for JPT, JC2, and J2K</td>
-  </tr>
-
-  <tr>
-    <td>jp2:rate=<var>value</var></td>
-     <td>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. Same for JPT, JC2, and J2K</td>
-  </tr>
-
-  <tr>
-    <td>jp2:reduce-factor=<var>value</var></td>
-     <td>Sets the number of highest resolution levels to be discarded.Same for 
-    JPT, JC2, and J2K</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:block-smoothing=<var>on|off</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:colors=<var>value</var></td>
-     <td>Set the desired number of colors and let the JPEG encoder do the
-    quantizing.</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:dct-method=<var>value</var></td>
-     <td>Choose from <code>default</code>, <code>fastest</code>, 
-    <code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:extent=<var>value</var></td>
-     <td>Restrict the maximum JPEG file size, for example <code>-define
-    jpeg:extent=400KB</code>.  The JPEG encoder will search for the highest
-    compression quality level that results in an output file that does not
-    exceed the value. The <code>-quality</code> option is ignored if it
-    is also present.</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:fancy-upsampling=<var>on|off</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:optimize-coding=<var>on|off</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:q-table=<var>table</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:sampling-factor=<var>sampling-factor-string</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>jpeg:size=<var>geometry</var></td>
-     <td>Set the size hint of a JPEG image, for
-    example, <code>-define jpeg:size=128x128</code>.
-    It is most useful for increasing performance and reducing the memory
-    requirements when reducing the size of a large JPEG image.</td>
-  </tr>
-
-  <tr>
-    <td>json:features</td>
-   <td>includes features in verbose information</td>
-  </tr>
-
-  <tr>
-    <td>json:limit</td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>json:locate</td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>json:moments</td>
-   <td>includes image moments in verbose information</td>
-  </tr>
-
-  <tr>
-    <td>magick:format=<var>value</var></td>
-     <td>Set the image encoding format use when writing a C-style header.
-         This is the same as "h:format=format" described above.</td>. 
-  </tr>
-
-  <tr>
-    <td>mng:need-cacheoff</td>
-   <td>turn playback caching off for streaming MNG.</td>
-  </tr>
-
-  <tr>
-    <td>morphology:compose=<var>compose-method</var></td>
-     <td>Specifies how to merge results generated by multiple<a href="command-line-options.html#morphology">-morphology</a> kernel. The default is none. One 
-    typical value is 'lighten' as used, for example, with the sobel edge 
-    kernels. </td>
-  </tr>
-
-  <tr>
-    <td>morphology:showkernel=<var>1</var></td>
-     <td>Outputs (to 'standard error') all the information about a generated <a href="command-line-options.html#morphology">-morphology</a> kernel.</td>
-  </tr>
-
-  <tr>
-    <td>pcl:fit-to-page=<var>true</var></td>
-
-  </tr><tr>
-    <td>pdf:fit-page=<var>geometry</var></td>
-     <td> geometry specifies the scaling dimensions for resizing when the PDF is
-    being read. The geometry is either WxH{%} or page size. No offsets are
-    allowed. (introduced in IM 6.8.8-8)</td>
-  </tr>
-
-  <tr>
-    <td>pdf:fit-to-page=<var>true</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>pdf:use-cropbox=<var>true</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>pdf:use-trimbox=<var>true</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>png:bit-depth=<var>value</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-  <tr>
-    <td>png:color-type=<var>value</var></td>
-     <td>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="command-line-options.html#depth">-depth</a>,
-    <a href="command-line-options.html#colors">-colors</a>, or <a href="command-line-options.html#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.</td>
-  </tr>
-
-  <tr>
-    <td>png:compression-filter=<var>value</var></td>
-    <td> valid values are 0 through 9. 0-4 are the corresponding PNG filters,
-   5 means adaptive filtering except for images with a colormap, 6 means
-   adaptive filtering for all images, 7 means MNG "loco" compression, 8 means 
-   Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no 
-   filtering.</td>
-  </tr>
-
-  <tr>
-    <td>png:compression-level=<var>value</var></td>
-    <td> valid values are 0 through 9, with 0 providing the least but fastest
-       compression and 9 usually providing the best and always the slowest.</td>
-  </tr>
-
-  <tr>
-    <td>png:compression-strategy=<var>value</var></td>
-    <td> valid values are 0 through 4, meaning default, filtered, huffman_only,
-   rle, and fixed ZLIB compression strategy. If you are using an old zlib
-   that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),
-   values 3 and 4, respectively, will use the zlib default strategy
-   instead.</td>
-  </tr>
-
-  <tr>
-    <td>png:format=<var>value</var></td>
-    <td> valid values are <var>png8</var>, <var>png24</var>,
-   <var>png32</var>, <var>png48</var>,
-   <var>png64</var>, and <var>png00</var>.
-   This property can be useful for specifying
-   the specific PNG format to be used, when the usual method of prepending the
-   format name to the output filename is inconvenient, such as when writing
-   a PNG-encoded ICO file or when using <a href="mogrify.html">mogrify</a>.
-   Value = <var>png8</var> reduces the number of colors to 256,
-   only one of which may be fully transparent, if necessary.  The other
-   values do not force any reduction of quality; it is an error to request
-   a format that cannot represent the image data without loss (except that
-   it is allowed to reduce the bit-depth from 16 to 8 for all formats).
-   Value = <var>png24</var> and <var>png48</var>
-   allow transparency, only if a single color is fully transparent and that
-   color does not also appear in an opaque pixel; such transparency is
-   written in a PNG <code>tRNS</code> chunk.
-   Value = <var>png00</var> causes the image to inherit its
-   color-type and bit-depth from the input image, if the input was also
-   a PNG.</td>
-  </tr>
-
-  <tr>
-    <td>png:exclude-chunk=<var>value</var></td>
-
-  </tr><tr>
-    <td>png:include-chunk=<var>value</var></td>
-     <td>ancillary chunks to be excluded from or included in PNG output.
-
-    <p>The <var>value</var> can be the name of a PNG chunk-type such
-    as <var>bKGD</var>, a comma-separated list of chunk-names
-    (which can include the word <var>date</var>, the word
-    <var>all</var>, or the word <var>none</var>).
-    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 <code>sRGB</code> chunk is excluded and
-    the <code>gAMA</code> chunk is included, the <code>gAMA</code> 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>
--define png:include-chunk=none,gAMA
-</pre>
-
-    <p>As a special case, if the <code>sRGB</code> chunk is not excluded and
-    the PNG encoder recognizes that the image contains the sRGB ICC profile,
-    the PNG encoder will write the <code>sRGB</code> chunk instead of the
-    entire ICC profile.  To force the PNG encoder to write the sRGB
-    profile as an <code>iCCP</code> chunk in the output PNG instead of the
-    <code>sRGB</code> chunk, exclude the <code>sRGB</code> chunk.</p>
-
-    <p>The critical PNG chunks <code>IHDR</code>, <code>PLTE</code>,
-    <code>IDAT</code>, and <code>IEND</code> cannot be excluded.  Any such
-    entries appearing in the list will be ignored.</p>
-
-    <p>If the ancillary PNG <code>tRNS</code> 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
-    <code>tRNS</code> chunk isn't written anyhow, and there is no effect
-    on the PNG colortype of the output image.</p>
-
-    <p>The <a href="command-line-options.html#strip">-strip</a> option does the equivalent of the
-    following for PNG output:</p>
-
-<pre>
--define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date
-</pre>
-
-    <p>The default behavior is to include all known PNG ancillary chunks
-    plus ImageMagick's private <code>vpAg</code> ("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
-    <code>bKGD</code>, <code>cHRM</code>, <code>gAMA</code>, <code>iCCP</code>,
-    <code>oFFs</code>, <code>pHYs</code>, <code>sRGB</code>, <code>tEXt</code>,
-    <code>tRNS</code>, <code>vpAg</code>, and <code>zTXt</code>.</p>
-
-    <p>You can also put <code>date</code> in the list to include or exclude
-    the "Date:create" and "Date:modify" text chunks that ImageMagick normally
-    inserts in the output PNG.</p></td>
-  </tr>
-
-  <tr>
-    <td>png:preserve-colormap[=<var>true</var>]</td>
-     <td>Use the existing image-&gt;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.</td>
-  </tr>
-
-  <tr>
-    <td>png:preserve-iCCP[=<var>true</var>]</td>
-     <td>By default, the PNG decoder and encoder examine any ICC profile
-    that is present, either from an <code>iCCP</code> chunk in the PNG
-    input or supplied via an option, and if the profile is recognized
-    to be the sRGB profile, converts it to the <code>sRGB</code> chunk.
-    You can use <code>-define png:preserve-iCCP</code> to prevent
-    this from happening; in such cases the <code>iCCP</code> chunk
-    will be read or written and no <code>sRGB</code> chunk will be
-    written.  There are some ICC profiles that claim to be sRGB but
-    have various errors that cause them to be rejected by libpng16; such
-    profiles are recognized anyhow and converted to the <code>sRGB</code>
-    chunk, but are rejected if the <code>-define png:preserve-iCCP</code>
-    is present. Note that not all "sRGB" ICC profiles are recognized
-    yet; we will add them to the list as we encounter them.</td>
-  </tr>
-
-  <tr>
-    <td>png:swap-bytes[=<var>true</var>]</td>
-     <td>The PNG specification requires that any multi-byte integers be stored in
-    network byte order (MSB-LSB endian).  This option allows you to
-    fix any invalid PNG files that have 16-bit samples stored incorrectly
-    in little-endian order (LSB-MSB).  The "-define png:swap-bytes" option
-    must appear before the input filename on the commandline.  The swapping
-    is done during the libpng decoding operation.</td>
-  </tr>
-
-  <tr>
-    <td>profile:skip=<var>name1,name2,...</var></td>
-     <td>Skip the named profile[s] when reading the image. Use skip="*" to
-    skip all named profiles in the image. Many named profiles exist,
-    including ICC, EXIF, APP1, IPTC, XMP, and others.</td>
-  </tr>
-
-  <tr>
-    <td>ps:imagemask</td>
-     <td>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.</td>
-  </tr>
-
-  <tr>
-    <td>quantum:format=<var>type</var></td>
-     <td>Set the type to <code>floating-point</code> 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="command-line-options.html#depth">-depth</a> 16 is
-    included, the result is a single precision floating point format.
-    If <a href="command-line-options.html#depth">-depth</a> 32 is included, the result is
-    double precision floating point format.</td>
-  </tr>
-
-  <tr>
-    <td>quantum:polarity=<var>photometric-interpretation</var></td>
-     <td>Set the photometric-interpretation of an image (typically for TIFF image
-    file format) to either <code>min-is-black</code> (default) or
-    <code>min-is-white</code>.</td>
-  </tr>
-
-  <tr>
-    <td>sample:offset=<var>geometry</var></td>
-     <td>Location of the sampling point within the sub-region being sampled,
-    expressed as percentages (see <a href="command-line-options.html#sample">-sample</a>).</td>
-  </tr>
-
-  <tr>
-    <td>showkernel=<var>1</var></td>
-     <td>Outputs (to 'standard error') all the information about a generated <a href="command-line-options.html#morphology">-morphology</a> kernel.</td>
-  </tr>
-
-  <tr>
-    <td>stream:buffer-size=<var>value</var></td>
-   <td>Set the stream buffer size.  Select 0 for unbuffered I/O.</td>
-  </tr>
-
-  <tr>
-    <td>tiff:alpha=<var>associated|unassociated|unspecified</var></td>
-    <td>Specify the alpha extra samples as associated, unassociated or unspecified </td>
-  </tr>
-
-  <tr>
-    <td>tiff:endian=<var>msb|lsb</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>tiff:exif-properties=<var>false</var></td>
-    <td>Skips reading the EXIF properties.</td>
-  </tr>
-
-  <tr>
-    <td>tiff:fill-order=<var>msb|lsb</var></td>
-    <td>&amp;nbsp</td>
-  </tr>
-
-  <tr>
-    <td>tiff:ignore-layers=<var>true</var></td>
-    <td>Ignores the photoshop layers.</td>
-  </tr>
-
-  <tr>
-    <td>tiff:ignore-tags=<var>comma-separate-list-of-tag-IDs</var></td>
-    <td>Allows one or more tag ID values to be ignored.</td>
-  </tr>
-
-  <tr>
-    <td>tiff:rows-per-strip=<var>value</var></td>
-    <td>Sets the number of rows per strip</td>
-  </tr>
-
-  <tr>
-    <td>tiff:tile-geometry=<var>WxH</var></td>
-    <td>Sets the tile size for pyramid tiffs. Requires the suffix
-        PTIF: before the outputname</td>
-  </tr>
-</table>
-
-<p>For example, to create a postscript file that will render only the black
-pixels of a bilevel image, use:</p>
-
-<pre>
-convert bilevel.tif -define ps:imagemask eps3:stencil.ps
-</pre>
-
-<p>Set attributes of the image registry by prefixing the value with
-<code>registry:</code>.  For example, to set a temporary path to put work files,
-use:</p>
-
-<pre>
--define registry:temporary-path=/data/tmp
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="delay"></a>-delay <var>ticks</var> <br>-delay <var>ticks</var>x<var>ticks-per-second</var> {<var>&lt;</var>} {<var>&gt;</var>}</h3>
-</div>
-
-<p class="magick-description">display the next image after pausing.</p>
-
-<p>This option is useful for regulating the animation of image sequences
-<var>ticks/ticks-per-second</var> 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 <code>&gt;</code> to change the image delay <var>only</var> if its current
-value exceeds the given delay. <code>&lt;</code> changes the image delay
-<var>only</var> if current value is less than the given delay.  For example, if
-you specify <code>30&gt;</code> 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
-<code>&lt;</code> or <code>&gt;</code> from being interpreted by your shell as
-a file redirection.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="delete"></a>-delete <var>indexes</var></h3>
-</div>
-
-<p class="magick-description">delete the images specified by index, from the 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, -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
-<code>+delete</code> to delete the last image in the current image sequence.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="density"></a>-density <var>width</var><br>-density <var>width</var>x<var>height</var></h3>
-</div>
-
-<p class="magick-description">Set the horizontal and vertical resolution of an image for rendering to devices.</p>
-
-<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="command-line-options.html#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="command-line-options.html#density">-density</a> option sets an <var>attribute</var> 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="command-line-options.html#resample">-resample</a> option.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="depth"></a>-depth <var>value</var></h3>
-</div>
-
-<p class="magick-description">depth of the image.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="descend"></a>-descend</h3>
-</div>
-
-<p class="magick-description">obtain image by descending window hierarchy.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="deskew"></a>-deskew <var>threshold</var></h3>
-</div>
-
-<p class="magick-description">straighten an image.  A threshold of 40% works for most images.</p>
-
-<p>Use <a href="command-line-options.html#set">-set</a> <code>option:deskew:auto-crop
-<var>width</var></code> to auto crop the image.  The set argument is the pixel
-width of the image background (e.g 40).</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="despeckle"></a>-despeckle</h3>
-</div>
-
-<p class="magick-description">reduce the speckles within an image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="direction"></a>-direction <var>type</var></h3>
-</div>
-
-<p class="magick-description">render text right-to-left or left-to-right.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="displace"></a>-displace <var>horizontal-scale</var><br>-displace <var>horizontal-scale</var>x<var>vertical-scale</var></h3>
-</div>
-
-<p class="magick-description">shift image pixels as defined by a displacement map.</p>
-
-<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 <var>mask</var>,
-the <var>composite image</var> is used for horizontal X
-displacement, while the <var>mask image</var> 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  <var>scale</var> 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>Alternatively rather than supplying 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;">
-  <h3 class="magick-header"><a id="display"></a>-display <var>host:display[.screen]</var></h3>
-</div>
-
-<p class="magick-description">Specifies the X server to contact.</p>
-
-<p>This option is used with convert for obtaining image or font from this
-X server. See <var>X(1)</var>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="dispose"></a>-dispose <var>method</var></h3>
-</div>
-
-<p class="magick-description">define the GIF disposal image setting for images that are being created or read in. </p>
-
-<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>
-
-<dl class="dl-horizontal">
-<dt>Undefined</dt><dd>0:  No disposal specified (equivalent to '<code>none</code>').</dd>
-<dt>None</dt><dd>1:  Do not dispose, just overlay next frame image.</dd>
-<dt>Background</dt><dd>2:  Clear the frame area with the background color.</dd>
-<dt>Previous</dt><dd>3:  Clear to the image prior to this frames overlay.</dd>
-</dl>
-
-<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="command-line-options.html#list">-list dispose</a>.</p>
-
-<p>Use <a href="command-line-options.html#dispose">+dispose</a>, turn off the setting and prevent
-resetting the layer disposal methods of images being read in. </p>
-
-<p>Use <a href="command-line-options.html#set">-set</a> '<code>dispose</code>' method to set the image
-disposal method for images already in memory.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="dissimilarity-threshold"></a>-dissimilarity-threshold <var>value</var></h3>
-</div>
-
-<p class="magick-description">maximum RMSE for subimage match (default 0.2).</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="dissolve"></a>-dissolve <var>src_percent</var>[x<var>dst_percent</var>]</h3>
-</div>
-
-<p class="magick-description">dissolve an image into another by the given percent.</p>
-
-<p>The opacity of the composite image is multiplied by the given percent, then
-it is composited 'over' the main image.  If <var>src_percent</var>
-is greater than 100, start dissolving the main image so it becomes
-transparent at a value of '<code>200</code>'.  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;">
-  <h3 class="magick-header"><a id="distort"></a>-distort <var>method arguments</var></h3>
-</div>
-
-<p class="magick-description">distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
-
-<p>The <var>arguments</var> 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 <var>method</var> being used. </p>
-
-<p>Choose from these distortion types:</p>
-
-<table class="table table-condensed table-striped">
-  <tr>
-    <th style="width: 8%">Method</th>
-    <th>Description</th>
-  </tr>
-
-  <tr>
-    <td>ScaleRotateTranslate <br> SRT</td>
-    <td>
-       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 'Affine' 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>
-
-       <dl class="dl-horizontal">
-       <dt>2:</dt><dd><var>Scale   Angle</var></dd>
-       <dt>3:</dt><dd><var>X,Y     Angle</var></dd>
-       <dt>4:</dt><dd><var>X,Y   Scale   Angle</var></dd>
-       <dt>5:</dt> <dd><var>X,Y   ScaleX,ScaleY   Angle</var></dd>
-       <dt>6:</dt> <dd><var>X,Y   Scale   Angle   NewX,NewY</var></dd>
-       <dt>7:</dt> <dd><var>X,Y   ScaleX,ScaleY   Angle NewX,NewY</var></dd>
-       </dl>
-
-       This is actually an alternative way of specifying a 2 dimensional linear
-       'Affine' or 'AffineProjection' distortion.  </td> </tr>
-
-  <tr>
-    <td>Affine</td>
-    <td>
-       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 'AffineProjection' and 'SRT'
-       distortions. <br>
-
-       More than 3 sets given control point pairs (12 numbers) is least
-       squares fitted to best match a linear 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>
-    <td>AffineProjection</td>
-    <td>
-       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.
-
-       <p class="text-center"><var>
-       s<sub>x</sub>, r<sub>x</sub>,
-       r<sub>y</sub>, s<sub>y</sub>,
-       t<sub>x</sub>, t<sub>y</sub>
-       </var></p>
-
-       See <a href="command-line-options.html#affine">-affine</a> setting for more detail, and
-       meanings of these coefficients. <br>
-
-       The distortions 'Affine' and 'SRT' 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="command-line-options.html#verbose">-verbose</a> setting with those other variants.  </td>
-
-  </tr>
-
-  <tr>
-    <td>BilinearForward<br>
-    BilinearReverse</td>
-    <td>
-       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 'BilinearForward' is used to map rectangles to any
-       quadrilateral, while the 'BilinearReverse' form maps any
-       quadrilateral to a rectangle, while preserving the straight line edges
-       in each case.  <br>
-
-       Note that 'BilinearForward' can generate invalid pixels
-       which will be colored using the <a href="command-line-options.html#mattecolor">-mattecolor</a>
-       color setting.  Also if the quadrilateral becomes 'flipped' the image
-       may disappear. <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>
-    <td>Perspective</td>
-    <td>
-       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 panorama
-       effects).  Less than 4 sets will fall back to a 'Affine'
-       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="command-line-options.html#mattecolor">-mattecolor</a> setting. </td>
-  </tr>
-
-  <tr>
-    <td>PerspectiveProjection  </td>
-    <td>
-       Do a 'Perspective' distortion biased on a set of 8
-       pre-calculated coefficients. You can get these coefficients by looking
-       at the <a href="command-line-options.html#verbose">-verbose</a> output of a
-       'Perspective' 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>
-    <td>Arc</td>
-    <td>
-       Arc the image (variation of polar mapping) over the angle given around
-       a circle.
-
-       <p></p><dl class="dl-horizontal">
-       <dt>arc_angle</dt>
-           <dd>The angle over which to arc the image side-to-side</dd>
-       <dt>rotate_angle</dt>
-           <dd>Angle to rotate resulting image from vertical center</dd>
-       <dt>top_radius</dt>
-           <dd>Set top edge of source image at this radius</dd>
-       <dt>bottom_radius </dt>
-           <dd>Set bottom edge to this radius (radial scaling)</dd>
-       </dl>
-
-       The resulting image is always resized to best fit the resulting image,
-       (as if using <a href="command-line-options.html#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>
-    <td>Polar</td>
-    <td>
-       Like 'Arc' 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: <var>Rmax,Rmin CenterX,CenterY, start,end_angle</var> <br>
-
-       All arguments are optional. With <var>Rmin</var> defaulting to zero, the
-       center to the center of the image, and the angles going from -180 (top)
-       to +180 (top).  If <var>Rmax</var> is given the special value of
-       '0', 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
-       '-1' 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 'DePolar' with
-       the same arguments. <br>
-
-       If the plus form of distort (<a href="command-line-options.html#distort">+distort</a>) is used
-       output image center will default to 0,0 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>
-    <td>DePolar</td>
-    <td>
-       Uses the same arguments and meanings as a 'Polar' distortion
-       but generates the reverse Polar to Cartesian distortion. <br>
-
-       The special <var>Rmax</var> setting of '0' may however clip
-       the corners of the input image.  However using the special
-       <var>Rmax</var> setting of '-1' (maximum center to corner
-       distance) will ensure the whole distorted image is preserved in the
-       generated result, so that the same argument to 'Polar' 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>
-    <td>Barrel</td>
-    <td>
-       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 barrel or pin-cushion distortion appropriate to
-       correct radial lens distortions.  That is in photographs, make straight
-       lines straight again. <br>
-
-       <p class="text-center">Arguments: <var>A   B   C</var>   [ <var>D</var>   [
-       <var>X</var> , <var>Y</var> ] ] <br>
-       or <var>A<sub>x</sub> B<sub>x</sub> C<sub>x</sub> D<sub>x</sub>  
-       A<sub>y</sub> B<sub>y</sub> C<sub>y</sub> D<sub>y</sub></var>  
-       [ <var>X</var> , <var>Y</var> ] </p>
-       So that it forms the function
-       <p class="text-center">Rsrc = r * ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +
-                               <var>C</var>*r + <var>D</var> )</p>
-
-       Where <var>X</var>,<var>Y</var> 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>
-    <td>BarrelInverse</td>
-    <td>
-       This is very similar to 'Barrel' with the same set of
-       arguments, and argument handling.  However it uses the inverse
-       of the radial polynomial,
-       so that it forms the function
-       <p class="text-center">Rsrc = r / ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +
-                               <var>C</var>*r + <var>D</var> )</p>
-       Note that this is not the reverse of the 'Barrel'
-       distortion, just a different barrel-like radial distortion method.
-
-       </td>
-  </tr>
-
-  <tr>
-    <td>Shepards</td>
-    <td>
-       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 the surface of the jelly. <br>
-
-       Internally it is equivalent to generating a displacement map (see <a href="command-line-options.html#displace">-displace</a>) for source image color look-up using
-       the <a href="command-line-options.html#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="command-line-options.html#list">-list
-distort</a>.</p>
-
-<p>Many of the above distortion methods such as '<code>Affine</code>',
-'<code>Perspective</code>', and '<code>Shepards</code>' 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>
-<p class="text-center"><var>
-      U<sub>1</sub>,V<sub>1</sub> X<sub>1</sub>,Y<sub>1</sub>  
-      U<sub>2</sub>,V<sub>2</sub> X<sub>2</sub>,Y<sub>2</sub>  
-      U<sub>3</sub>,V<sub>3</sub> X<sub>3</sub>,Y<sub>3</sub>  
-      ...  
-      U<sub>n</sub>,V<sub>n</sub> X<sub>n</sub>,Y<sub>n</sub>  
-</var></p>
-<p>where <var>U,V</var> on the source image is mapped to <var>X,Y</var> on the
-destination image. </p>
-
-<p>For example, to warp an image using '<code>perspective</code>' 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>
-
-<pre>
-convert rose:  -virtual-pixel black \
-  -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \
-   rose_3d_rotated.gif"
-</pre>
-
-<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 (usually a linear
-'<code>Affine</code>' 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 a cylindrical
-resampling <a href="command-line-options.html#filter">-filter</a>, using a special technique known as
-EWA resampling. This produces very high quality results, especially when
-images become smaller (minified) in the output, which is very common when
-using '<code>perspective</code>' distortion. For example here we view
-a infinitely tiled 'plane' all the way to the horizon. </p>
-
-<pre>
-convert -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \
-  -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \
-   checks_tiled.jpg
-</pre>
-
-<p>Note that a infinitely tiled perspective images involving the horizon can
-be very slow, because of the number of pixels that are compressed to generate
-each individual pixel close to the 'horizon'.  You can turn off EWA
-resampling, by specifying the special <a href="command-line-options.html#filter">-filter</a> setting of
-'<code>point</code>' (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
-example, <a href="command-line-options.html#distort">-distort</a> will use the current <a href="command-line-options.html#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="command-line-options.html#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="command-line-options.html#repage">+repage</a>, to remove if it
-is unwanted. </p>
-
-<p>Setting <a href="command-line-options.html#verbose">-verbose</a> setting, will cause <a href="command-line-options.html#distort">-distort</a> to attempt to output the internal coefficients,
-and the <a href="command-line-options.html#fx">-fx</a> equivalent to the distortion, for expert study,
-and debugging purposes. This many not be available for all distorts. </p>
-
-<p>You can alternatively specify a special "<code><a href="command-line-options.html#define">-define</a> distort:viewport={geometry_string}</code>" setting which will
-specify the size and the offset of the generated 'viewport' image of the
-distorted image space.</p>
-
-<p>Setting a "<code><a href="command-line-options.html#define">-define</a>
-distort:scale={scale_factor}</code>" 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 "<code><a href="command-line-options.html#define">-define</a> resample:verbose=1</code>"
-will output the cylindrical filter lookup table created by the EWA (Elliptical
-Weighted Average) resampling algorithm. Note this table uses a squared radius
-lookup value. This is typically only used for debugging EWA resampling. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="distribute-cache"></a>-distribute-cache <var>port</var></h3>
-</div>
-
-<p class="magick-description">launch a distributed pixel cache server. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="dither"></a>-dither <var>method</var></h3>
-</div>
-
-<p class="magick-description">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.</p>
-
-<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="command-line-options.html#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="command-line-options.html#colors">-colors</a>, <a href="command-line-options.html#monochrome">-monochrome</a>, <a href="command-line-options.html#remap%20">-remap</a>, and <a href="command-line-options.html#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 <code>GIF:</code>, <code>XBM:</code>, and others, so dithering may also be used
-in these cases. </p>
-
-<p>Alternatively you can use <a href="command-line-options.html#random-threshold">-random-threshold</a>
-to generate purely random dither. Or use <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="draw"></a>-draw <var>string</var></h3>
-</div>
-
-<p class="magick-description">Annotate an image with one or more graphic primitives.</p>
-
-<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>
-
-<dl class="dl-horizontal">
-<dt>point</dt><dd>          x,y</dd>
-<dt>line</dt><dd>           x0,y0 x1,y1</dd>
-<dt>rectangle</dt><dd>      x0,y0 x1,y1</dd>
-<dt>roundRectangle</dt><dd> x0,y0 x1,y1 wc,hc</dd>
-<dt>arc</dt><dd>            x0,y0 x1,y1 a0,a1</dd>
-<dt>ellipse</dt><dd>        x0,y0 rx,ry a0,a1</dd>
-<dt>circle</dt><dd>         x0,y0 x1,y1</dd>
-<dt>polyline</dt><dd>       x0,y0  ...  xn,yn</dd>
-<dt>polygon</dt><dd>        x0,y0  ...  xn,yn</dd>
-<dt>bezier</dt><dd>         x0,y0  ...  xn,yn</dd>
-<dt>path</dt><dd>specification  </dd>
-<dt>image</dt><dd>          operator x0,y0 w,h filename</dd>
-</dl>
-
-<p>The text primitive:</p>
-
-<dl class="dl-horizontal">
-<dt>text</dt><dd>x0,y0 string</dd>
-</dl>
-<p>The text gravity primitive:</p>
-
-<dl class="dl-horizontal">
-<dt>gravity</dt><dd>NorthWest, North, NorthEast, West, Center, East, SouthWest, South, or SouthEast</dd>
-</dl>
-
-<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="command-line-options.html#gravity">-gravity</a> command-line option, except that it is limited in
-scope to the <a href="command-line-options.html#draw">-draw</a> option in which it appears.</p>
-
-<p>The transformation primitives:</p>
-
-<dl class="dl-horizontal">
-<dt>rotate</dt><dd>degrees</dd>
-<dt>translate</dt><dd>dx,dy</dd>
-<dt>scale</dt><dd>sx,sy</dd>
-<dt>skewX</dt><dd>degrees</dd>
-<dt>skewY</dt><dd>degrees</dd>
-</dl>
-
-<p>The pixel operation primitives:</p>
-
-<dl class="dl-horizontal">
-<dt>color</dt><dd>x0,y0 method</dd>
-<dt>matte</dt><dd>x0,y0 method</dd>
-</dl>
-
-<p>The shape primitives are drawn in the color specified by the preceding <a href="command-line-options.html#fill">-fill</a> setting.  For unfilled shapes, use <a href="command-line-options.html#fill">-fill none</a>.  You can optionally control the stroke (the
-"outline" of a shape) with the <a href="command-line-options.html#stroke">-stroke</a> and <a href="command-line-options.html#strokewidth">-strokewidth</a> settings.</p>
-
-<p>A <code>point</code> primitive is specified by a single <var>point</var> in the
-pixel plane, that is, by an ordered pair of integer coordinates,
-<var>x</var>,<var>y</var>. (As it involves only a single pixel, a <code>point</code>
-primitive is not affected by <a href="command-line-options.html#stroke">-stroke</a> or <a href="command-line-options.html#strokewidth">-strokewidth</a>.)</p>
-
-<p>A <code>line</code> primitive requires a start point and end point.</p>
-
-<p>A <code>rectangle</code> primitive is specified by the pair of points at the
-upper left and lower right corners.</p>
-
-<p>A <code>roundRectangle</code> primitive takes the same corner points as
-a <code>rectangle</code> followed by the width and height of the rounded corners
-to be removed.</p>
-
-<p>The <code>circle</code> primitive makes a disk (filled) or circle (unfilled).
-Give the center and any point on the perimeter (boundary).</p>
-
-<p>The <code>arc</code> primitive is used to inscribe an elliptical segment in
-to a given rectangle. An <code>arc</code> requires the two corners used for
-<code>rectangle</code> (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 <code>ellipse</code> to draw a partial (or whole) ellipse. Give the
-center point, the horizontal and vertical "radii" (the <var>semi-axes</var> of
-the ellipse) and start and end angles in degrees (e.g. 100,100 100,150
-0,360).</p>
-
-<p>The <code>polyline</code> and <code>polygon</code> primitives require three or
-more points to define their perimeters. A <code>polyline</code> is simply
-a <code>polygon</code> in which the final point is not stroked to the start
-point. When unfilled, this is a <var>polygonal line</var>. If the <a href="command-line-options.html#stroke">-stroke</a> setting is <code>none</code> (the default), then
-a <code>polyline</code> is identical to a <code>polygon</code>.  </p>
-
-<p>A <var>coordinate</var> 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>
-
-<pre>
--draw 'circle 100,100 150,150'
-</pre>
-
-<p>The <code>Bezier</code> primitive creates a spline curve and requires three
-or points to define its shape. The first and last points are the
-<var>knots</var> and these points are attained by the curve, while any
-intermediate coordinates are <var>control points</var>. 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
-<code>path</code> primitive or to draw multiple four-point bezier segments with
-the start and end knots of each successive segment repeated. For example:</p>
-
-<pre>
--draw 'bezier 20,50 45,100 45,0 70,50'
--draw 'bezier 70,50 95,100 95,0 120,50'
-</pre>
-
-<p>A <code>path</code> 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
-<var>donut holes</var> in objects. (See <a href="http://www.w3.org/TR/SVG/paths.html">Paths</a>.)</p>
-
-<p>Use <code>image</code> to composite an image with another image. Follow the
-image keyword with the composite operator, image location, image size, and
-filename:</p>
-
-<pre>
--draw 'image SrcOver 100,100 225,225 image.jpg'
-</pre>
-
-<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="compose.html">Alpha Compositing</a> for
-a detailed discussion of alpha composition methods that are available. </p>
-
-<p>The "special augmented compose operators" such as "dissolve" that require
-arguments cannot be used at present with the <code>-draw image</code> option.
- </p>
-
-<p>Use <code>text</code> 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 <code>Works like
-magick!</code> for an image titled <code>bird.miff</code>. </p>
-
-<pre>
--draw "text 100,100 'Works like magick!' "
-</pre>
-
-<p>See the <a href="command-line-options.html#annotate">-annotate</a> option for another convenient way
-to annotate an image with text.</p>
-
-<p>The <code>rotate</code> primitive rotates subsequent shape primitives and
-text primitives about the origin of the main image. If the <a href="command-line-options.html#region">-region</a> option precedes the <a href="command-line-options.html#draw">-draw</a>
-option, the origin for transformations is the upper left corner of the
-region.</p>
-
-<p>The <code>translate</code> primitive translates subsequent shape and text
-primitives.</p>
-
-<p>The <code>scale</code> primitive scales them.</p>
-
-<p>The <code>skewX</code> and <code>skewY</code> 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="command-line-options.html#affine">-affine</a>
-option. Transformations are cumulative within the <a href="command-line-options.html#draw">-draw</a>
-option. The initial affine matrix is not affected; that matrix is only changed
-by the appearance of another <a href="command-line-options.html#affine">-affine</a> option. If another
-<a href="command-line-options.html#draw">-draw</a> option appears, the current affine matrix is
-reinitialized from the initial affine matrix.</p>
-
-<p>Use the <code>color</code> primitive to change the color of a pixel to the
-fill color (see <a href="command-line-options.html#fill">-fill</a>). Follow the pixel coordinate with
-a method:</p>
-
-<pre>
-point
-replace
-floodfill
-filltoborder
-reset
-</pre>
-
-<p>Consider the target pixel as that specified by your coordinate. The
-<code>point</code> method recolors the target pixel. The <code>replace</code>
-method recolors any pixel that matches the color of the target pixel.
-<code>Floodfill</code> recolors any pixel that matches the color of the target
-pixel and is a neighbor, whereas <code>filltoborder</code> recolors any neighbor
-pixel that is not the border color. Finally, <code>reset</code> recolors all
-pixels.</p>
-
-<p>Use <code>matte</code> to the change the pixel matte value to transparent.
-Follow the pixel coordinate with a method (see the <code>color</code> primitive
-for a description of methods). The <code>point</code> method changes the matte
-value of the target pixel. The <code>replace</code> method changes the matte
-value of any pixel that matches the color of the target pixel.
-<code>Floodfill</code> changes the matte value of any pixel that matches the
-color of the target pixel and is a neighbor, whereas <code>filltoborder</code>
-changes the matte value of any neighbor pixel that is not the border color (<a href="command-line-options.html#bordercolor">-bordercolor</a>). Finally <code>reset</code> changes the
-matte value of all pixels.</p>
-
-<p>You can set the primitive color, font, and font bounding box color with <a href="command-line-options.html#fill">-fill</a>, <a href="command-line-options.html#font">-font</a>, and <a href="command-line-options.html#box">-box</a>
-respectively.  Options are processed in command line order so be sure to use
-these options <var>before</var> the <a href="command-line-options.html#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="magick-vector-graphics.html">Magick
-Vector Graphics</a> format.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="duplicate"></a>-duplicate <var>count,indexes</var></h3>
-</div>
-
-<p class="magick-description">duplicate an image one or more times.</p>
-
-<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 <code>+duplicate</code> to duplicate the last image in the current
-image sequence.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="edge"></a>-edge <var>radius</var></h3>
-</div>
-
-<p class="magick-description">detect edges within an image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="emboss"></a>-emboss <var>radius</var></h3>
-</div>
-
-<p class="magick-description">emboss an image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="encipher"></a>-encipher <var>filename</var></h3>
-</div>
-
-<p class="magick-description">Encipher pixels for later deciphering by <a href="command-line-options.html#decipher">-decipher</a>.</p>
-
-<p>Get the passphrase from the file specified by <var>filename</var>.</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;">
-  <h3 class="magick-header"><a id="encoding"></a>-encoding <var>type</var></h3>
-</div>
-
-<p class="magick-description">specify the text encoding.</p>
-
-<p>Choose from</p>
-
-<pre>
-AdobeCustom     AdobeExpert
-AdobeStandard   AppleRoman
-BIG5            GB2312
-Latin 2         None
-SJIScode        Symbol
-Unicode         Wansung
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="endian"></a>-endian <var>type</var></h3>
-</div>
-
-<p class="magick-description">Specify endianness (<code>MSB</code> or <code>LSB</code>) of the image.</p>
-
-<p>To print a complete list of endian types, use the <a href="command-line-options.html#list">-list endian</a> option.</p>
-
-<p>Use <a href="command-line-options.html#endian">+endian</a> to revert to unspecified endianness.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="enhance"></a>-enhance</h3>
-</div>
-
-<p class="magick-description">Apply a digital filter to enhance a noisy image.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="equalize"></a>-equalize</h3>
-</div>
-
-<p class="magick-description">perform histogram equalization on the image channel-by-channel.</p>
-
-<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: ... <code>-colorspace HSL -channel lightness
--equalize -colorspace RGB</code> ...</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 ... <code>-colorspace OHTA -channel red -equalize
--colorspace RGB</code> ...</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="evaluate"></a>-evaluate <var>operator value</var></h3>
-</div>
-
-<p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, or logical expression.</p>
-
-<p>(See the <a href="command-line-options.html#function">-function</a> operator for some
-multi-parameter functions. See the <a href="command-line-options.html#fx">-fx</a> operator if more
-elaborate calculations are needed.)</p>
-
-<p>The behaviors of each <var>operator</var> 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 <var>QuantumRange</var>. (If
-normalized pixels are used, they are restored, following the other
-calculations, to the full range by multiplying by <var>QuantumRange</var>.)</p>
-
-<table class="table table-condensed table-striped">
-  <col width="25%">
-  <col width="75%">
-  <thead>
-  <tr>
-  <th><var>operator</var></th>
-  <th>Summary (see further below for details)</th>
-  </tr>
-  </thead>
-  <tbody>
-
-    <tr><td>Abs </td>             <td>Add <var>value</var> to pixels and return absolute value. </td></tr>
-    <tr><td>Add </td>             <td>Add <var>value</var> to pixels. </td></tr>
-    <tr><td>AddModulus </td>      <td>Add <var>value</var> to pixels modulo <var>QuantumRange</var>.</td></tr>
-    <tr><td>And  </td>            <td>Binary AND of pixels with <var>value</var>.</td></tr>
-    <tr><td>Cos, Cosine </td>             <td>Apply cosine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>
-    <tr><td>Divide  </td>         <td>Divide pixels by <var>value</var>.</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 <var>value</var> bits (i.e., multiply pixels by 2<sup><var>value</var></sup>).</td></tr>
-    <tr><td>Log  </td>            <td>Apply scaled logarithm to normalized pixels.</td></tr>
-    <tr><td>Max  </td>            <td>Set pixels to maximum of <var>value</var> and current pixel <var>value</var> (i.e. set any pixels currently less than <var>value</var> to <var>value</var>).</td></tr>
-    <tr><td>Mean  </td>            <td>Add the <var>value</var> 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>Set pixels to minimum of <var>value</var> and current pixel <var>value</var> (i.e. set any pixels currently greater than <var>value</var> to <var>value</var>).</td></tr>
-    <tr><td>Multiply </td>        <td>Multiply pixels by <var>value</var>.</td></tr>
-    <tr><td>Or  </td>             <td>Binary OR of pixels with <var>value</var>.</td></tr>
-    <tr><td>Pow </td>             <td>Raise normalized pixels to the power <var>value</var>.</td></tr>
-    <tr><td>RightShift </td>      <td>Shift the pixel values right by <var>value</var> bits (i.e., divide pixels by 2<sup><var>value</var></sup>).</td></tr>
-    <tr><td>RMS</td>            <td>Square the pixel and add the <var>value</var>.</td></tr>
-    <tr><td>RootMeanSquare</td>            <td>Square the pixel and add the <var>value</var>.</td></tr>
-    <tr><td>Set </td>             <td>Set pixel equal to <var>value</var>.</td></tr>
-    <tr><td>Sin, Sine </td>             <td>Apply sine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>
-    <tr><td>Subtract </td>        <td>Subtract <var>value</var> from pixels.</td></tr>
-    <tr><td>Xor </td>             <td>Binary XOR of pixels with <var>value.</var></td></tr>
-
-    <tr><td> </td><td> </td></tr>
-
-   <tr><td>Gaussian-noise</td><td> </td></tr>
-   <tr><td>Impulse-noise</td><td> </td></tr>
-   <tr><td>Laplacian-noise</td><td> </td></tr>
-   <tr><td>Multiplicative-noise</td>      <td>(These are equivalent to the corresponding <a href="command-line-options.html#noise">-noise</a> operators.)</td></tr>
-   <tr><td>PoissonNoise</td><td> </td></tr>
-   <tr><td>Uniform-noise</td><td> </td></tr>
-
-    <tr><td> </td><td> </td></tr>
-
-   <tr><td>Threshold </td>       <td>Threshold pixels larger than <var>value</var>.</td></tr>
-   <tr><td>ThresholdBlack </td>  <td>Threshold pixels to zero values equal to or below <var>value</var>.</td></tr>
-   <tr><td>ThresholdWhite </td>  <td>Threshold pixels to maximum values above <var>value</var>.  </td></tr>
- </tbody>
- </table>
-
-<p>The specified functions are applied only to each previously set <a href="command-line-options.html#channel">-channel</a> in the image. If necessary, the results of the
-calculations are truncated (clipped) to fit in the interval [0, <var>QuantumRange</var>].  The transparency channel of the image is
-represented as a 'alpha' values (0 = fully transparent), so, for example, a
-<code>Divide</code> by 2 of the alpha channel will make the image
-semi-transparent.  Append the percent symbol '<code>%</code>' to specify a value
-as a percentage of the <var>QuantumRange</var>.</p>
-
-<p>To print a complete list of <a href="command-line-options.html#evaluate">-evaluate</a> operators, use
-<a href="command-line-options.html#list">-list evaluate</a>.</p>
-
-<p>The results of the <code>Add</code>, <code>Subtract</code> and
-<code>Multiply</code> methods can also be achieved using either the <a href="command-line-options.html#level">-level</a> or the <a href="command-line-options.html#level">+level</a> operator, with
-appropriate argument, to linearly modify the overall range of color values.
-Please note, however, that <a href="command-line-options.html#level">-level</a> treats transparency as
-'matte' values (0 = opaque), while <a href="command-line-options.html#level">-evaluate</a> works with
-'alpha' values.</p>
-
-<p><code>AddModulus</code> has been added as of ImageMagick 6.4.8-4 and provides
-addition modulo the <var>QuantumRange</var>. It is therefore
-equivalent to <code>Add</code> unless the resulting pixel value is outside the
-interval [0, <var>QuantumRange</var>]. </p>
-
-<p><code>Exp or Exponential</code> has been added as of ImageMagick 6.6.5-1 and
-works on normalized pixel values. The <var>value</var> used with
-<code>Exp</code> 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, <var>QuantumRange</var>]. The
-formula is expressed below. </p>
-
-<p class="text-center">
-exp(<var>value</var> × <b><var>u</var></b>)
-</p>
-
-<p> If the input image is squared, for example, using <a href="command-line-options.html#-function">-function polynomial "2 0 0"</a>, then a decaying Gaussian function will be
-the result.</p>
-
-<p><code>Log</code> has been added as of ImageMagick 6.4.2-1 and works on
-normalized pixel values. This a <var>scaled</var> log function. The <var>value</var> used with <code>Log</code> provides a <var>scaling
-factor</var> that adjusts the curvature in the graph of the log function. The
-formula applied to a normalized value <b><var>u</var></b> is below. </p>
-
-<p class="text-center">
-log(<var>value</var> × <b><var>u</var></b> + 1) / log(<var>value</var> + 1)
-</p>
-
-<p><code>Pow</code> has been added as of ImageMagick 6.4.1-9, and works on
-normalized pixel values. Note that <code>Pow</code> is related to the <a href="command-line-options.html#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="command-line-options.html#gamma">-gamma</a> is simply the reciprocal of the value used
-with <code>Pow</code>.</p>
-
-<p><code>Cosine</code> and <code>Sine</code> 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 <code>Cos</code> and <code>Sin</code> may also be used.  The output
-is biased 50% and normalized by 50% so as to fit in the respective color value
-range.  The <var>value</var> scaling of the <var>period</var> 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 <var>value</var> is 1, the effective period is simply the <var>QuantumRange</var>; but if the <var>value</var> is 2,
-then the effective period is the <var>half</var> the <var>QuantumRange</var>.</p>
-
-<p class="text-center">
-0.5 + 0.5 × cos(2 π <b><var>u</var></b> × <var>value</var>).
-</p>
-
-<p>See also the <a href="command-line-options.html#function">-function</a> operator, which is a
-multi-value version of evaluate. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="evaluate-sequence"></a>-evaluate-sequence <var>operator</var></h3>
-</div>
-
-<p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, or
-logical expression over a sequence of images.</p>
-
-<p>To print a complete list of <a href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a> operators, use <a href="command-line-options.html#list">-list evaluate</a>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="extent"></a>-extent <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Set the image size and offset.</p>
-
-<p>If the image is enlarged, unfilled areas are set to the background color.
-To position the image, use offsets in the <var>geometry</var>
-specification or precede with a <a href="command-line-options.html#gravity">-gravity</a> setting.  To
-specify how to compose the image with the background, use <a href="command-line-options.html#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>
-
-<pre>
-convert input.jpg -resize 800x600 -background black -compose Copy \ 
-  -gravity center -extent 800x600 -quality 92 output.jpg
-</pre>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="extract"></a>-extract <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Extract the specified area from image.</p>
-
-<p>This option is most useful for extracting a subregion of a very large raw
-image.  Note that these two commands are equivalent:</p>
-
-<pre>
-convert -size 16000x16000 -depth 8 -extract 640x480+1280+960 \ 
-  image.rgb image.png",
-convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \
-  image.rgb image.png"
-</pre>
-
-<p>If you omit the offsets, as in</p>
-
-<pre>
-convert -size 16000x16000 -depth 8 -extract 640x480 \ 
-  image.rgb image.png
-</pre>
-
-<p>the image is <var>resized</var> to the specified dimensions instead,
-equivalent to:</p>
-
-<pre>
-convert -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png
-</pre>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="family"></a>-family <var>fontFamily</var></h3>
-</div>
-
-<p class="magick-description">Set a font family for text.</p>
-
-<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="command-line-options.html#font">-font</a>, <a href="command-line-options.html#stretch">-stretch</a>, <a href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>.  </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="features"></a>-features <var>distance</var></h3>
-</div>
-
-<p class="magick-description">display (cooccurrence matrix) texture measure features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.</p>
-
-<pre>
-Angular Second Moment       Sum Entropy
-Contrast                    Entropy
-Correlation                 Difference Variance
-Sum of Squares Variance     Difference Entropy
-Inverse Difference Moment   Information Measure of Correlation 1
-Sum Average                 Information Measure of Correlation 2
-Sum Variance                Maximum Correlation Coefficient
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="fft"></a>-fft</h3>
-</div>
-
-<p class="magick-description">implements the forward discrete Fourier transform (DFT).</p>
-
-<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>
-
-<pre>
-convert image.png -fft fft_image.miff
-</pre>
-
-<p>generates a magnitude image as <code>fft_image.miff[0]</code> and a phase
-image as <code>fft_image.miff[1]</code>. Similarly,</p>
-
-<pre>
-convert image.png -fft fft_image.png
-</pre>
-
-<p>generates a magnitude image as <code>fft_image-0.png</code> and a phase image
-as <code>fft_image-1.png</code>. If you prefer this representation, then you can
-force any of the other formats to produce two output images by including <a href="command-line-options.html#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="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting.</p>
-
-<p>Both output components will have dynamic ranges that fit within
-[0, <var>QuantumRange</var>], so that HDRI need not be enabled.
-Phase values nominally range from 0 to 2*π, but is scaled to span the full
-dynamic range.  (The first few releases had non-HDRI scaled but HDRI not
-scaled). 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>
-
-<pre>
-convert fft_image.miff[0] -contrast-stretch 0 \
-  -evaluate log 1000 fft_image_spectrum.png"
-</pre>
-
-<p>where either <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> 0 or <a href="command-line-options.html#auto-level">-auto-level</a> is used to scale the image to full dynamic
-range, first. The argument to the <a href="command-line-options.html#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="command-line-options.html#fft">-fft</a>.</p>
-
-<p>Use <a href="command-line-options.html#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, PFM or MPC 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. With either
-MIFF or TIF, one should add -define quantum:format=32, to allow those image
-types to work properly in HDRI mode without clipping.</p>
-
-<p>The real and imaginary component images resulting from <a href="command-line-options.html#fft">+fft</a> are 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="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, <a href="http://www.fmwconcepts.com/imagemagick/fourier_transforms/fourier.html">Fred's Fourier Processing With ImageMagick page</a> or this <a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>
- entry.  </p>
-
-<p>By default the FFT is normalized (and the IFT is not). Use "<code><a href="command-line-options.html#define">-define</a> fourier:normalize=forward</code> to explicitly normalize the FFT and unnormalize the IFT.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="fill"></a>-fill <var>color</var></h3>
-</div>
-
-<p class="magick-description">color to use when filling a graphic primitive.</p>
-
-<p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,
-HSL, HSLA, CMYK, or CMYKA specification.  See <a href="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>
-
-<pre>
--fill blue
--fill "#ddddff"
--fill "rgb(255,255,255)"
-</pre>
-
-<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
-
-<p>To print a complete list of color names, use the <a href="command-line-options.html#list">-list color</a> option.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="filter"></a>-filter <var>type</var></h3>
-</div>
-
-<p class="magick-description">Use this <var>type</var> of filter when resizing or distorting an image.</p>
-
-<p>Use this option to affect the resizing operation of an image during
-operations such as <a href="command-line-options.html#resize">-resize</a> and <a href="command-line-options.html#distort">-distort</a>. For example you can use a simple resize filter such as:</p>
-
-<pre>
-Point       Hermite       Cubic
-Box         Gaussian      Catrom
-Triangle    Quadratic     Mitchell
-</pre>
-
-<p>The <code>Bessel</code> and <code>Sinc</code> filter is also provided (as well
-as a faster <code>SincFast</code> 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="command-line-options.html#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>
-Lanczos       Hamming       Parzen
-Blackman      Kaiser        Welsh
-Hanning       Bartlett      Bohman
-</pre>
-
-<p>Also one special self-windowing filter is also provided
-<code>Lagrange</code>, 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
-<code>Mitchell</code> for a colormapped image, an image with a matte channel, or
-if the image is enlarged.  Otherwise the filter default to
-<code>Lanczos</code>.</p>
-
-<p>To print a complete list of resize filters, use the <a href="command-line-options.html#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="command-line-options.html#define">-define</a> and <a href="command-line-options.html#set">-set</a>):-</p>
-
-<table class="table table-condensed table-striped">
-  <tr>
-    <td>-define filter:blur=<var>factor</var></td>
-    <td>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. </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:support=<var>radius</var></td>
-    <td>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 'preferred' support size. Some filters like
-    <code>Lagrange</code> 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.
-    </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:lobes=<var>count</var></td>
-    <td>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.</td>
-  </tr>
-
-  <tr>
-    <td>-define filter:sigma=<var>value</var></td>
-    <td>The 'sigma' value used to define the <code>Gaussian</code> filter.  Default
-    sigma value is '<code>0.5</code>'.  It only effects <code>Gaussian</code> but
-    does not shrink (but may enlarge) the filter's 'support'.  It can be used
-    to generate very small blurs but without the filter 'missing' pixels due
-    to using a small support setting. A larger value of '<code>0.707</code>'
-    (a value of '1/sqrt(2)') is another common setting. </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:b=<var>b-spline_factor</var></td>
-  </tr><tr>
-    <td>-define filter:c=<var>keys_alpha_factor</var></td>
-    <td>Redefine the values used for cubic filters such as <code>Cubic</code>,
-    <code>Catrom</code>, <code>Mitchel</code>, and <code>Hermite</code>, as well as
-    the <code>Parzen</code> cubic windowing function. If only one of the values
-    are defined, the other is set so as to generate a 'Cubic-Keys' filter.
-    The values meaning was defined by a research paper by
-    Mitchell-Netravali.</td>
-  </tr>
-
-  <tr>
-    <td>-define filter:kaiser-beta=<var>value</var></td>
-    <td>The 'alpha' value used to as part of the Kaiser Windowing function.
-    Default value is '6.5'.  It only effects Kaiser windowing function, and
-    does not effect any other attributes.
-    Before ImageMagick v6.7.6-10, this option was known as "filter:alpha", (an
-    inheritance from the very old "zoom" program). It was changed to bring the
-    function in line with more modern academic research usage, and better
-    assign it be more definitive.  </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:kaiser-alpha=<var>value</var></td>
-    <td>This value when multiplied by 'PI' is equivalent to "kaiser-beta", and
-    will override that setting.  It only effects Kaiser windowing function,
-    and does not effect any other attributes. </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:filter=<var>filter_function</var></td>
-    <td>Use this function directly as the weighting filter.  This will allow
-    you to directly use a windowing function such as <code>Blackman</code>,
-    as a resampling filter, rather than as its normal usage as a windowing
-    function.  If defined, no windowing function also defined, the window function is set
-    to <code>Box</code>). Directly specifying <code>Sinc</code> or <code>Jinc</code>
-    as a filter will also do this. </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:window=<var>filter_function</var></td>
-    <td>The IIR (infinite impulse response) filters <code>Sinc</code> and
-    <code>Jinc</code> are windowed (brought down to zero over the defined
-    support range) with the given filter. This allows you to specify a filter
-    function to be used as a windowing function for these IIR filters.
-    Many of the defined filters are actually windowing functions for these IIR
-    filters.  A typical choices is <code>Box</code>, (which effectively turns
-    off the windowing function).  </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:win-support=<var>radius</var></td>
-    <td>Scale windowing function to this size instead.  This causes the windowing
-    (or self-windowing Lagrange filter) to act is if the support window is
-    larger than what is actually supplied to the calling operator.  The filter
-    however is still clipped to the real support size given.  If unset this
-    will equal the normal filter support size. </td>
-  </tr>
-
-  <tr>
-    <td>-define filter:verbose=<var>1</var></td>
-    <td>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.  Note however that some filters are internally defined in terms of other filters.  The <code>Lanczos</code> filter for example is defined in terms of
-    a <code>SincFast</code> windowed <code>SincFast</code> filter, while
-    <code>Mitchell</code> is defined as a general <code>Cubic</code> family filter
-    with specific 'B' and 'C' settings. </td>
-  </tr>
-
-</table>
-
-<p>For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):</p>
-
-<pre>
-convert image.png \
-  -filter sinc \
-  -set filter:window=jinc \
-  -set filter:lobes=8 \
-  -resize 150%   image.jpg"
-</pre>
-
-<p>Or a raw un-windowed Sinc filter with 4 lobes:</p>
-
-<pre>
-convert image.png \
-  -set filter:filter=sinc \
-  -set filter:lobes=4 \
-  -resize 150%   image.jpg"
-</pre>
-
-<p>To extract the data for a raw windowing function, combine it with
-a '<code>Box</code>' filter.  For example the '<code>Welch</code> parabolic
-windowing function. </p>
-
-<pre>
-convert null: -define filter:filter=Box \
-  -define filter:window=Welch \
-  -define filter:support=1.0 \
-  -define filter:verbose=1 \
-  -resize 2 null:  &gt; window_welch.dat
-gnuplot
-  set grid
-  plot \"window_welch.dat\" with lines
-</pre>
-
-<p>Note that the use of expert options is provided for image processing experts
-who have studied and understand 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;">
-  <h3 class="magick-header"><a id="flatten"></a>-flatten</h3>
-</div>
-
-<p class="magick-description">This is a simple alias for the <a href="command-line-options.html#layers">-layers</a> method "flatten".</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="flip"></a>-flip</h3>
-</div>
-
-<p class="magick-description">create a <var>mirror image</var></p>
-
-<p>reflect the scanlines in the vertical direction. The image will be mirrored
-upside-down. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="floodfill"></a>-floodfill {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var> <var>color</var></h3>
-</div>
-
-<p class="magick-description">floodfill the image with color at the specified offset.</p>
-
-<p>Flood fill starts from the given 'seed point' which is not gravity effected.
-Any color that matches within <a href="command-line-options.html#fuzz">-fuzz</a> color distance of the
-given <var>color</var>  argument, connected to that 'seed point'
-will be replaced with the current <a href="command-line-options.html#fill">-fill</a> color. </p>
-
-<p>Note that if the pixel at the 'seed point' does not itself match the given
-<var>color</var> (according to <a href="command-line-options.html#fuzz">-fuzz</a>), then no
-action will be taken. </p>
-
-<p>This operator works more like the <a href="command-line-options.html#opaque">-opaque</a> option, than
-a more general flood fill that reads the matching color directly at the 'seed
-point'. For this form of flood fill, look at <a href="command-line-options.html#draw">-draw</a>  and
-its 'color floodfill' drawing method.  </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="flop"></a>-flop</h3>
-</div>
-
-<p class="magick-description">create a <var>mirror image</var>.</p>
-
-<p>Reflect the scanlines in the horizontal direction, just like the image in
-a vertical mirror. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="font"></a>-font <var>name</var></h3>
-</div>
-
-<p class="magick-description">set the font to use when annotating images with text, or creating labels.</p>
-
-<p>To print a complete list of fonts, use the <a href="command-line-options.html#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 <code>Arial.ttf</code>
-is a TrueType font file, <code>ps:helvetica</code> is PostScript font, and
-<code>x:fixed</code> is X11 font.</p>
-
-<p>For other settings that affect fonts, see the options <a href="command-line-options.html#family">-family</a>, <a href="command-line-options.html#stretch">-stretch</a>, <a href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="foreground"></a>-foreground <var>color</var></h3>
-</div>
-
-<p class="magick-description">Define the foreground color for menus.", "display</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
-
-<p>The default foreground color is black.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="format"></a>-format <var>type</var></h3>
-</div>
-
-<p class="magick-description">the image format type.</p>
-
-<p>When used with the <code>mogrify</code> utility, this option converts any
-image to the image <a href="formats.html">format</a> you specify.
-For a list of image format types supported by ImageMagick, use <a href="command-line-options.html#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="command-line-options.html#format">-format</a>. For
-example, if you specify <var>tiff</var> as the format type and the
-input image filename is <var>image.gif</var>, the output image
-filename becomes <var>image.tiff</var>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="format_identify_"></a>-format <var>string</var></h3>
-</div>
-
-<p class="magick-description">output formatted image characteristics.</p>
-
-<p>See <a href="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;">
-  <h3 class="magick-header"><a id="frame"></a>-frame <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Surround the image with a border or beveled frame.</p>
-
-<p>The color of the border is specified with the <a href="command-line-options.html#mattecolor">-mattecolor</a> command line option. </p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>size</var> portion of the <var>geometry</var> 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 <var>geometry</var> argument, then the border added is
-a solid color.  Offsets <var>x</var> and <var>y</var>, if present, specify that
-the width and height of the border is partitioned to form an outer bevel of
-thickness <var>x</var> pixels and an inner bevel of thickness
-<var>y</var> pixels. Negative offsets make no sense as frame arguments.
-</p>
-
-<p>The <a href="command-line-options.html#frame">-frame</a> option is affected by the current <a href="command-line-options.html#compose">-compose</a> setting and assumes that this is using the default
-'<code>Over</code>' composition method.  It generates an image of the appropriate
-size with the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting, and then
-draws the frame of four distinct colors close to the current <a href="command-line-options.html#mattecolor">-mattecolor</a>.  The original image is then overlaid onto
-center of this image.  This means that with the default compose method of
-'<code>Over</code>' any transparent parts may be replaced by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
-
-<p>The image composition is not
-affected by the <a href="command-line-options.html#gravity">-gravity</a> option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="frame_import_"></a>-frame</h3>
-</div>
-
-<p class="magick-description">include the X window frame in the imported image. </p>
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="function"></a>-function <var>function</var> <var>parameters</var></h3>
-</div>
-
-<p class="magick-description">Apply a function to channel values.</p>
-
-<p>This operator performs calculations based on the given arguments to modify
-each of the color values for each previously set <a href="command-line-options.html#channel">-channel</a> in the image. See <a href="command-line-options.html#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="command-line-options.html#evaluate">-evaluate</a> operator. (Added in
-ImageMagick 6.4.8−8.)</p>
-
-<p>Here,  <var>parameters</var> is a comma-separated list of
-numerical values. The number of values varies depending on which <var>function</var> is selected. Choose the <var>function</var> from:</p>
-
-<pre>
-Polynomial
-Sinusoid
-Arcsin
-Arctan
-</pre>
-
-<p>To print a complete list of <a href="command-line-options.html#function">-function</a> operators,
-use <a href="command-line-options.html#list">-list function</a>. Descriptions follow.</p>
-
-<dl class="dl-horizontal">
-  <dt>Polynomial</dt>
-  <dd><p>The <code>Polynomial</code> function takes an arbitrary number of parameters,
-these being the coefficients of a polynomial, in decreasing order of degree.
-That is, entering</p>
-
-<pre>
--function Polynomial <var>a</var><sub><var>n</var></sub>,<var>a</var><sub><var>n</var>-1</sub>,...<var>a</var><sub>1</sub>,<var>a</var><sub>0</sub>
-</pre>
-
-<p>will invoke a polynomial function given by</p>
-
-<pre>
-<var>a</var><sub><var>n</var></sub> <b><var>u</var></b><sup><var>n</var></sup> + <var>a</var><sub><var>n</var>-1</sub> <b><var>u</var></b><sup><var>n</var>-1</sup> + ··· <var>a</var><sub>1</sub> <b><var>u</var></b> + <var>a</var><sub>0</sub>,
-</pre>
-
-<p>where <b><var>u</var></b> is pixel's original normalized channel value.</p>
-
-<p>The <code>Polynomial</code> function can be used in place of <code>Set</code>
-(the <var>constant</var> polynomial) and <code>Add</code>, <code>Divide</code>,
-<code>Multiply</code>, and <code>Subtract</code> (some <var>linear</var>
-polynomials) of the <a href="command-line-options.html#evaluate">-evaluate</a> operator. The <a href="command-line-options.html#level">-level</a> operator also affects channels linearly. Some
-correspondences follow.</p>
-
-<table class="table table-condensed table-striped">
-  <tr>
-        <td>-evaluate Set <var>value</var> </td>
-        <td>-function Polynomial <var>value</var></td>
-        <td>(Constant functions; set <var>value</var>×100% gray when channels are RGB.)</td>
-  </tr>
-  <tr>
-        <td>-evaluate Add <var>value</var> </td>
-        <td>-function Polynomial 1,<var>value</var></td>
-  </tr>
-  <tr>
-        <td>-evaluate Subtract <var>value</var> </td>
-        <td>-function Polynomial 1,−<var>value</var></td>
-  </tr>
-  <tr>
-        <td>-evaluate Multiply <var>value</var> </td>
-        <td>-function Polynomial <var>value</var>,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 <code>Polynomial</code> function gives great versatility, since
-polynomials can be used to fit any continuous curve to any degree of accuracy
-desired.</p>
-
-</dd>
-<dt>Sinusoid</dt>
-<dd>
-<p>The <code>Sinusoid</code> 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>
-
-<pre>
--function <code>Sinusoid</code> <var>freq</var>,[<var>phase</var>,[<var>amp</var>,[<var>bias</var>]]]
-</pre>
-
-<p>where <var>phase</var> is in degrees. (The domain [0,1] of the function
-corresponds to 0 through <var>freq</var>×360 degrees.)
-The result is that if a pixel's normalized channel value is originally
-<b><var>u</var></b>, its resulting normalized value is given by </p>
-
-<pre>
-<var>amp</var> * sin(2*π* (<var>freq</var> * <b><var>u</var></b> + <var>phase</var> / 360)) + <var>bias</var>
-</pre>
-
-<p> For example, the following generates a curve that starts and ends at 0.9
-(when <b><var>u</var></b>=0 and 1, resp.), oscillating three times between
-.7−.2=.5 and .7+.2=.9. </p>
-
-<pre>
--function Sinusoid 3,-90,.2,.7
-</pre>
-
-<p>The default values of <var>amp</var> and <var>bias</var> are both .5. The default for <var>phase</var>
-is 0.</p>
-
-<p>The <code>Sinusoid</code> function generalizes <code>Sin</code> and
-<code>Cos</code> of the <a href="command-line-options.html#evaluate">-evaluate</a> operator by allowing
-varying amplitude, phase and bias. The correspondence is as follows.</p>
-
-<table class="table table-condensed table-striped">
-  <tr>
-        <td>-evaluate Sin <var>freq</var> </td>
-        <td>-function Sinusoid <var>freq</var>,0 </td>
-  </tr>
-  <tr>
-        <td>-evaluate Cos <var>freq</var> </td>
-        <td>-function Sinusoid <var>freq</var>,90 </td>
-  </tr>
-</table>
-  </dd>
-<dt>ArcSin</dt>
-<dd>
-<p>The <code>ArcSin</code> 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>
-
-<pre>
--function <code>ArcSin</code> <var>width</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]
-</pre>
-
-<p>with all values given in terms of normalized 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 (<var>width</var>), and output (<var>width</var>) values. '<code>1.0,0.5,1.0,0.5</code>' </p>
-
-<pre>
-<var>range</var>/π * asin( 2/<var>width</var> * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var>
-</pre>
-
-</dd>
-<dt>ArcTan</dt>
-<dd>
-<p>The <code>ArcTan</code> 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>
-
-<pre>
--function <code>ArcTan</code> <var>slope</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]
-</pre>
-
-<p>Defaulting to '<code>1.0,0.5,1.0,0.5</code>'.
-</p>
-
-<pre>
-<var>range</var>/π * atan( <var>slope</var>*π * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var>
-</pre>
-  </dd>
-  
-</dl>
-
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="fuzz"></a>-fuzz <var>distance</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">Colors within this <var>distance</var> are considered equal.</p>
-
-<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="command-line-options.html#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 <var>distance</var> can be in absolute intensity units or, by
-appending <code>%</code> as a percentage of the maximum possible intensity (255,
-65535, or 4294967295).</p>
-
-<p>Use <a href="command-line-options.html#fuzz">+fuzz</a> to reset the fuzz value to 0.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="fx"></a>-fx <var>expression</var></h3>
-</div>
-
-<p class="magick-description">apply a mathematical expression to an image or image channels.</p>
-
-<p>If the first character of <var>expression</var> is <code>@</code>,
-the expression is read from a file titled by the remaining characters in the
-string.</p>
-
-<p>See <a href="fx.html">FX,
-The Special Effects Image Operator</a> for a detailed discussion of this
-option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="gamma"></a>-gamma <var>value</var></h3>
-</div>
-
-<p class="magick-description">level of gamma correction.</p>
-
-<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
-<code>0.8</code> to <code>2.3</code>. 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.,
-<code>1.7,2.3,1.2</code>).</p>
-
-<p>Use <a href="command-line-options.html#gamma">+gamma <var>value</var></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).  Write the "file gamma" which is the reciprocal of the
-display gamma; e.g., if your image is sRGB and you want to write a PNG gAMA
-chunk, use</p>
-
-<pre>
-convert input.png +gamma .45455 output.png
-</pre>
-
-<p>(0.45455 is 1/2.2)</p>
-
-<p>Note that gamma adjustments are also available via the <a href="command-line-options.html#level">-level</a> operator.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br>-gaussian-blur <var>radius</var>x<var>sigma</var></h3>
-</div>
-
-<p class="magick-description">Blur the image with a Gaussian operator.</p>
-
-<p>Convolve the image with a Gaussian or normal distribution using the given
-<var>Sigma</var> value.  The formula is:</p>
-
-<p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"> </p>
-
-<p>The <var>Sigma</var> value is the important argument, and
-determines the actual amount of blurring that will take place. </p>
-
-<p>The <var>Radius</var> 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 <var>Radius</var> the radius the slower the
-operation is. However too small a <var>Radius</var>, and sever
-aliasing effects may result.  As a guideline, <var>Radius</var>
-should be at least twice the <var>Sigma</var> value, though three
-times will produce a more accurate result. </p>
-
-<p>This differs from the faster <a href="command-line-options.html#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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="geometry"></a>-geometry <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Set the preferred size and location of the image.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="gravity"></a>-gravity <var>type</var></h3>
-</div>
-
-<p class="magick-description">Sets the current gravity suggestion for various other settings and options.</p>
-
-<p>Choices include: <code>NorthWest</code>, <code>North</code>,
-<code>NorthEast</code>, <code>West</code>, <code>Center</code>, <code>East</code>,
-<code>SouthWest</code>, <code>South</code>, <code>SouthEast</code>.  Use <a href="command-line-options.html#list">-list gravity</a> to get a complete list of <a href="command-line-options.html#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 <code>Center</code> forces the text to be centered within
-the image. By default, the image gravity is <code>NorthWest</code>. See <a href="command-line-options.html#draw">-draw</a> for more details about graphic primitives.  Only the
-text primitive of <a href="command-line-options.html#draw">-draw</a> is affected by the <a href="command-line-options.html#gravity">-gravity</a> option.</p>
-
-<p>The <a href="command-line-options.html#gravity">-gravity</a> option is also used in concert with the
-<a href="command-line-options.html#geometry">-geometry</a> setting and other settings or options that
-take <var>geometry</var> as an argument, such as the <a href="command-line-options.html#crop">-crop</a> option. </p>
-
-<p>If a <a href="command-line-options.html#gravity">-gravity</a> setting occurs before another option
-or setting having a <var>geometry</var> argument that specifies an
-offset, the offset is usually applied to the point within the image suggested
-by the <a href="command-line-options.html#gravity">-gravity</a> argument.  Thus, in the following
-command, for example, suppose the file <code>image.png</code> has dimensions
-200x100. The offset specified by the argument to <a href="command-line-options.html#region">-region</a>
-is (−40,+20). The argument to <a href="command-line-options.html#gravity">-gravity</a> is
-<code>Center</code>, which suggests the midpoint of the image, at the point
-(100,50). The offset (−40,20) is applied to that point, giving
-(100−40,50+20)=(60,70), so the specified 10x10 region is located at
-that point. (In addition, the <a href="command-line-options.html#gravity">-gravity</a> affects the
-region itself, which is <var>centered</var> at the pixel
-coordinate (60,70). (See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.)</p>
-
-<pre>
-convert image.png -gravity Center -region 10x10-40+20 \ 
-  -negate output.png
-</pre>
-
-<p>When used as an option to <a href="composite.html">composite</a>, <a href="command-line-options.html#gravity">-gravity</a> gives the direction that the image gravitates
-within the composite.</p>
-
-<p>When used as an option to <a href="montage.html">montage</a>, <a href="command-line-options.html#gravity">-gravity</a> gives the direction that an image gravitates
-within a tile. The default gravity is <code>Center</code> for this purpose.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="grayscale"></a>-grayscale <var>method</var></h3>
-</div>
-
-<p class="magick-description">convert image to grayscale.</p>
-
-<p>This will use one of the <a href="command-line-options.html#intensity">-intensity</a> methods to
-convert the given image into a linear-grayscale image. </p>
-
-<p>For example, to convert an image to (linear) Rec709Luminance grayscale,  type:</p>
-
-<pre>
-convert in.png -grayscale Rec709Luminance out.png
-</pre>
-
-<p>which is equivalent to:</p>
-
-<pre>
-convert in.png -colorspace gray out.png
-</pre>
-
-<p>Similarly, to convert an image to (non-linear) Rec709Luma grayscale,  type:</p>
-
-<pre>
-convert in.png -grayscale Rec709Luma out.png
-</pre>
-
-<p>which is equivalent to:</p>
-
-<pre>
-convert in.png -set colorspace RGB -colorspace gray out.png
-</pre>
-
-<p>Note that a 'colorspace' intensity method will produce the same result
-regardless of the current colorpsace of the image. But a 'mathematical'
-intensity method will depend on the current colorspace the image is currently
-using. </p>
-
-<p>While this operation uses an <a href="command-line-options.html#intensity">-intensity</a> method, 
-it does not use or set the <a href="command-line-options.html#intensity">-intensity</a> setting, so
-will not effect other operations that may use that setting.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="green-primary"></a>-green-primary <var>x,y</var></h3>
-</div>
-
-<p class="magick-description">green chromaticity primary point.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="hald-clut"></a>-hald-clut</h3>
-</div>
-
-<p class="magick-description">apply a Hald color lookup table to the image.</p>
-
-<p>A Hald color lookup table is a 3-dimensional color cube mapped to 2
-dimensions.  Create it with the <code>HALD:</code> 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>
-
-<pre>
-convert image.png hald.png -hald-clut transform.png
-</pre>
-
-<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="command-line-options.html#channel">-channel</a> setting effected, nor can it adjust or modify an
-images transparency or alpha/matte channel.</p>
-
-<p>See also <a href="command-line-options.html#clut">-clut</a> which provides color value replacement
-of the individual color channels, usually involving a simpler gray-scale
-image. E.g:  gray-scale to color replacement, or modification by a histogram
-mapping. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="help"></a>-help</h3>
-</div>
-
-<p class="magick-description">print usage instructions.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="highlight-color"></a>-highlight-color <var>color</var></h3>
-</div>
-
-<p class="magick-description">when comparing images, emphasize pixel differences with this color.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="hough-lines"></a>-hough-lines <var>width</var>x<var>height</var>{<var>+threshold</var>}</h3>
-</div>
-
-<p class="magick-description">identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
-
-<p>Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.</p>
-
-<p>The process accumulates counts for every white pixel in the binary edge image for every possible orientation (for angles from 0 to 179 in 1 deg increments) and distance from the center of the image to the corners (in 1 px increments). It stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator will be 180x(diagonal/2). Next it searches the accumulator for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. The algorithm uses slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are drawn from the given endpoints. The counts are a measure of the length of the lines.</p>.
-
-<p>The WxH arguments specify the filter size for locating the peaks in the Hough accumulator. The threshold excludes lines whose counts are less than the threshold value.</p>
-
-<p>Use <code><a href="command-line-options.html#background">-background</a></code> to specify the color of the background onto which the lines will be drawn. The default is black.</p>
-
-<p>Use <code><a href="command-line-options.html#fill">-fill</a></code> to specify the color of the lines. The default is black.</p>
-
-<p>Use <code><a href="command-line-options.html#stroke">-stroke</a></code> and <code><a href="command-line-options.html#strokewidth">-strokewidth</a></code> to specify the thickness of the lines. The default is black and no strokewidth.</p>
-
-<p>A text file listing the endpoints and counts may be created by using the suffix, .mvg, for the output image.</p>
-
-<p>Use <code><a href="command-line-options.html#define">-define</a> hough-lines:accumulator=true</code> to return the accumulator image in addition to the lines image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="iconGeometry"></a>-iconGeometry <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">specify the icon geometry.</p>
-
-<p>Offsets, if present in the geometry specification, are handled in the same
-manner as the <a href="command-line-options.html#geometry">-geometry</a> option, using X11 style to
-handle negative offsets.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="iconic"></a>-iconic</h3>
-</div>
-
-<p class="magick-description">start in icon mode in X Windows", 'animate', 'display</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="identify"></a>-identify</h3>
-</div>
-
-<p class="magick-description">identify the format and characteristics of the image.</p>
-
-<p>This information is printed: image scene number; image name; image size;
-the image class (<var>DirectClass</var> or <var>PseudoClass</var>); the total number of unique colors; and the
-number of seconds to read and transform the image. Refer to <a href="miff.html">MIFF</a> for
-a description of the image class.</p>
-
-<p>If <a href="command-line-options.html#colors">-colors</a> is also specified, the total unique colors
-in the image and color reduction error values are printed. Refer to <a href="quantize.html">color
-reduction algorithm</a> for a description of these values.</p>
-
-<p>If <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="ift"></a>-ift</h3>
-</div>
-
-<p class="magick-description">implements the inverse discrete Fourier transform (DFT).</p>
-
-<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="command-line-options.html#fft">-fft</a>, one would use either</p>
-
-<pre>
-convert fft_image.miff -ift fft_image_ift.png
-</pre>
-
-<p>or</p>
-
-<pre>
-convert fft_image-0.png fft_image-1.png -ift fft_image_ift.png
-</pre>
-
-<p>The resulting image may need to be cropped due to padding introduced when
-the original image, prior to the <a href="command-line-options.html#fft">-fft</a> or <a href="command-line-options.html#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="command-line-options.html#ift">-ift</a>.</p>
-
-<p>Use <a href="command-line-options.html#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>
-
-<p>By default the IFT is not normalized (and the FFT is). Use "<code><a href="command-line-options.html#define">-define</a> fourier:normalize=inverse</code> to explicitly normalize the IFT and unnormalize the FFT.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="immutable"></a>-immutable</h3>
-</div>
-
-<p class="magick-description">make image immutable.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="implode"></a>-implode <var>factor</var></h3>
-</div>
-
-<p class="magick-description">implode image pixels about the center.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="insert"></a>-insert <var>index</var></h3>
-</div>
-
-<p class="magick-description">insert the last image into the image sequence.</p>
-
-<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
-<code>-insert -1</code> will result in no change to the image sequence.</p>
-
-<p>The <code>+insert</code> option is equivalent to <code>-insert -1</code>. 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;">
-  <h3 class="magick-header"><a id="intensity"></a>-intensity <var>method</var></h3>
-</div>
-
-<p class="magick-description">method to generate intensity value from pixel.</p>
-
-<p>ImageMagick provides a number of methods used in situations where an
-operator needs to determine a single grayscale value for some purpose, from
-an image with red, green, and blue pixel components. Typically the linear
-<code>Rec709Luminance</code> formula is used, which is the same formula used when 
-converting images to <code>-colorspace gray</code>. </p>
-
-<p>The following formulas are currently provided, and will first convert
-the pixel values to linear-RGB or non-linear sRGB colorspace before
-being applied to calulate the final greyscale value. </p>
-
-<dl class="dl-horizontal">
-<dt>Rec601Luma</dt><dd>      0.298839R' + 0.586811G'+ 0.114350B'</dd>
-<dt>Rec601Luminance</dt><dd> 0.298839R + 0.586811G + 0.114350B</dd>
-<dt>Rec709Luma</dt><dd>      0.212656R' + 0.715158G' + 0.072186B'</dd>
-<dt>Rec709Luminance</dt><dd> 0.212656R + 0.715158G + 0.072186B</dd>
-<dt>Brightness</dt><dd>      max(R', G', B')</dd>
-<dt>Lightness</dt><dd>       (min(R', G', B') + max(R', G', B')) / 2.0</dd>
-</dl>
-
-<p>Note that the above R,G,B values is the image's linear-RGB values, while
-R',G',B' are sRGB non-linear values. </p>
-
-<p>These intensity methods are mathematical in nature and will use the
-current value in the images respective R,G,B channel regardless of
-what that is, or what colorspace the image is currently using.</p>
-
-<dl class="dl-horizontal">
-<dt>Average</dt><dd>(R + G + B) / 3.0</dd>
-<dt>MS</dt><dd>(R^2 + G^2 + B^2) / 3.0</dd>
-<dt>RMS</dt><dd>sqrt( (R^2 + G^2 + B^2) / 3.0 )</dd>
-</dl>
-
-<p>These methods are often used for other purposes, such as generating a
-grayscale difference image between two color images (using <a href="command-line-options.html#compose">-compose</a> '<code>Difference</code>' composition. </p>
-
-<p> For example The 'MS' (Mean Squared) setting is good for minimizing color
-error comparisions.  While...  The method 'RMS' (Root Mean Squared) for
-example is appropriate for calculating color vector distance, from a color
-difference image.  This is equivalent to the color only component of the <a href="command-line-options.html#fuzz">-fuzz</a> factor color compare setting.  </p>
-
-<p>See also <a href="command-line-options.html#grayscale">-grayscale</a> which applies one of the above
-grayscaling formula directly to an image without setting the <a href="command-line-options.html#intensity">-intensity</a> setting.</p>
-
-<p>The <a href="command-line-options.html#colorspace">-colorspace gray</a> image conversion also uses
-the current intensity setting, but will always convert the image to the
-appropriate sRGB or linear-RGB colorspace before appling the above
-function.</p>
-
-<p>To print a complete list of posible pixel intensity setting methods, use <a href="command-line-options.html#list">-list intensity</a>.</p>
-
-<p>Operators affected by the <a href="command-line-options.html#intensity">-intensity</a> setting include:</p>
-
-<pre>
--adaptive-blur
--adaptive-sharpen
--black-threshold
--clut (when mapping greyscale CLUT image to alpha channel if set by -channels)
--colors for gray colorspace
--compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}
--contrast-stretch
--distort {ErodeIntensity, DilateIntensity}
--normalize
--random-threshold
--selective-blur
--shade
--threshold
--tint
--white-threshold
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="intent"></a>-intent <var>type</var></h3>
-</div>
-
-<p class="magick-description">use this type of rendering intent when managing the image color.</p>
-
-<p>Use this option to affect the color management operation of an image (see
-<a href="command-line-options.html#profile">-profile</a>).  Choose from these intents: <code>Absolute,
-Perceptual, Relative, Saturation</code>.</p>
-
-<p>The default intent is Perceptual for the sRGB colorspace and undefined for the RGB and gray colorspaces.</p>
-
-<p>To print a complete list of rendering intents, use <a href="command-line-options.html#list">-list intent</a>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="interlace"></a>-interlace <var>type</var></h3>
-</div>
-
-<p class="magick-description">the type of interlacing scheme.</p>
-
-<p>Choose from:</p>
-
-<pre>
-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 <code>RGB</code> or <code>YUV</code>.</p>
-
-<p><code>None</code> means do not interlace (RGBRGBRGBRGBRGBRGB...),</p>
-
-<p><code>Line</code> uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and.</p>
-
-<p><code>Plane</code> uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...).</p>
-
-<p><code>Partition</code> is like plane except the different planes are saved to
-individual files (e.g. image.R, image.G, and image.B).</p>
-
-<p>Use <code>Line</code> or <code>Plane</code> to create an <code>interlaced
-PNG</code> or <code>GIF</code> or <code>progressive JPEG</code> image.</p>
-
-<p>To print a complete list of interlacing schemes, use <a href="command-line-options.html#list">-list
-interlace</a>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="interpolate"></a>-interpolate <var>type</var></h3>
-</div>
-
-<p class="magick-description">Set the pixel color interpolation method to use when looking up a color based on a floating point or real value.</p>
-
-<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>
-
-<dl class="dl-horizontal">
-  <dt>integer</dt>
-  <dd>The color of the top-left pixel (floor function)</dd>
-  <dt>nearest-neighbor</dt>
-  <dd>The nearest pixel to the lookup point (rounded function)</dd>
-  <dt>average</dt>
-  <dd>The average color of the surrounding four pixels</dd>
-  <dt>bilinear</dt>
-  <dd>A double linear interpolation of pixels (the default)</dd>
-  <dt>mesh</dt>
-  <dd>Divide area into two flat triangular interpolations</dd>
-  <dt>bicubic</dt>
-  <dd>Fitted bicubic-spines of surrounding 16 pixels</dd>
-  <dt>spline</dt>
-  <dd>Direct spline curves (colors are blurred)</dd>
-  <dt>filter</dt>
-  <dd>Use resize <a href="command-line-options.html#filter">-filter</a> settings</dd>
-</dl>
-
-<p>This most important for distortion operators such as <a href="command-line-options.html#distort">-distort</a>, <a href="command-line-options.html#implode">-implode</a>, <a href="command-line-options.html#transform">-transform</a> and <a href="command-line-options.html#fx">-fx</a>. </p>
-
-<p>To print a complete list of interpolation methods, use <a href="command-line-options.html#list">-list interpolate</a>.</p>
-
-<p>See also <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a>, for control of the
-lookup for positions outside the boundaries of the image. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="interline-spacing"></a>-interline-spacing <var>value</var></h3>
-</div>
-
-<p class="magick-description">the space between two text lines.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="interword-spacing"></a>-interword-spacing <var>value</var></h3>
-</div>
-
-<p class="magick-description">the space between two words.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="kerning"></a>-kerning <var>value</var></h3>
-</div>
-
-<p class="magick-description">the space between two letters.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="kuwahara"></a>-kuwahara <var>radius</var><br>-kuwahara <var>radius</var>x<var>sigma</var></h3>
-</div>
-
-<p class="magick-description">edge preserving noise reduction filter.</p>
-
-<p>The <var>radius</var> is more important than the <var>sigma</var>. If <var>sigma</var> is left off, it will be computed automatically from the <var>radius</var> as <var>sigma</var>=<var>radius</var>-0.5. The <var>sigma</var> provides a bit of additional smoothing control.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="label"></a>-label <var>name</var></h3>
-</div>
-
-<p class="magick-description">assign a label to an image.</p>
-
-<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="command-line-options.html#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 <var>PostScript</var> 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="escape.html">Format and Print Image
-Properties</a> for details of the percent escape codes.</p>
-
-<p>For example,</p>
-
-<pre>
--label "%m:%f %wx%h"  bird.miff
-</pre>
-
-<p>assigns an image label of <code>MIFF:bird.miff 512x480</code> to the
-"<code>bird.miff</code>" image and whose width is 512 and height is 480, as it
-is read in.  If a  <a href="command-line-options.html#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 <var>Label</var> tag or similar mechanism. If you want the label to be
-visible on the image itself, use the <a href="command-line-options.html#draw">-draw</a> option, or
-during the final processing in the creation of an image montage.</p>
-
-<p>If the first character of <var>string</var> is <var>@</var>, 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;">
-  <h3 class="magick-header"><a id="lat"></a>-lat <var>width</var><br>-lat <var>width</var>x<var>height</var>{<var>+-</var>}<var>offset</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">perform local adaptive threshold.</p>
-
-<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 <code>offset</code>, 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 foreground color. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="layers"></a>-layers <var>method</var></h3>
-</div>
-
-<p class="magick-description">handle multiple images forming a set of image layers or animation frames.</p>
-
-<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="table table-condensed table-striped">
-  <tbody>
-  <tr>
-    <th style="width: 8%">Method</th>
-    <th>Description</th>
-  </tr>
-
-  <tr>
-    <td>compare-any</td>
-    <td>Crop the second and later frames to the smallest rectangle
-        that contains all the differences between the two images.  No GIF <a href="command-line-options.html#dispose">-dispose</a> methods are taken into account. </td>
-  </tr>
-
-  <tr><td></td><td>This exactly the same as the <a href="command-line-options.html#deconstruct">-deconstruct</a> operator, and does not preserve animations normal
-        working, especially when animation used layer disposal methods such as
-        '<code>Previous</code>' or '<code>Background</code>'. </td>
-  </tr>
-
-  <tr>
-    <td>compare-clear</td>
-    <td>As '<code>compare-any</code>' 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>
-    <td>compare-overlay</td>
-    <td>As '<code>compare-any</code>' 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="command-line-options.html#compose">-compose</a> alpha
-       composition method '<code>change-mask</code>', to reduce the image to
-       just the pixels that need to be overlaid. </td>
-   </tr>
-
-  <tr>
-    <td>coalesce</td>
-    <td>Equivalent to a call to the <a href="command-line-options.html#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>
-    <td>composite</td>
-    <td>Alpha Composition of two image lists, separated by a
-        "<code>null:</code>" 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="command-line-options.html#geometry">-geometry</a> offset is adjusted according
-        to <a href="command-line-options.html#gravity">-gravity</a> in accordance of the virtual
-        canvas size of the first image in each list. Unlike a normal <a href="command-line-options.html#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>
-    <td>dispose</td>
-    <td>This like '<code>coalesce</code>' 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="command-line-options.html#dispose">-dispose</a> method.  This allows you to check what
-        is going wrong with a particular animation you may be developing.
-        </td>
-  </tr>
-
-  <tr>
-    <td>flatten</td>
-    <td>Create a canvas the size of the first images virtual
-        canvas using the current <a href="command-line-options.html#background">-background</a> color,
-        and <a href="command-line-options.html#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 usually 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 an opaque color to remove
-        transparency from an image.</td>
-  </tr>
-
-
-  <tr>
-    <td>merge</td>
-    <td>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 method with <a href="command-line-options.html#repage">+repage</a>
-        will remove the layer offset, and create an image in which all the
-        overlaid image positions relative to each other is preserved, though
-        not necessarily exactly where you specified them.
-        </td>
-  </tr>
-
-  <tr><td></td><td>See also 'trim-bounds' below which is closely related but
-        without  doing the'flatten' to merge the images together. </td>
-  </tr>
-
-  <tr>
-    <td>mosaic</td>
-    <td>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>
-    <td>optimize</td>
-    <td>Optimize a coalesced animation, into GIF animation using
-        a number of general techniques.  This currently a short cut to
-        apply both the '<code>optimize-frame</code>', and
-        '<code>optimize-transparency</code>' methods but may be expanded to
-        include other optimization methods as they are developed. </td>
-  </tr>
-
-  <tr>
-    <td>optimize-frame</td>
-    <td>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>
-    <td>optimize-plus</td>
-    <td>As '<code>optimize-frame</code>' 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
-        '<code>optimize-frame</code>' 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 '<code>optimize-frame</code>' technique. For some
-        animations however you can get a vast improvement in the final
-        animation size. </td>
-  </tr>
-
-  <tr>
-    <td>optimize-transparency</td>
-    <td>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="command-line-options.html#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>
-    <td>remove-dups</td>
-    <td>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>
-    <td>remove-zero</td>
-    <td>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 usually added for
-        improved frame optimization in GIF animations. </td>
-  </tr>
-
-  <tr>
-    <td>trim-bounds</td>
-    <td>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="command-line-options.html#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="command-line-options.html#list">-list layers</a>.</p>
-
-<p>The operators <a href="command-line-options.html#coalesce">-coalesce</a>, <a href="command-line-options.html#deconstruct">-deconstruct</a>, <a href="command-line-options.html#flatten">-flatten</a>, and <a href="command-line-options.html#mosaic">-mosaic</a> are only aliases for the above methods and may be depreciated in
-the future.  Also see  <a href="command-line-options.html#page">-page</a>,  <a href="command-line-options.html#repage">-repage</a> operators, the <a href="command-line-options.html#compose">-compose</a> setting, and the
-GIF <a href="command-line-options.html#dispose">-dispose</a> and  <a href="command-line-options.html#delay">-delay</a>
-settings. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="level"></a>-level <var>black_point</var>{,<var>white_point</var>}{<var>%</var>}{,<var>gamma</var>}</h3>
-</div>
-
-<p class="magick-description">adjust the level of image channels.</p>
-
-<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 <var>QuantumRange</var>, or from 0 to
-100%; if the white point is omitted it is set to (<var>QuantumRange</var> - black_point), so as to center contrast changes.
-If a <code>%</code> 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="command-line-options.html#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 (<code>-level</code>) the image values are stretched so that
-the given '<code>black_point</code>' value in the original image is set to zero
-(or black), while the given '<code>white_point</code>' value is set to <var>QuantumRange</var> (or white).  This provides you with direct
-contrast adjustments to the image.  The '<code>gamma</code>' of the resulting
-image will then be adjusted. </p>
-
-<p>From ImageMagick v6.4.1-9 using the plus form of the operator
-(<code>+level</code>) 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 <var>QuantumRange</var> 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
-'<code>gamma</code>' is adjusted before the level adjustment to de-contrast the
-image is made. </p>
-
-<p>Only the channels defined by the current <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="level-colors"></a>-level-colors {<var>black_color</var>}{,}{<var>white_color</var>}</h3>
-</div>
-
-<p class="magick-description">adjust the level of an image using the provided dash separated colors.</p>
-
-<p>This function is exactly like <a href="command-line-options.html#level">-level</a>, except that the
-value value for each color channel is determined by the
-'<code>black_color</code>' and '<code>white_color</code>' colors given (as
-described under the <a href="command-line-options.html#fill">-fill</a> option). </p>
-
-<p>This effectually means the colors provided to <code>-level-colors</code>
-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 (<code>+level-colors</code>)
-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;">
-  <h3 class="magick-header"><a id="limit"></a>-limit <var>type value</var></h3>
-</div>
-
-<p class="magick-description">Set the pixel cache resource limit.</p>
-
-<p>Choose from: <code>area</code>, <code>disk</code>, <code>file</code>,
-<code>map</code>, <code>memory</code>, <code>thread</code>, or <code>time</code>.</p>
-
-<p>The value for <code>file</code> is in number of files. The other limits are
-in bytes. Define arguments for the memory, map, area, and disk resource limits
-with SI prefixes (.e.g 100MB).</p>
-
-<p>By default the limits are 768 files, 3GB of image area, 1.5GiB memory, 3GiB
-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>
-
-<pre>
--limit memory 32MiB -limit map 64MiB
-</pre>
-
-<p>Use <a href="command-line-options.html#list">-list resource</a> to list the current limits. For example, our system shows these limits:</p>
-
-<pre>
--&gt; identify -list resource
-Resource limits:
-  Width: 100MP
-  Height: 100MP
-  Area: 25.181GB
-  Memory: 11.726GiB
-  Map: 23.452GiB
-  Disk: unlimited
-  File: 768
-  Thread: 12
-  Throttle: 0
-  Time: 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="command-line-options.html#limit">‑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
-<code>area</code> 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
-<code>memory</code> 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
-<code>map</code> limit, the resource allocation goes to disk. In all cases, if
-the resource request exceeds the <code>area</code> 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 10MiB of memory you can
-simply set the area limit to 10MiB:</p>
-
-<pre>
--limit area 10MB
-</pre>
-
-<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>
-
-<pre>
--limit area 10MB -limit disk 500MB
-</pre>
-
-<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="resources.html#environment">environment variables</a>. Set the
-environment variables <code>MAGICK_AREA_LIMIT</code>,
-<code>MAGICK_DISK_LIMIT</code>, <code>MAGICK_FILE_LIMIT</code>,
-<code>MAGICK_MEMORY_LIMIT</code>, <code>MAGICK_MAP_LIMIT</code>,
-<code>MAGICK_THREAD_LIMIT</code>, <code>MAGICK_TIME_LIMIT</code> 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="command-line-options.html#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 <code>grep memory|open|destroy|disk</code> 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="architecture.html#cache%0A">Architecture</a> page.  </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="linear-stretch"></a>-linear-stretch <var>black-point</var><br>-linear-stretch <var>black-point</var>{x<var>white-point</var>}{<var>%</var>}}</h3>
-</div>
-
-<p class="magick-description">Linear with saturation stretch.</p>
-
-<p>This is very similar to <a href="command-line-options.html#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 stretches those colors using the <a href="command-line-options.html#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="command-line-options.html#linear-stretch">-linear-stretch</a> of
-'<code>0</code>' does nothing, while a value of '<code>1</code>' does a near
-perfect stretch of the color range. </p>
-
-<p>See also <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="linewidth"></a>-linewidth</h3>
-</div>
-
-<p class="magick-description">the line width for subsequent draw operations.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="liquid-rescale"></a>-liquid-rescale <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">rescale image with seam-carving.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="list"></a>-list <var>type</var></h3>
-</div>
-
-<p class="magick-description">Print a list of supported arguments for various options or settings.  Choose from these list types:</p>
-
-<pre class="pre-scrollable">
-Align
-Alpha
-Boolean
-Cache
-Channel
-Class
-ClipPath
-Coder
-Color
-Colorspace
-Command
-Complex
-Compose
-Compress
-Configure
-DataType
-Debug
-Decoration
-Delegate
-Direction
-Dispose
-Distort
-Dither
-Endian
-Evaluate
-FillRule
-Filter
-Font
-Format
-Function
-Gravity
-Intensity
-Intent
-Interlace
-Interpolate
-Kernel
-Layers
-LineCap
-LineJoin
-List
-Locale
-LogEvent
-Log
-Magic
-Method
-Metric
-Mime
-Mode
-Morphology
-Module
-Noise
-Orientation
-PixelIntensity
-Policy
-PolicyDomain
-PolicyRights
-Preview
-Primitive
-QuantumFormat
-Resource
-SparseColor
-Statistic
-Storage
-Stretch
-Style
-Threshold
-Type
-Units
-Validate
-VirtualPixel
-</pre>
-
-<p>These lists vary depending on your version of ImageMagick. Use "<code>-list
-list</code>" to get a complete listing of all the "<code>-list</code>" arguments
-available:</p>
-
-<pre>
-identify -list list
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="log"></a>-log <var>string</var></h3>
-</div>
-
-<p class="magick-description">Specify format for debug log.</p>
-
-<p>This option specifies the format for the log printed when the <a href="command-line-options.html#debug">-debug</a> option is active.</p>
-
-<p>You can display the following components by embedding special format
-characters:</p>
-
-<dl class="dl-horizontal">
-<dt>%d</dt><dd>domain</dd>
-<dt>%e</dt><dd>event</dd>
-<dt>%f</dt><dd>function</dd>
-<dt>%l</dt><dd>line</dd>
-<dt>%m</dt><dd>module</dd>
-<dt>%p</dt><dd>process ID</dd>
-<dt>%r</dt><dd>real CPU time</dd>
-<dt>%t</dt><dd>wall clock time</dd>
-<dt>%u</dt><dd>user CPU time</dd>
-<dt>%%</dt><dd>percent sign</dd>
-<dt>\n</dt><dd>newline</dd>
-<dt>\r</dt><dd>carriage return</dd>
-</dl>
-
-<p>For example:</p>
-
-<pre>
-convert -debug coders -log "%u %m:%l %e" in.gif out.png
-</pre>
-
-<p>The default behavior is to print all of the components.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="loop"></a>-loop <var>iterations</var></h3>
-</div>
-
-<p class="magick-description">add Netscape loop extension to your GIF animation.</p>
-
-<p>Set iterations to zero to repeat the animation an infinite number of times,
-otherwise the animation repeats itself up to <var>iterations</var>
-times.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="lowlight-color"></a>-lowlight-color <var>color</var></h3>
-</div>
-
-<p class="magick-description">when comparing images, de-emphasize pixel differences with this color.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="magnify"></a>-magnify</h3>
-</div>
-
-<p class="magick-description">double the size of the image with pixel art scaling.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="map"></a>-map <var>type</var></h3>
-</div>
-
-<p class="magick-description">Display image using this <var>type</var>.</p>
-
-<p>Choose from these <var>Standard Colormap</var> types:</p>
-
-<pre>
-best
-default
-gray
-red
-green
-blue
-</pre>
-
-<p>The <var>X server</var> must support the <var>Standard
-Colormap</var> you choose, otherwise an error occurs.  Use <code>list</code> as
-the type and <code>display</code> searches the list of colormap types in
-<code>top-to-bottom</code> order until one is located. See <var>xstdcmap(1)</var> for one way of creating Standard Colormaps.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="map_stream_"></a>-map <var>components</var></h3>
-</div>
-
-<p class="magick-description">pixel map.</p>
-
-<p>Here are the valid components of a map:</p>
-
-<dl class="dl-horizontal">
-<dt>r</dt><dd>  red pixel component</dd>
-<dt>g</dt><dd>  green pixel component</dd>
-<dt>b</dt><dd>  blue pixel component</dd>
-<dt>a</dt><dd>  alpha pixel component (0 is transparent)</dd>
-<dt>o</dt><dd>  opacity pixel component (0 is opaque)</dd>
-<dt>i</dt><dd>  grayscale intensity pixel component</dd>
-<dt>c</dt><dd>  cyan pixel component</dd>
-<dt>m</dt><dd>  magenta pixel component</dd>
-<dt>y</dt><dd>  yellow pixel component</dd>
-<dt>k</dt><dd>  black pixel component</dd>
-<dt>p</dt><dd>  pad component (always 0)</dd>
-</dl>
-
-<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;">
-  <h3 class="magick-header"><a id="mask"></a>-mask
-<var>filename</var></h3>
-</div>
-
-<p class="magick-description">Prevent updates to image pixels specified by the mask.</p>
-
-<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="command-line-options.html#mask">+mask</a> to remove the mask from images.</p>
-
-<p>Also see <a href="command-line-options.html#clip-mask">-clip-mask</a> which work in the same way,
-but with strict boolean masking. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="mattecolor"></a>-mattecolor <var>color</var></h3>
-</div>
-
-<p class="magick-description">Specify the color to be used with the <a href="command-line-options.html#frame">-frame</a> option.</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
-
-<p>The default matte color is <code>#BDBDBD</code>, <span style="background-color: #bdbdbd;">this shade of gray</span>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="maximum"></a>-maximum</h3>
-</div>
-
-<p class="magick-description">return the maximum intensity of an image sequence.</p>
-
-<p>Select the 'maximum' value from all the surrounding pixels. </p>
-
-<p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the same
-name. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="median"></a>-median <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">apply a median filter to the image.</p>
-
-<p>Select the 'middle' value from all the surrounding pixels. </p>
-
-<p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the same
-name. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="mean-shift"></a>-mean-shift <var>width</var>x<var>height</var>{<var>+distance</var>{%}}</h3>
-</div>
-
-<p class="magick-description">image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
-
-<p><var>width</var>x<var>height</var> is the window size and <var>distance</var> is the color distance measured in the range 0 to 1 or 0 to 100%</p>
-
-<p>The mean shift algorithm is iterative and thus slower the larger the window size. For each pixel, it gets all the pixels in the window centered at the pixel and excludes those that are outside the <var>radius=sqrt((width-1)(height-1)/4)</var> surrounding the pixel. From those pixels, it finds which of them are within the specified squared color distance from the current mean. It then computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process is iterated until it converges and the final mean is then used to replace the original pixel value. It repeats this process for the next pixel, etc, until it processes all pixels in the image. Results are better when using other colorspaces rather than RGB. Recommend YIQ, YUV or YCbCr, which seem to give equivalent results.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="metric"></a>-metric <var>type</var></h3>
-</div>
-
-<p class="magick-description">Output to STDERR a measure of the differences between images according to the <var>type</var> given metric.</p>
-
-<p>Choose from:</p>
-
-<dl class="dl-horizontal">
-<dt>AE</dt><dd>    absolute error count, number of different pixels (-fuzz effected)</dd>
-<dt>FUZZ</dt><dd>  mean color distance</dd>
-<dt>MAE</dt><dd>   mean absolute error (normalized), average channel error distance</dd>
-<dt>MEPP</dt><dd>  mean error per pixel (normalized mean error, normalized peak error)</dd>
-<dt>MSE</dt><dd>   mean error squared, average of the channel error squared</dd>
-<dt>NCC</dt><dd>   normalized cross correlation</dd>
-<dt>PAE</dt><dd>   peak absolute (normalized peak absolute)</dd>
-<dt>PHASH</dt><dd> perceptual hash</dd>
-<dt>PSNR</dt><dd>  peak signal to noise ratio</dd>
-<dt>RMSE</dt><dd>  root mean squared (normalized root mean squared)</dd>
-</dl>
-
-<p>Control the '<code>AE</code>', or absolute count of pixels that are different,
-with the <a href="command-line-options.html#fuzz">-fuzz</a> factor (ignore pixels which
-only changed by a small amount).  Use '<code>PAE</code>' to find the
-size of the <a href="command-line-options.html#fuzz">-fuzz</a> factor needed to make all pixels
-'similar', while '<code>MAE</code>' determines the factor needed
-for about half the pixels to be similar. </p>
-
-<p>The '<code>MEPP</code>' metric returns three different metrics
-('<code>MAE</code>', '<code>MAE</code>' normalized, and '<code>PAE</code>'
-normalized) from a single comparison run. </p>
-
-<p>To print a complete list of metrics, use the <a href="command-line-options.html#list">-list
-metric</a> option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="minimum"></a>-minimum</h3>
-</div>
-
-<p class="magick-description">return the minimum intensity of an image sequence.</p>
-
-<p>Select the 'minimal' value from all the surrounding pixels. </p>
-
-<p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the same
-name. </p>
-
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="mode"></a>-mode <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">make each pixel the \'predominant color\' of the neighborhood.'</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header">-mode <var>value</var></h3>
-</div>
-
-<p class="magick-description">Mode of operation.</p>
-
-<p>Choose the <var>value</var> from these styles: <code>Frame,
-Unframe, or Concatenate</code></p>
-
-<p>Use the <a href="command-line-options.html#list">-list</a> option with a '<code>Mode</code>' argument
-for a list of <a href="command-line-options.html#mode">-mode</a> arguments available in your
-ImageMagick installation.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="modulate"></a>-modulate <var>brightness</var>[,<var>saturation</var>,<var>hue</var>]</h3>
-</div>
-
-<p class="magick-description">Vary the <var>brightness</var>, <var>saturation</var>, and <var>hue</var> of an image.</p>
-
-<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 <var>brightness</var> 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="command-line-options.html#negate">-negate</a> the image
-before and after. </p>
-
-<p>The <var>saturation</var> 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 <var>hue</var> 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="command-line-options.html#modulate">-modulate 120,90</a>.</p>
-
-<p>Use <a href="command-line-options.html#set">-set</a> attribute of '<code>option:modulate:colorspace</code>' to specify which colorspace to
-modulate.  Choose from <code>HCL</code>, <code>HCLp</code>, <code>HSB</code>, <code>HSI</code>, <code>HSL</code> (the default), <code>HSV</code>, <code>HWB</code>, or <code>LCH</code> (LCHuv).  For example,</p>
-
-<pre>
-convert image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="moments"></a>-moments</h3>
-</div>
-
-<p class="magick-description">report image moments and perceptual hash.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="monitor"></a>-monitor</h3>
-</div>
-
-<p class="magick-description">monitor progress.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="monochrome"></a>-monochrome</h3>
-</div>
-
-<p class="magick-description">transform the image to black and white.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="morph"></a>-morph <var>frames</var></h3>
-</div>
-
-<p class="magick-description">morphs an image sequence.</p>
-
-<p>Both the image pixels and size are linearly interpolated to give the
-appearance of a metamorphosis 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="command-line-options.html#blend">-blend</a> composition. The <var>frames</var>
-argument determine how many images to interpolate between each image. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="morphology"></a>-morphology</h3>
-  <h3 class="magick-header">-morphology <var>method</var>  <var>kernel</var></h3>
-</div>
-
-<p class="magick-description">apply a morphology method to the image.</p>
-
-<p>Until I get around to writing an option summary for this, see <a href="http://www.imagemagick.org/Usage/morphology/">IM Usage Examples,
-Morphology</a>. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="mosaic"></a>-mosaic</h3>
-</div>
-
-<p class="magick-description">an simple alias for the <a href="command-line-options.html#layers">-layers</a> method "mosaic"</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="motion-blur"></a>-motion-blur <var>radius</var><br>-motion-blur <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
-</div>
-
-<p class="magick-description">simulate motion blur.</p>
-
-<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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="name"></a>-name</h3>
-</div>
-
-<p class="magick-description">name an image.</p>
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="negate"></a>-negate</h3>
-</div>
-
-<p class="magick-description">replace each pixel with its complementary color.</p>
-
-<p>The red, green, and blue intensities of an image are negated. White becomes
-black, yellow becomes blue, etc.  Use <a href="command-line-options.html#negate">+negate</a> to only
-negate the grayscale pixels of the image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="noise"></a>-noise <var>geometry</var><br>
-  +noise <var>type</var></h3>
-</div>
-
-<p class="magick-description">Add or reduce noise in an image.</p>
-
-<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 <code><a href="command-line-options.html#noise">-noise</a> <var>radius</var></code> to
-specify the width of the neighborhood when reducing noise.  This is equivalent
-to using a <code><a href="command-line-options.html#statistic">-statistic</a> NonPeak</code> operation,
-which should be used in preference.</p>
-
-<p>Use <a href="command-line-options.html#noise">+noise</a> followed by a noise <var>type</var> to add noise to an image. Choose from these noise
-types:</p>
-
-<pre>
-Gaussian
-Impulse
-Laplacian
-Multiplicative
-Poisson
-Random
-Uniform
-</pre>
-
-<p>The amount of noise added can be controled by the <code><a href="command-line-options.html#attenuate">-attenuate</a></code> setting. If unset the value is
-equivalent to 1.0, or a maximum noise addition.</p>
-
-<p>Note that Random will replace the image with noise rather than add noise to the image. Use Uniform, if you wish to add random noise to the image.</p>
-
-<p>To print a complete list of noises, use the <a href="command-line-options.html#list">-list noise</a> option.</p>
-
-<p>Also see the <a href="command-line-options.html#evaluate">-evaluate</a> noise functions that allows
-the use of a controlling value to specify the amount of noise that should be
-added to an image. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="normalize"></a>-normalize</h3>
-</div>
-
-<p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p>
-
-<p>The intensity values are stretched to cover the entire range of possible
-values. While doing so, black-out at most <var>2%</var> of the pixels and
-white-out at most <var>1%</var> of the pixels.</p>
-
-<p>Note that as of ImageMagick 6.4.7-0, <a href="command-line-options.html#normalize">-normalize</a>
-is equivalent to <a href="command-line-options.html#contrast-stretch">-contrast-stretch 2%x1%</a>.
-(Before this version, it was equivalent to <a href="command-line-options.html#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="command-line-options.html#channel">+channel</a>
-setting is in use.  Specifying any other <a href="command-line-options.html#channel">-channel</a>
-setting will normalize the RGB channels independently.</p>
-
-<p>See  <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> for more details.
-Also see <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="opaque"></a>-opaque <var>color</var></h3>
-</div>
-
-<p class="magick-description">change this color to the fill color within the image.</p>
-
-<p>The <var>color</var> argument is defined using the format
-described under the <a href="command-line-options.html#fill">-fill</a> option.  The <a href="command-line-options.html#fuzz">-fuzz</a> setting can be used to match and replace colors similar to the one
-given.</p>
-
-<p>Use <a href="command-line-options.html#opaque">+opaque</a> to paint any pixel that does not match
-the target color. </p>
-
-<p>The <a href="command-line-options.html#transparent">-transparent</a>  operator is exactly the same
-as <a href="command-line-options.html#opaque">-opaque</a> but replaces the matching color with
-transparency rather than the current <a href="command-line-options.html#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 "<code><a href="command-line-options.html#alpha">-alpha</a> set</code>", for
-the new transparent colors, and does not require you to modify the <a href="command-line-options.html#channel">-channel</a> to enable alpha channel handling. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="ordered-dither"></a>-ordered-dither <var>threshold_map</var>{,<var>level</var>...}</h3>
-</div>
-
-<p class="magick-description">dither the image using a pre-defined  ordered dither <var>threshold map</var> specified, and a uniform color map with the
-given number of <var>levels</var> per color channel.</p>
-
-<p>You can choose from these standard threshold maps:</p>
-
-<pre class="pre-scrollable">
-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)
-h3x4a       4x1   Halftone 4x4 (angled)
-h6x6a       6x1   Halftone 6x6 (angled)
-h8x8a       8x1   Halftone 8x8 (angled)
-h3x4o             Halftone 4x4 (orthogonal)
-h6x6o             Halftone 6x6 (orthogonal)
-h8x8o             Halftone 8x8 (orthogonal)
-h36x16o           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 <code>threshold</code> generated a simple 50% threshold of the image.
-This could be used with <var>level</var> to do the equivalent of <a href="command-line-options.html#posterize">-posterize</a> to reduce an image to basic primary colors.
-</p>
-
-<p>The <code>checks</code> pattern produces a 3 level checkerboard  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 <var>threshold map</var> for ordered
-dithering and halftoning your images, in either personal or system
-<code>thresholds.xml</code> 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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="orient"></a>-orient <var>image orientation</var></h3>
-</div>
-
-<p class="magick-description">specify orientation of a digital camera image.</p>
-
-<p>Choose from these orientations:</p>
-
-<pre>
-bottom-left    right-top
-bottom-right   top-left
-left-bottom    top-right
-left-top       undefined
-right-bottom
-</pre>
-
-<p>To print a complete list of orientations, use the <a href="command-line-options.html#list">-list
-orientation</a> option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="page"></a>-page <var>geometry</var><br>
-  -page <var>media</var>[<var>offset</var>][{<var>^!&lt;&gt;</var>}]<br>
-  +page
-  </h3>
-</div>
-
-<p class="magick-description">Set the size and location of an image on the larger virtual canvas.</p>
-
-<p>See <a href="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 <var>media</var> (see below). Offsets can then be added as with other
-<var>geometry</var> arguments (e.g. <a href="command-line-options.html#page">-page</a> <code>Letter+43+43</code>).</p>
-
-<p>Use <var>media</var> as shorthand to specify the dimensions (<var>width</var>x<var>height</var>) of the <var>PostScript</var> page in dots per inch or a TEXT page in pixels.
-The choices for a PostScript page are:</p>
-
-<dl class="dl-horizontal">
-<dt> 11x17      </dt> <dd>  792 x 1224</dd> 
-<dt> Ledger     </dt> <dd> 1224 x  792</dd> 
-<dt> Legal      </dt> <dd>  612 x 1008</dd> 
-<dt> Letter     </dt> <dd>  612 x  792</dd> 
-<dt> LetterSmall</dt> <dd>  612 x  792</dd> 
-<dt> ArchE      </dt> <dd> 2592 x 3456</dd> 
-<dt> ArchD      </dt> <dd> 1728 x 2592</dd> 
-<dt> ArchC      </dt> <dd> 1296 x 1728</dd> 
-<dt> ArchB      </dt> <dd>  864 x 1296</dd> 
-<dt> ArchA      </dt> <dd>  648 x  864</dd> 
-<dt> A0         </dt> <dd> 2380 x 3368</dd> 
-<dt> A1         </dt> <dd> 1684 x 2380</dd> 
-<dt> A2         </dt> <dd> 1190 x 1684</dd> 
-<dt> A3         </dt> <dd>  842 x 1190</dd> 
-<dt> A4         </dt> <dd>  595 x  842</dd> 
-<dt> A4Small    </dt> <dd>  595 x  842</dd> 
-<dt> A5         </dt> <dd>  421 x  595</dd> 
-<dt> A6         </dt> <dd>  297 x  421</dd> 
-<dt> A7         </dt> <dd>  210 x  297</dd> 
-<dt> A8         </dt> <dd>  148 x  210</dd> 
-<dt> A9         </dt> <dd>  105 x  148</dd> 
-<dt> A10        </dt> <dd>   74 x  105</dd> 
-<dt> B0         </dt> <dd> 2836 x 4008</dd> 
-<dt> B1         </dt> <dd> 2004 x 2836</dd> 
-<dt> B2         </dt> <dd> 1418 x 2004</dd> 
-<dt> B3         </dt> <dd> 1002 x 1418</dd> 
-<dt> B4         </dt> <dd>  709 x 1002</dd> 
-<dt> B5         </dt> <dd>  501 x  709</dd> 
-<dt> C0         </dt> <dd> 2600 x 3677</dd> 
-<dt> C1         </dt> <dd> 1837 x 2600</dd> 
-<dt> C2         </dt> <dd> 1298 x 1837</dd> 
-<dt> C3         </dt> <dd>  918 x 1298</dd> 
-<dt> C4         </dt> <dd>  649 x  918</dd> 
-<dt> C5         </dt> <dd>  459 x  649</dd> 
-<dt> C6         </dt> <dd>  323 x  459</dd> 
-<dt> Flsa       </dt> <dd>  612 x  936</dd> 
-<dt> Flse       </dt> <dd>  612 x  936</dd> 
-<dt> HalfLetter </dt> <dd>  396 x  612</dd> 
-</dl>
-
-<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="command-line-options.html#gravity">-gravity</a> option. To
-position a GIF or MNG image, use <a href="command-line-options.html#page">-page</a><var>{+-}x{+-}y</var> (e.g.  -page +100+200). When writing to a MNG
-file, a <a href="command-line-options.html#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 <code>MHDR</code> 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="command-line-options.html#geometry">-geometry</a> but positioned relative to the <var>lower
-left-hand corner</var> of the page by {+-}<code>x</code><var>offset</var>{+-}<code>y</code> <var>offset</var>. Use <a href="command-line-options.html#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="command-line-options.html#page">-page</a> option is <var>NorthWest</var>, i.e., positive <code>x</code> and <code>y</code> <var>offset</var> are measured rightward and downward from the top left
-corner of the page, unless the <a href="command-line-options.html#gravity">-gravity</a> option is
-present with a value other than <var>NorthWest</var>.</p>
-
-<p>The default page dimensions for a TEXT image is 612x792.</p>
-
-<p>This option is used in concert with <a href="command-line-options.html#density">-density</a>.</p>
-
-<p>Use <a href="command-line-options.html#page">+page</a> to remove the page settings for an image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="paint"></a>-paint <var>radius</var></h3>
-</div>
-
-<p class="magick-description">simulate an oil painting.</p>
-
-<p>Each pixel is replaced by the most frequent color in a circular
-neighborhood whose width is specified with <var>radius</var>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="path"></a>-path <var>path</var></h3></div>
-
-<p class="magick-description">write images to this path on disk.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="pause_animate_"></a>-pause <var>seconds</var></h3>
-</div>
-
-<p class="magick-description">Pause between animation loops</p>
-
-<p>Pause for the specified number of seconds before repeating the animation.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="pause_import_"></a>-pause <var>seconds</var></h3>
-</div>
-
-<p class="magick-description">Pause between snapshots.</p>
-
-<p>Pause for the specified number of seconds before taking the next snapshot.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="perceptible"></a>-perceptible <var>epsilon</var></h3>
-</div>
-
-<p class="magick-description">set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="ping"></a>-ping</h3>
-</div>
-
-<p class="magick-description">efficiently determine image characteristics.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="pointsize"></a>-pointsize <var>value</var></h3>
-</div>
-
-<p class="magick-description">pointsize of the PostScript, OPTION1, or TrueType font.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="polaroid"></a>-polaroid <var>angle</var></h3>
-</div>
-
-<p class="magick-description">simulate a Polaroid picture.</p>
-
-<p>Use <code>+polaroid</code> to rotate the image at a random angle between -15 and +15 degrees.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="poly"></a>-poly <var>"wt,exp ..."</var></h3>
-</div>
-
-<p class="magick-description">combines multiple images according to a weighted sum of polynomials; one floating point weight (coefficient) and one floating point polynomial exponent (power) for each image expressed as comma separated pairs.</p>
-
-<p> The weights should typically be fractions between -1 and 1. But the sum of weights should be 1 or at least between 0 and 1 to avoid clamping in non-hdri mode at black and white.</p>
-
-<p>The exponents may be positive, negative or zero. A negative exponent is equivalent to 1 divided by the image raised to the corresponding positive exponent. A zero exponent always produces 1 scaled by quantumrange to white, i.e. wt*white, no matter what the image.</p>
-
-<p>The format is: <var>output = wt1*image1^exp1 + wt2*image2^exp2 </var>...</p>
-
-<p>Some simple uses are:</p>
-<ul>
-<li>A weighted sum of each image provided all weights add to unity and all exponents=1. If the the weights are all equal to 1/(number of images), then this is equivalent to <a href="command-line-options.html#profile">-evaluate-sequence</a> <var>mean</var>.</li>
-<li>The sum of squares of two or more images, provided the weights are equal (and sum to 1 to avoid clamping) and the exponents equal 2.</li>
-</ul>
-
-<p>Note that one may add a constant color to the expression simply by using xc:somecolor for one of the images and specifying the desired weight and exponent equal to 0.</p>
-
-<p>Similarly one may add white to the expression by simply using null: (or xc:white) for one of the images with the appropriate weight and exponent equal to 0.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="posterize"></a>-posterize <var>levels</var></h3>
-</div>
-
-<p class="magick-description">reduce the image to a limited number of color levels per channel.</p>
-
-<p>Very low values of <var>levels</var>, e.g., 2, 3, 4, have the most
-visible effect.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="precision"></a>-precision <var>value</var></h3>
-</div>
-
-<p class="magick-description">set the maximum number of significant digits to be printed.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="preview"></a>-preview <var>type</var></h3>
-</div>
-
-<p class="magick-description">image preview type.</p>
-
-<p>Use this option to affect the preview operation of an image (e.g.
-<code>convert file.png -preview Gamma Preview:gamma.png</code>). Choose from
-these previews:</p>
-
-<pre class="pre-scrollable">
-AddNoise
-Blur
-Brightness
-Charcoal
-Despeckle
-Dull
-EdgeDetect
-Gamma
-Grayscale
-Hue
-Implode
-JPEG
-OilPaint
-Quantize
-Raise
-ReduceNoise
-Roll
-Rotate
-Saturation
-Segment
-Shade
-Sharpen
-Shear
-Solarize
-Spiff
-Spread
-Swirl
-Threshold
-Wave
-</pre>
-
-<p>To print a complete list of previews, use the <a href="command-line-options.html#list">-list preview</a> option.</p>
-
-<p>The default preview is <code>JPEG</code>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="print"></a>-print <var>string</var></h3>
-</div>
-
-<p class="magick-description">interpret string and print to console.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="process"></a>-process <var>command</var></h3>
-</div>
-
-<p class="magick-description">process the image with a custom image filter.</p>
-
-<p>The command arguments has the form <code>"module arg1 arg2 arg3 ...
-argN"</code> where <code>module</code> 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;">
-  <h3 class="magick-header"><a id="profile"></a>-profile <var>filename</var><br>
-  +profile <var>profile_name</var></h3>
-</div>
-
-<p class="magick-description">Manage ICM, IPTC, or generic profiles in an image.</p>
-
-<p>Using <a href="command-line-options.html#profile">-profile</a> <var>filename</var> adds an
-ICM (ICC color management), IPTC (newswire information), or a generic profile
-to the image.</p>
-
-<p>Use <a href="command-line-options.html#profile">+profile <var>profile_name</var></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:  <code>+profile
-"!xmp,*"</code>. </p>
-
-<p>Use <code>identify -verbose</code> to find out which profiles are in the
-image file. Use <a href="command-line-options.html#strip">-strip</a> to remove all profiles (and
-comments).</p>
-
-<p>To extract a profile, the <a href="command-line-options.html#profile">-profile</a> option is not
-used. Instead, simply write the file to an image format such as <var>APP1, 8BIM, ICM,</var> or <var>IPTC</var>.</p>
-
-<p>For example, to extract the Exif data (which is stored in JPEG files in the
-<var>APP1</var> profile), use.</p>
-
-<pre>
-convert cockatoo.jpg profile.exif
-</pre>
-
-<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="command-line-options.html#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>
-
-<pre>
-convert CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff
-</pre>
-
-<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−&gt;4 and 4−&gt;3 channel mapping.
-</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="quality"></a>-quality <var>value</var></h3>
-</div>
-
-<p class="magick-description">JPEG/MIFF/PNG compression level.</p>
-
-<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 estimated quality of your input image if it can
-be determined, otherwise 92. When the quality is greater than 90, then the
-chroma channels are not downsampled.
-Use the <a href="command-line-options.html#sampling-factor">-sampling-factor</a> option to specify the
-factors for chroma downsampling.</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).  The default
-PNG "quality" is 75, which means compression level 7 with adaptive PNG
-filtering, unless the image has a color map, in which case it means
-compression level 7 with no PNG filtering.</p>
-
-<p>For compression level 0 (quality value less than 10), the Huffman-only
-strategy is used, which is fastest but not necessarily the worst
-compression.</p>
-
-<p>If filter-type is 4 or less, the specified PNG filter-type is used for
-all scanlines:</p>
-
-<dl class="dl-horizontal">
-<dt>0</dt><dd>none</dd>
-<dt>1</dt><dd>sub</dd>
-<dt>2</dt><dd>up</dd>
-<dt>3</dt><dd>average</dd>
-<dt>4</dt><dd>Paeth</dd>
-</dl>
-
-<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 <var>minimum-sum-of-absolute-values</var> is used.</p>
-
-<p>Only if the output is MNG, if filter-type is 7, the LOCO color
-transformation (intrapixel differencing) and adaptive filtering
-with <var>minimum-sum-of-absolute-values</var> are used.</p>
-
-<p>If the filter-type is 8 the zlib Z_RLE compression strategy (or the
-Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with
-adaptive PNG filtering.</p>
-
-<p>If the filter-type is 9 the zlib Z_RLE compression strategy (or the
-Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with
-no PNG filtering.</p>
-
-<p>The quality setting has no effect on the appearance or signature of PNG
-and MNG images, since the compression is always lossless.</p>
-
-<p>Not all combinations of compression level, strategy, and PNG filter type
-can be obtained using the -quality option.  For more precise control,
-you can use the PNG:compression-level=N, PNG:compression-strategy=N, and
-PNG:compression-filter=N defines, respectively, instead.
-See <a href="command-line-options.html#define">-define</a>. Values from the defines take precedence
-over values from the -quality option.</p>
-
-<p>For further information, see
-the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>
-
-<p>For the MIFF and TIFF image formats, quality/10 is the <a href="command-line-options.html#compress">Zip/BZip</a> 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 BPG image format, quality/2 is the actual BPG compression level (range from 0 to 51).</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="quantize"></a>-quantize <var>colorspace</var></h3>
-</div>
-
-<p class="magick-description">reduce colors using this colorspace.</p>
-
-<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="command-line-options.html#colors">-colors</a>, Note that color reduction also happens
-automatically when saving images to color-limited image file formats, such as
-GIF, and PNG8.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="quiet"></a>-quiet</h3>
-</div>
-
-<p class="magick-description">suppress all warning messages. Error messages are still reported.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="radial-blur"></a>-radial-blur  <var>angle</var></h3>
-</div>
-
-<p class="magick-description">Blur around the center of the image.</p>
-
-<p>Note that this is actually a rotational blur rather than a radial and as
-such actually mis-named. </p>
-
-<p>The <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="raise"></a>-raise <var>thickness</var></h3>
-</div>
-
-<p class="magick-description">Lighten or darken image edges.</p>
-
-<p>This will create a 3-D effect. Use <a href="command-line-options.html#raise">-raise</a> to create
-a raised effect, otherwise use <a href="command-line-options.html#raise">+raise</a>.  </p>
-
-<p>Unlike the similar <a href="command-line-options.html#frame">-frame</a> option, <a href="command-line-options.html#raise">-raise</a> does not alter the dimensions of the image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="random-threshold"></a>-random-threshold <var>low</var>x<var>high</var></h3>
-</div>
-
-<p class="magick-description">Apply a random threshold to the image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="red-primary"></a>-red-primary <var>x,y</var></h3>
-</div>
-
-<p class="magick-description">Set the red chromaticity primary point.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="regard-warnings"></a>-regard-warnings</h3>
-</div>
-
-<p class="magick-description">Pay attention to warning messages.</p>
-
-<p>This option causes some warnings in some image formats to be treated
-as errors. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="remap"></a>-remap <var>filename</var></h3>
-</div>
-
-<p class="magick-description">Reduce the number of colors in an image to the colors used by this image.</p>
-
-<p>If the <a href="command-line-options.html#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="command-line-options.html#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="command-line-options.html#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="command-line-options.html#colors">-colors</a> with a 256 color
-limit, then <a href="command-line-options.html#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="command-line-options.html#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="command-line-options.html#colors">-colors</a> or <a href="command-line-options.html#ordered-dither">-ordered-dither</a> to
-reduce the number of colors in an animated image sequence. </p>
-
-<p>Note, the remap image colormap has at most 8-bits of precision. Deeper color maps are automagically coalesced with other colors to meet this requirement.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="region"></a>-region <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Set a region in which subsequent operations apply.</p>
-
-<p>The <var>x</var> and <var>y</var> offsets are treated
-in the same manner as in <a href="command-line-options.html#crop">-crop</a>.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="remote"></a>-remote</h3>
-</div>
-
-<p class="magick-description">perform a remote operation.</p>
-
-<p>The only command recognized is the name of an image file to load.</p>
-
-<p>If you have more than one <a href="display.html">display</a> application
-running simultaneously, use the <a href="command-line-options.html#window"> window</a> option to
-specify which application to control.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="render"></a>-render</h3>
-</div>
-
-<p class="magick-description">render vector operations.</p>
-
-<p>Use <a href="command-line-options.html#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;">
-<h3 class="magick-header"><a id="repage"></a>-repage <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Adjust the canvas and offset information of the image.</p>
-
-<p>This option is like <a href="command-line-options.html#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="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<p>If a <code>!</code> 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 '<code>0x0</code>' 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="command-line-options.html#repage">+repage</a> to completely remove/reset the virtual
-canvas meta-data from the images. </p>
-
-<p>The <a href="command-line-options.html#set">-set</a> '<code>page</code>' option can be used to
-directly assign virtual canvas meta-data. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="resample"></a>-resample <var>horizontal</var>x<var>vertical</var></h3>
-</div>
-
-<p class="magick-description">Resample image to specified horizontal and vertical resolution.</p>
-
-<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="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="resize"></a>-resize <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Resize an image.</p>
-
-<p>See <a href="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="command-line-options.html#gravity">-gravity</a> option has no effect.</p>
-
-<p>If the <a href="command-line-options.html#filter">-filter</a> option
-or <code>-define filter:option=value</code> precedes the <a href="command-line-options.html#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>
-
-<pre>
-convert portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \
-  -quality 92 passport.jpg
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="respect-parentheses"></a>-respect-parentheses</h3>
-</div>
-
-<p class="magick-description">settings remain in effect until parenthesis boundary.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="reverse"></a>-reverse</h3>
-</div>
-
-<p class="magick-description">Reverse the order of images in the current image list.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="roll"></a>-roll {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
-</div>
-
-<p class="magick-description">roll an image vertically or horizontally by the amount given.</p>
-
-<p>A negative <var>x</var> offset rolls the image right-to-left.
-A negative <var>y</var> offset rolls the image bottom-to-top.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="rotate"></a>-rotate <var>degrees</var>{<var>&lt;</var>}{<var>&gt;</var>}</h3>
-</div>
-
-<p class="magick-description">Apply Paeth image rotation (using shear operations) to the image.</p>
-
-<p>Use <code>&gt;</code> to rotate the image only if its width exceeds the
-height. <code>&lt;</code> rotates the image <var>only</var> if its width is less
-than the height. For example, if you specify <code>-rotate "-90&gt;"</code> 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 <code>&gt;</code> or
-<code>&lt;</code>, 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 <code>background</code> color. </p>
-
-<p>See also the <a href="command-line-options.html#distort">-distort</a> operator and specifically the
-'<code>ScaleRotateTranslate</code>' distort method. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sample"></a>-sample <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
-
-<p>Change the image size simply by directly sampling the pixels original
-from the 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="command-line-options.html#resize">-resize</a> with
-a <a href="command-line-options.html#filter">-filter</a> setting of <code>point</code> (nearest
-neighbour), though <a href="command-line-options.html#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="command-line-options.html#filter">-filter</a> setting. </p>
-
-<p>The key feature of the <a href="command-line-options.html#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="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="command-line-options.html#resize">-resize</a>. </p>
-
-
-<p>The actual sampling point is the middle of the sub-region being sampled.
-As such a single pixel sampling of an image will take the middle pixel, (or
-top-left-middle if image has even dimensions).  However the <a href="command-line-options.html#define">-define</a> '<code>sample:offset</code>' can be set to modify
-this position some other location within each sub-region being sampled, as
-a percentage offset.</p>
-
-<p>By default this value is '<code>50</code>' for the midpoint, but could be set
-to '<code>0</code>' for top-left, '<code>100</code>' for bottom-right, or with
-separate X and Y offsets such as '<code>0x50</code>' for left-middle edge of
-sampling sub-region.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sampling-factor"></a>-sampling-factor <var>horizontal-factor</var>x<var>vertical-factor</var></h3>
-</div>
-
-<p class="magick-description">sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
-
-<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="command-line-options.html#sampling-factor">-sampling-factor 2x1</a> or <a href="command-line-options.html#sampling-factor">-sampling-factor 4:2:2</a> to specify the 4:2:2
-downsampling method.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="scale"></a>-scale <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
-
-<p>Change the image size simply by replacing pixels by averaging pixels
-together when minifying, or replacing pixels when magnifying.  </p>
-
-<p>The results are thus equivalent to using <a href="command-line-options.html#resize">-resize</a> with
-a <a href="command-line-options.html#filter">-filter</a> setting of <code>box</code>.  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="command-line-options.html#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 averaged 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;">
-  <h3 class="magick-header"><a id="scene"></a>-scene <var>value</var></h3>
-</div>
-
-<p class="magick-description">set scene number.</p>
-
-<p>This option sets the scene number of an image or the first image in an image sequence.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="screen"></a>-screen</h3>
-</div>
-
-<p class="magick-description">specify the screen to capture.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="seed"></a>-seed</h3>
-</div>
-
-<p class="magick-description">seed a new sequence of pseudo-random numbers</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="segment"></a>-segment <var>cluster-threshold</var>x<var>smoothing-threshold</var></h3>
-</div>
-
-<p class="magick-description">segment the colors of an image.</p>
-
-<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 <var>cluster threshold</var> as the number of pixels in
-each cluster that must exceed the cluster threshold to be considered valid.
-<var>Smoothing threshold</var> 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="command-line-options.html#verbose">-verbose</a> setting is defined, a detailed report
-of the color clusters is returned.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="selective-blur"></a>-selective-blur <var>radius</var><br>-selective-blur <var>radius</var>x<var>sigma</var>{<var>+threshold</var>}</h3>
-</div>
-
-<p class="magick-description">Selectively blur pixels within a contrast threshold.</p>
-
-<p>Blurs those pixels that are less than or equal to the threshold in
-contrast. The threshold may be expressed as a fraction of <var>QuantumRange</var> or as a percentage.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="separate"></a>-separate</h3>
-</div>
-
-<p class="magick-description">separate an image channel into a grayscale image.  Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sepia-tone"></a>-sepia-tone <var>threshold</var></h3>
-</div>
-
-<p class="magick-description">simulate a sepia-toned photo.</p>
-
-<p>Specify <var>threshold</var> 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 <var>QuantumRange</var> 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;">
-  <h3 class="magick-header"><a id="set"></a>-set <var>key value</var></h3>
-  <h3 class="magick-header">+set <var>key</var></h3>
-</div>
-
-<p class="magick-description">sets image attributes and properties for images in the current image sequence.</p>
-
-<p>This will assign (or modify) specific settings attached to all the images
-in the current image sequence.  Using the <a href="command-line-options.html#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="command-line-options.html#delay">-delay</a>, <a href="command-line-options.html#dispose">-dispose</a>, and <a href="command-line-options.html#page">-page</a>, <a href="command-line-options.html#colorspace">-colorspace</a>; generally
-assigned before the image is read in, by using a <var>key</var> of
-the same name. </p>
-
-<p>If the given <var>key</var> 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="command-line-options.html#verbose">-verbose</a> information ("<code>info:</code>" output format) as "Properties".
-</p>
-
-<p>This includes string 'properties' that are set by and assigned to images
-using the options <a href="command-line-options.html#comment">-comment</a>, <a href="command-line-options.html#label">-label</a>, <a href="command-line-options.html#caption">-caption</a>. These options actually assign
-a global 'artifact' which are automatically assigned (and any <a href="escape.html">Format Percent
-Escapes</a> expanded) to images as they are read in.  For example:</p>
-
-<pre>
--&gt; convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png
-identify -format %c rose.png
-Rose is a rose is a rose is a rose
-</pre>
-
-<p>The set value can also make use of <a href="escape.html">Format and Print Image
-Properties</a> in the defined value.  For example:</p>
-
-<pre>
--&gt; convert rose: -set origsize '%wx%h' -resize 50% \
-  -format 'Old size = %[origsize]  New size = %wx%h' info:
-Old size = 70x46  New size = 35x23
-</pre>
-
-<p>Other well known 'properties' that are available include:
-'<code>date:create</code>' and '<code>date:modify</code>' and
-'<code>signature</code>'. </p>
-
-<p>The <a href="command-line-options.html#repage">-repage</a> operator will also allow you to modify
-the '<code>page</code>' attribute of an image for images already in memory (also
-see <a href="command-line-options.html#repage">-page</a>).  However it is designed to provide a finer
-control of the sub-parts of this 'attribute'. The <a href="command-line-options.html#set">-set page</a>
-option will only provide a direct, unmodified assignment of  '<code>page</code>'
-attribute. </p>
-
-<p>This option can also associate a colorspace or profile with your image.
-For example,</p>
-
-<pre>
-convert image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd
-</pre>
-
-<p>Some 'properties' must be defined in a specific way to be used. For
-example only 'properties' prefixed with "<code>filename:</code>" can be used to
-modify the output filename of an image. For example</p>
-
-<pre>
-convert rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'
-</pre>
-
-<p>If the setting value is prefixed with "<code>option:</code>" the setting will
-be saved as a global "Artifact" exactly as if it was set using the <a href="command-line-options.html#define">-define</a> option. As such settings are global in scope, they
-can be used to pass 'attributes' and 'properties' 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>
-
-<pre>
-convert rose:  -set option:rosesize '%wx%h' -delete 0 \
-  label:'%[rosesize]'   label_size_of_rose.gif"
-</pre>
-
-<p>Note that <a href="escape.html">Format Percent Escapes</a> will only match
-a 'artifact' if the given <var>key</var> does not match an existing
-'attribute' or 'property'.  </p>
-
-<p>You can set the attributes of the image registry by prefixing the value
-with <code>registry:</code>.</p>
-
-<p>The <a href="command-line-options.html#set">-set 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>
-
-<pre>
-convert in.png -set profile PNG-chunk-x:&lt;filename&gt; out.png
-</pre>
-
-<p>where <var>x</var> is a location flag and
-<var>filename</var> 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>
-
-
-<pre>
-convert in.png -set profile PNG-chunk-b01:file01 \ 
-  -profile PNG-chunk-b02:file02 out.png
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="shade"></a>-shade <var>azimuth</var>x<var>elevation</var></h3>
-</div>
-
-<p class="magick-description">shade the image using a distant light source.</p>
-
-<p>Specify <var>azimuth</var> and <var>elevation</var> as
-the position of the light source. Use <a href="command-line-options.html#shade">+shade</a> to return
-the shading results as a grayscale image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="shadow"></a>-shadow <var>percent-opacity</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">simulate an image shadow.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="shared-memory"></a>-shared-memory</h3>
-</div>
-
-<p class="magick-description">use shared memory.</p>
-
-<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 <var>MIT-SHM</var> extension.
-Otherwise, this option is ignored. The default is <code>True</code>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sharpen"></a>-sharpen <var>radius</var><br>-sharpen <var>radius</var>x<var>sigma</var></h3>
-</div>
-
-<p class="magick-description">sharpen the image.</p>
-
-<p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="shave"></a>-shave <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Shave pixels from the image edges.</p>
-
-<p>The <var>size</var> portion of the <var>geometry</var>
-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="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="shear"></a>-shear <var>Xdegrees</var>[x<var>Ydegrees</var>]</h3>
-</div>
-
-<p class="magick-description">Shear the image along the x-axis and/or y-axis.</p>
-
-<p>The shear angles may be positive, negative, or zero. When <var>Ydegrees</var> 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,
-<var>Xdegrees</var> is measured clockwise relative to "up" (the
-negative y-axis), sliding the top edge to the right when 0°&lt;<var>Xdegrees</var>&lt;90° and to the left when 90°&lt;<var>Xdegrees</var>&lt;180°.  For vertical shears <var>Ydegrees</var> is measured clockwise relative to "right" (the
-positive x-axis), sliding the right edge down when 0°&lt;<var>Ydegrees</var>&lt;90° and up when 90°&lt;<var>Ydegrees</var>&lt;180°.</p>
-
-<p>Empty triangles left over from shearing the image are filled with the color
-defined by the <a href="command-line-options.html#fill">-background</a> option. The color is specified
-using the format described under the <a href="command-line-options.html#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
-<var>commute</var>, i.e., the order matters in a sequence of shears. For
-example, the following two commands are not equivalent.</p>
-
-<pre>
-convert logo: -shear 20x0 -shear 0x60 logo-sheared.png
-convert logo: -shear 0x60 -shear 20x0 logo-sheared.png
-</pre>
-
-<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>
-
-<pre>
-convert logo: -shear 20x60 logo-sheared.png
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sigmoidal-contrast"></a>-sigmoidal-contrast <var>contrast</var>x<var>mid-point</var></h3>
-</div>
-
-<p class="magick-description">increase the contrast without saturating highlights or shadows.</p>
-
-<p>Increase the contrast of the image using a sigmoidal transfer function
-without saturating highlights or shadows. <var>Contrast</var>
-indicates how much to increase the contrast. For example, 0 is none, 3 is
-typical and 20 is a lot.
-</p>
-
-<p>The <var>mid-point</var> indicates where the maximum change
-'slope' in contrast should fall in the resultant image (0 is white; 50% is
-middle-gray; 100% is black). </p>
-
-<p>By default the image contrast is increased, use <var>+sigmoidal-contrast</var> to decrease the contrast.</p>
-
-<p>To achieve the equivalent of a sigmoidal brightness change (similar to 
-a gamma adjustment), you would use <var>-sigmoidal-contrast
-{brightness}x0%</var> to increase brightness and <var>+sigmoidal-contrast {brightness}x0%</var> to decrease brightness.
-Note the use of '0' fo rthe mid-point of the sigmoidal curve. </p>
-
-<p>Using a very high <var>contrast</var> will produce a sort of
-'smoothed thresholding' of the image.  Not as sharp (with high aliasing
-effects) of a true threshold, but with tapered gray-levels around the threshold
-<var>mid-point</var>. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="silent"></a>-silent</h3>
-</div>
-
-<p class="magick-description">operate silently.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="similarity-threshold"></a>-similarity-threshold <var>value</var></h3>
-</div>
-
-<p class="magick-description">minimum RMSE for subimage match.</p>
-
-<p>If this setting is used, then the search will stop as soon as it finds a match whose metric is less than or equal to the value. A partially filled second output image will result. Using a value of zero, will cause the search to stop at the first perfect match it finds. If this setting is left off, then the search will proceed to completion or as limited by <var>-dissimilarity-threshold</var>.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="size"></a>-size <var>width</var>[x<var>height</var>][<var>+offset</var>]</h3>
-</div>
-
-<p class="magick-description">set the width and height of the image.</p>
-
-<p>Use this option to specify the width and height of raw images whose
-dimensions are unknown such as <code>GRAY</code>, <code>RGB</code>, or
-<code>CMYK</code>. In addition to width and height, use <a href="command-line-options.html#size">-size</a> with an offset to skip any header information in the
-image or tell the number of colors in a <code>MAP</code> image file, (e.g. -size
-640x512+256).</p>
-
-<p>For Photo CD images, choose from these sizes:</p>
-
-<pre>
-192x128
-384x256
-768x512
-1536x1024
-3072x2048
-</pre>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sketch"></a>-sketch <var>radius</var><br>-sketch <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
-</div>
-
-<p class="magick-description">simulate a pencil sketch.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="smush"></a>-smush <var>offset</var></h3>
-</div>
-
-<p class="magick-description">smush an image sequence together.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="snaps"></a>-snaps <var>value</var></h3>
-</div>
-
-<p class="magick-description">Set the number of screen snapshots.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="solarize"></a>-solarize <var>threshold</var></h3>
-</div>
-
-<p class="magick-description">negate all pixels above the threshold level.</p>
-
-<p>Specify <var>factor</var> as the percent threshold of the intensity (0 - 99.9%).</p>
-
-<p>This option produces a <var>solarization</var> effect seen when
-exposing a photographic film to light during the development process.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="sparse-color"></a>-sparse-color <var>method</var>  '<var>x</var>,<var>y</var> <var>color</var>  ...'</h3>
-</div>
-
-<p class="magick-description"> color the given image using the specified points of color, and filling the other intervening colors using the given methods. </p>
-
-
-<dl class="dl-horizontal">
-    <dt>barycentric</dt>
-    <dd>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. </dd>
-    <dt>bilinear</dt>
-    <dd>Like barycentric but for 4 points. Less than 4 points
-        fall back to barycentric. </dd>
-    <dt>voronoi</dt>
-    <dd>Simply map each pixel to the to nearest color point
-        given. The result are polygonal 'cells' of solid color. </dd>
-    <dt>manhatten</dt>
-    <dd>Like voronoi, but resulting polygonal 'cells' are mapped
-        to fixed coordinate system.</dd>
-    <dt>shepards</dt>
-    <dd>Colors points biased on the ratio of inverse distance
-        squared. Generating spots of color in a sea of the average of
-        colors. </dd>
-    <dt>inverse</dt>
-    <dd>Colors points biased on the ratio of inverse distance.
-        This generates sharper points of color rather than rounded spots of
-        '<code>shepards</code>'  Generating spots of color in a sea of the
-        average of colors. </dd>
-</dl>
-
-<p>The points are placed according to the images location on the virtual
-canvas (<a href="command-line-options.html#page">-page</a> or <a href="command-line-options.html#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="command-line-options.html#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>
-
-<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 an image to some
-default value. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="splice"></a>-splice <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Splice the current background color into the image.</p>
-
-<p>This will add rows and columns of the current <a href="command-line-options.html#background">-background</a> color into the given image according to the
-given  <a href="command-line-options.html#gravity">-gravity</a> geometry setting.  See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Essentially <a href="command-line-options.html#splice">-splice</a> will divide the
-image into four quadrants, separating them by the inserted rows and columns.
-</p>
-
-<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="command-line-options.html#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="command-line-options.html#splice">-splice</a> is most commonly used for. </p>
-
-<p>If the exact same  <var>geometry</var> and <a href="command-line-options.html#gravity">-gravity</a> is later used with <a href="command-line-options.html#chop">-chop</a> the
-added added all splices removed. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="spread"></a>-spread <var>amount</var></h3>
-</div>
-
-<p class="magick-description">displace image pixels by a random amount.</p>
-
-<p>The argument <var>amount</var> defines the size of the
-neighborhood around each pixel from which to choose a candidate pixel to
-blend.</p>
-
-<p>The lookup is controlled by the <a href="command-line-options.html#interpolate">-interpolate</a> setting.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="statistic"></a>-statistic <var>type</var> <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">replace each pixel with corresponding statistic from the neighborhood.</p>
-
-<p>Choose from these statistic types:</p>
-<dl class="dl-horizontal">
-<dt>Gradient</dt><dd>maximum difference (max - min) value in neighborhood</dd>
-<dt>Maximum</dt><dd>maximum value per channel in neighborhood</dd>
-<dt>Minimum</dt><dd>minimum value per channel in neighborhood</dd>
-<dt>Mean</dt><dd>average value per channel in neighborhood</dd>
-<dt>Median</dt><dd>median value per channel in neighborhood</dd>
-<dt>Mode</dt><dd>mode (most frequent) value per channel in neighborhood</dd>
-<dt>Nonpeak</dt><dd>value just before or after the median value per channel in neighborhood</dd>
-<dt>RMS</dt><dd>root mean square value per channel in neighborhood</dd>
-<dt>StandardDeviation</dt><dd> standard deviation value per channel in neighborhood</dd>
-</dl>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="stegano"></a>-stegano <var>offset</var></h3>
-</div>
-
-<p class="magick-description">hide watermark within an image.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="stereo"></a>-stereo <var>+x</var>{<var>+y</var>}</h3>
-</div>
-
-<p class="magick-description">composite two images to create a red / cyan stereo anaglyph.</p>
-
-<p>The left side of the stereo pair (second image) is saved as the red channel of the output image. The right side (first image) is saved as the green and blue channels. Red-green stereo glasses are required to properly view the stereo image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="storage-type"></a>-storage-type <var>type</var></h3>
-</div>
-
-<p class="magick-description">pixel storage type.  Here are the valid types:</p>
-
-<dl class="dl-horizontal">
-<dt>char</dt><dd>unsigned characters</dd>
-<dt>double</dt><dd>doubles</dd>
-<dt>float</dt><dd>floats</dd>
-<dt>integer</dt><dd>integers</dd>
-<dt>long</dt><dd>longs</dd>
-<dt>quantum</dt><dd>pixels in the native depth of your ImageMagick distribution</dd>
-<dt>short</dt><dd>unsigned shorts</dd>
-</dl>
-
-<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;">
-  <h3 class="magick-header"><a id="stretch"></a>-stretch <var>fontStretch</var></h3>
-</div>
-
-<p class="magick-description">Set a type of stretch style for fonts.</p>
-
-<p>This setting suggests a type of stretch that ImageMagick should try to
-apply to the currently selected font family. Select <var>fontStretch</var> from the following.</p>
-
-<pre>
-Any
-Condensed
-Expanded
-ExtraCondensed
-ExtraExpanded
-Normal
-SemiCondensed
-SemiExpanded
-UltraCondensed
-UltraExpanded
-</pre>
-
-<p>To print a complete list of stretch types, use <a href="command-line-options.html#list">-list
-stretch</a>.</p>
-
-<p>For other settings that affect fonts, see the options <a href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="strip"></a>-strip</h3>
-</div>
-
-<p class="magick-description">strip the image of any profiles or comments.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="stroke"></a>-stroke <var>color</var></h3>
-</div>
-
-<p class="magick-description">color to use when stroking a graphic primitive.</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
-
-<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="strokewidth"></a>-strokewidth <var>value</var></h3>
-</div>
-
-<p class="magick-description">set the stroke width.</p>
-
-<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="style"></a>-style <var>fontStyle</var></h3>
-</div>
-
-<p class="magick-description">Set a font style for text.</p>
-
-<p>This setting suggests a font style that ImageMagick should try to apply to
-the currently selected font family. Select <var>fontStyle</var> from
-the following.</p>
-
-<pre>
-Any
-Italic
-Normal
-Oblique
-</pre>
-
-<p>For other settings that affect fonts, see the options <a href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="subimage-search"></a>-subimage-search</h3>
-</div>
-
-<p class="magick-description">search for subimage.</p>
-
-<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 not be a perfect match, and the actual
-brightness will reflect this. Other bright 'peaks' can be used to locate other
-possible matching locations. </p>
-
-<p>Note that the search will try to compare the 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;">
-  <h3 class="magick-header"><a id="swap"></a>-swap <var>index,index</var></h3>
-</div>
-
-<p class="magick-description">Swap the positions of two images in the image sequence.</p>
-
-<p>For example, <a href="command-line-options.html#swap">-swap 0,2</a> swaps the first and the third
-images in the current image sequence. Use <a href="command-line-options.html#swap">+swap</a> to switch
-the last two images in the sequence.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="swirl"></a>-swirl <var>degrees</var></h3>
-</div>
-
-<p class="magick-description">swirl image pixels about the center.</p>
-
-<p><var>Degrees</var> defines the tightness of the swirl.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="synchronize"></a>-synchronize</h3>
-</div>
-
-<p class="magick-description">synchronize image to storage device.</p>
-
-<p>Set to "true" to ensure all image data is fully flushed and synchronized
-to disk. There is a performance penalty, but the benefits include ensuring a
-valid image file in the event of a system crash and early reporting if there
-is not enough disk space for the image pixel cache.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="taint"></a>-taint</h3>
-</div>
-
-<p class="magick-description">Mark the image as modified.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="text-font"></a>-text-font <var>name</var></h3>
-</div>
-
-<p class="magick-description">font for writing fixed-width text.</p>
-
-<p>Specifies the name of the preferred font to use in fixed (typewriter style)
-formatted text. The default is 14 point <var>Courier</var>.</p>
-
-<p>You can tag a font to specify whether it is a PostScript, TrueType, or
-OPTION1 font. For example, <code>Courier.ttf</code> is a TrueType font and
-<code>x:fixed</code> is OPTION1.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="texture"></a>-texture <var>filename</var></h3>
-</div>
-
-<p class="magick-description">name of texture to tile onto the image background.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="threshold"></a>-threshold <var>value</var>{<var>%</var>}</h3>
-</div>
-
-<!-- {<var>green,blue,opacity</var>}
-<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>
--->
-
-<p class="magick-description">Apply simultaneous black/white threshold to the image.</p>
-
-<p>Any pixel values (more specifically, those channels set using <a href="command-line-options.html#channel">‑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
-<code>quantum depth</code> 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>
-
-<pre>
-convert in.png -channel red -threshold 50% out.png
-</pre>
-
-<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>
-
-
-<pre>
-convert in.png -threshold 100% black.png
-convert in.png -threshold -1 white.png
-</pre>
-
-<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="command-line-options.html#black-threshold">‑black‑threshold</a> and <a href="command-line-options.html#white-threshold">‑white‑threshold</a>.
-</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="thumbnail"></a>-thumbnail <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Create a thumbnail of the image.</p>
-
-<p>This is similar to <a href="command-line-options.html#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="command-line-options.html#strip">-strip</a> just before of after this option.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="tile"></a>-tile <var>filename</var></h3>
-</div>
-
-<p class="magick-description">Set the tile image used for filling a subsequent graphic primitive.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header">-tile <var>geometry</var></h3>
-</div>
-
-<p class="magick-description">Specify the layout of images.</p>
-
-<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header">-tile</h3>
-</div>
-
-<p class="magick-description">Specifies that a subsequent composite operation is repeated across and down image.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="tile-offset"></a>-tile-offset {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
-</div>
-
-<p class="magick-description">Specify the offset for tile images, relative to the background image it is tiled on.</p>
-
-<p>This should be set before the tiling image is set by <a href="command-line-options.html#tile">-tile</a> or <a href="command-line-options.html#texture">-texture</a>, or directly applied for
-creating a tiled canvas using <code>TILE:</code> or <code>PATTERN:</code> input
-formats. </p>
-
-<p>Internally ImageMagick does a <a href="command-line-options.html#roll">-roll</a> of the tile image
-by the arguments given when the tile image is set. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="tint"></a>-tint <var>value</var></h3>
-</div>
-
-<p class="magick-description">Tint the image with the fill color.</p>
-
-<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;">
-  <h3 class="magick-header"><a id="title"></a>-title <var>string</var></h3>
-</div>
-
-<p class="magick-description">Assign a title to displayed image.", "animate", "display", "montage</p>
-
-<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="command-line-options.html#format">-format</a> option.</p>
-
-<p>For example,</p>
-
-<pre>
--title "%m:%f %wx%h"
-</pre>
-
-<p>produces an image title of <code>MIFF:bird.miff 512x480</code> for an image
-titled <code>bird.miff</code> and whose width is 512 and height is 480.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="transform"></a>-transform</h3>
-</div>
-
-<p class="magick-description">transform the image.</p>
-
-<p>This option applies the transformation matrix from a previous <a href="command-line-options.html#affine">-affine</a> option.</p>
-
-<pre>
-convert -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg
-</pre>
-
-
-<p>This operator has been now been superseded by the  <a href="command-line-options.html#distort">-distort</a> '<code>AffineProjection</code>' method. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="transparent"></a>-transparent <var>color</var></h3>
-</div>
-
-<p class="magick-description">Make this color transparent within the image.</p>
-
-<p>The <var>color</var> argument is defined using the format
-described under the <a href="command-line-options.html#fill">-fill</a> option. The <a href="command-line-options.html#fuzz">-fuzz</a> setting can be used to match and replace colors similar to the one
-given. </p>
-
-<p>Use  <a href="command-line-options.html#transparent">+transparent</a> to invert the pixels matched.
-that is make all non-matching colors transparent. </p>
-
-<p>The <a href="command-line-options.html#opaque">-opaque</a>  operator is exactly the same as <a href="command-line-options.html#transparent">-transparent</a> but replaces the matching color with the
-current <a href="command-line-options.html#fill">-fill</a> color setting, rather than transparent.
-However the <a href="command-line-options.html#transparent">-transparent</a> operator also ensures
-that the image has an alpha channel enabled, as per "<code><a href="command-line-options.html#alpha">-alpha</a> set</code>", and does not require you to modify the <a href="command-line-options.html#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="command-line-options.html#transparent-color">-transparent-color</a> </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="transparent-color"></a>-transparent-color <var>color</var></h3>
-</div>
-
-<p class="magick-description">Set the transparent color.</p>
-
-<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="command-line-options.html#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 <code>#00000000</code>, which is fully transparent black.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="transpose"></a>-transpose</h3>
-</div>
-
-<p class="magick-description">Mirror the image along the top-left to bottom-right diagonal.</p>
-
-<p> This option mathematically transposes the pixel array.  It is equivalent to the sequence <code>-flip -rotate 90</code>.
-</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="transverse"></a>-transverse</h3>
-</div>
-
-<p class="magick-description">Mirror the image along the images bottom-left top-right diagonal.  Equivalent to the operations <code>-flop -rotate 90</code>.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="treedepth"></a>-treedepth <var>value</var></h3>
-</div>
-
-<p class="magick-description">tree depth for the color reduction algorithm.</p>
-
-<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="quantize.html">color reduction algorithm</a> for more details.</p>
-
-<p>The <a href="command-line-options.html#colors">-colors</a> or <a href="command-line-options.html#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;">
-  <h3 class="magick-header"><a id="trim"></a>-trim</h3>
-</div>
-
-<p class="magick-description">trim an image.</p>
-
-<p>This option removes any edges that are exactly the same color as the corner
-pixels. Use <a href="command-line-options.html#fuzz">-fuzz</a> to make <a href="command-line-options.html#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="command-line-options.html#trim">-trim</a> operation from the
-image.  Use a <a href="command-line-options.html#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="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="type"></a>-type <var>type</var></h3>
-</div>
-
-<p class="magick-description">the image type.</p> <p>Choose from: <code>Bilevel</code>,
-<code>Grayscale</code>, <code>GrayscaleMatte</code>, <code>Palette</code>,
-<code>PaletteMatte</code>, <code>TrueColor</code>, <code>TrueColorMatte</code>,
-<code>ColorSeparation</code>, or <code>ColorSeparationMatte</code>.</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="command-line-options.html#type">-type</a> option can be used to override this behavior. For
-example, to prevent a JPEG from being written in grayscale format even though
-only gray pixels are present, use.</p>
-
-<pre>
-convert bird.png -type TrueColor bird.jpg
-</pre>
-
-<p>Similarly, use <a href="command-line-options.html#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="command-line-options.html#type">-type optimize</a> to ensure the image is written in the smallest possible file size.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="undercolor"></a>-undercolor <var>color</var></h3>
-</div>
-
-<p class="magick-description">set the color of the annotation bounding box.</p>
-
-<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
-
-<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="update"></a>-update <var>seconds</var></h3>
-</div>
-
-<p class="magick-description">detect when image file is modified and redisplay.</p>
-
-<p>Suppose that while you are displaying an image the file that is currently
-displayed is over-written.  <code>display</code> will automagically detect that
-the input file has been changed and update the displayed image
-accordingly.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="unique-colors"></a>-unique-colors</h3>
-</div>
-
-<p class="magick-description">discard all but one of any pixel color.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="units"></a>-units <var>type</var></h3>
-</div>
-
-<p class="magick-description">the units of image resolution.</p>
-
-<p>Choose from: <code>Undefined</code>, <code>PixelsPerInch</code>, or
-<code>PixelsPerCentimeter</code>. This option is normally used in conjunction
-with the <a href="command-line-options.html#density">-density</a> option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="unsharp"></a>-unsharp <var>radius</var><br>-unsharp <var>radius</var>x<var>sigma</var>{<var>+gain</var>}{<var>+threshold</var>}</h3>
-</div>
-
-<p class="magick-description">sharpen the image with an unsharp mask operator.</p>
-
-<p>The <a href="command-line-options.html#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>
-
-<dl class="dl-horizontal">
-<dt>radius</dt>
-<dd>The radius of the Gaussian, in pixels,  not counting the center pixel (default 0).</dd>
-<dt>sigma</dt>
-<dd>The standard deviation of the Gaussian, in pixels (default 1.0).</dd>
-<dt>gain</dt>
-<dd>The fraction of the difference between the original and the blur image that is added back into the original (default 1.0).</dd>
-<dt>threshold</dt>
-<dd>The threshold, as a fraction of <var>QuantumRange</var>, needed to apply the difference amount (default 0.05).</dd>
-</dl>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="verbose"></a>-verbose</h3>
-</div>
-
-<p class="magick-description">print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="version"></a>-version</h3>
-</div>
-
-<p class="magick-description">print ImageMagick version string and exit.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="view"></a>-view <var>string</var></h3>
-</div>
-
-<p class="magick-description">FlashPix viewing parameters.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="vignette"></a>-vignette <var>radius</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">soften the edges of the image in vignette style.</p>
-
-<p>The vignette effect rolloff is controlled by radiusxsigma. For nominal rolloff, this would be set to 0xsigma. A value of 0x0 will produce a circle/ellipse with no rolloff. The arguments x and y control the size of the circle. Larger values decrease the radii and smaller values increase the radii. Values of +0+0 will generate a circle/ellipse the same size as the image. The default values for x and y are 10% of the corresponding image dimension. Thus, the radii will be decreased by 10%, i.e., the diameters of the circle/ellipse will be 80% of the corresponding image dimension.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="virtual-pixel"></a>-virtual-pixel <var>method</var></h3>
-</div>
-
-<p class="magick-description">Specify contents of <var>virtual pixels</var>.</p>
-
-<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>
-
-<dl class="dl-horizontal">
-<dt>background</dt><dd>the area surrounding the image is the background color</dd>
-<dt>black</dt><dd>the area surrounding the image is black</dd>
-<dt>checker-tile</dt><dd>alternate squares with image and background color</dd>
-<dt>dither</dt><dd>non-random 32x32 dithered pattern</dd>
-<dt>edge</dt><dd>extend the edge pixel toward infinity</dd>
-<dt>gray</dt><dd>the area surrounding the image is gray</dd>
-<dt>horizontal-tile</dt><dd>horizontally tile the image, background color above/below</dd>
-<dt>horizontal-tile-edge</dt><dd>horizontally tile the image and replicate the side edge pixels</dd>
-<dt>mirror</dt><dd>mirror tile the image</dd>
-<dt>random</dt><dd>choose a random pixel from the image</dd>
-<dt>tile</dt><dd>tile the image (default)</dd>
-<dt>transparent</dt><dd>the area surrounding the image is transparent blackness</dd>
-<dt>vertical-tile</dt><dd>vertically tile the image, sides are background color</dd>
-<dt>vertical-tile-edge</dt><dd>vertically tile the image and replicate the side edge pixels</dd>
-<dt>white</dt><dd>the area surrounding the image is white</dd>
-</dl>
-
-<p>The default value is "edge".</p>
-
-<p>This most important for distortion operators such as <a href="command-line-options.html#distort">-distort</a>, <a href="command-line-options.html#implode">-implode</a>, and <a href="command-line-options.html#fx">-fx</a>.
-However it also effects operations that may access pixels just outside the
-image proper, such as <a href="command-line-options.html#convolve">-convolve</a>, <a href="command-line-options.html#blur">-blur</a>, and <a href="command-line-options.html#sharpen">-sharpen</a>. </p>
-
-<p>To print a complete list of virtual pixel types, use the <a href="command-line-options.html#list">-list virtual-pixel</a> option.</p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="visual"></a>-visual <var>type</var></h3>
-</div>
-
-<p class="magick-description">Animate images using this X visual type.", 'animate', 'display'</p>
-
-<p>Choose from these visual classes:</p>
-
-<pre>
-StaticGray    TrueColor
-GrayScale     DirectColor
-StaticColor   default
-PseudoColor   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;">
-  <h3 class="magick-header"><a id="watermark"></a>-watermark <var>brightness</var>x<var>saturation</var></h3>
-</div>
-
-<p class="magick-description">Watermark an image using the given percentages of brightness and saturation.</p>
-
-<p>Take a grayscale image (with alpha mask) and modify the destination image's
-brightness according to watermark image's grayscale value and the
-<var>brightness</var> percentage.  The destinations color saturation
-attribute is just direct modified by the <var>saturation</var>
-percentage, which defaults to 100 percent (no color change). </p>
-
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="wave"></a>-wave <var>amplitude</var><br>-wave <var>amplitude</var>x<var>wavelength</var></h3>
-</div>
-
-<p class="magick-description">Shear the columns of an image into a sine wave.</p>
-
-<p>Specify <var>amplitude</var> and <var>wavelength</var>
-of the wave.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="weight"></a>-weight <var>fontWeight</var></h3>
-</div>
-
-<p class="magick-description">Set a font weight for text.</p>
-
-<p>This setting suggests a font weight that ImageMagick should try to apply to
-the currently selected font family. Use a positive integer for
-<var>fontWeight</var> or select from the following.</p>
-
-<dl class="dl-horizontal">
-<dt>Thin </dt>
-<dd>Same as <var>fontWeight</var> = 100.</dd>
-<dt>ExtraLight </dt>
-<dd>Same as <var>fontWeight</var> = 200.</dd>
-<dt>Light </dt>
-<dd>Same as <var>fontWeight</var> = 300.</dd>
-<dt>Normal </dt>
-<dd>Same as <var>fontWeight</var> = 400.</dd>
-<dt>Medium </dt>
-<dd>Same as <var>fontWeight</var> = 500.</dd>
-<dt>DemiBold </dt>
-<dd>Same as <var>fontWeight</var> = 600.</dd>
-<dt>Bold </dt>
-<dd>Same as <var>fontWeight</var> = 700.</dd>
-<dt>ExtraBold </dt>
-<dd>Same as <var>fontWeight</var> = 800.</dd>
-<dt>Heavy </dt>
-<dd>Same as <var>fontWeight</var> = 900.</dd>
-</dl>
-<br>
-
-<p>To print a complete list of weight types, use <a href="command-line-options.html#list">-list weight</a>.</p>
-
-<p>For other settings that affect fonts, see the options <a href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line-options.html#style">-style</a>. </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="white-point"></a>-white-point <var>x,y</var></h3>
-</div>
-
-<p class="magick-description">chromaticity white point.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="white-threshold"></a>-white-threshold <var>value</var>{<var>%</var>}</h3>
-</div>
-
-<p class="magick-description">Force to white all pixels above the threshold while leaving all pixels at or below the threshold unchanged.</p>
-
-<p> The threshold value can be given as a percentage or as an absolute integer
-value within [0, <var>QuantumRange</var>] corresponding to the
-desired <a href="command-line-options.html#channel">‑channel</a> value. See <a href="command-line-options.html#threshold">‑threshold</a>for more details on thresholds and resulting values.  </p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="window"></a>-window <var>id</var></h3>
-</div>
-
-<p class="magick-description">Make the image the background of a window.", 'animate', 'display'</p>
-
-<p><var>id</var> can be a window id or name. Specify <code>root</code>
-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
-<code>backdrop</code> or <a href="command-line-options.html#geometry">-resize</a> are specified, the
-image is surrounded by the background color. Refer to <code>X RESOURCES</code>
-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="command-line-options.html#colors">-colors</a> to reduce the number of colors.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="window-group"></a>-window-group</h3>
-</div>
-
-<p class="magick-description">specify the window group.</p>
-
-<div style="margin: auto;">
-  <h3 class="magick-header"><a id="write"></a>-write <var>filename</var></h3>
-</div>
-
-<p class="magick-description">write an image sequence.</p>
-
-<p>The image sequence preceding the <a href="command-line-options.html#write">-write</a> <var>filename</var> 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="command-line-options.html#write">+write</a> <var>filename</var> option.</p>
-
-<p>Use <a href="command-line-options.html#compress">-compress</a> to specify the type of image compression.</p>
-</div>
-</div>
-
-  <footer class="magick-footer">
+<div class="magick-header"><p class="text-center"><a href="command-line-options.html#adaptive-blur">‑adaptive‑blur</a>  • <a href="command-line-options.html#adaptive-resize">‑adaptive‑resize</a>  • <a href="command-line-options.html#adaptive-sharpen">‑adaptive‑sharpen</a>  • <a href="command-line-options.html#adjoin">‑adjoin</a>  • <a href="command-line-options.html#affine">‑affine</a>  • <a href="command-line-options.html#alpha">‑alpha</a>  • <a href="command-line-options.html#annotate">‑annotate</a>  • <a href="command-line-options.html#antialias">‑antialias</a>  • <a href="command-line-options.html#append">‑append</a>  • <a href="command-line-options.html#attenuate">‑attenuate</a>  • <a href="command-line-options.html#authenticate">‑authenticate</a>  • <a href="command-line-options.html#auto-gamma">‑auto‑gamma</a>  • <a href="command-line-options.html#auto-level">‑auto‑level</a>  • <a href="command-line-options.html#auto-orient">‑auto‑orient</a>  • <a href="command-line-options.html#backdrop">‑backdrop</a>  • <a href="command-line-options.html#background">‑background</a>  • <a href="command-line-options.html#bench">‑bench</a>  • <a href="command-line-options.html#bias">‑bias</a>  • <a href="command-line-options.html#black-point-compensation">‑black‑point‑compensation</a>  • <a href="command-line-options.html#black-threshold">‑black‑threshold</a>  • <a href="command-line-options.html#blend">‑blend</a>  • <a href="command-line-options.html#blue-primary">‑blue‑primary</a>  • <a href="command-line-options.html#blue-shift">‑blue‑shift</a>  • <a href="command-line-options.html#blur">‑blur</a>  • <a href="command-line-options.html#border">‑border</a>  • <a href="command-line-options.html#bordercolor">‑bordercolor</a>  • <a href="command-line-options.html#borderwidth">‑borderwidth</a>  • <a href="command-line-options.html#brightness-contrast">‑brightness‑contrast</a>  • <a href="command-line-options.html#cache">‑cache</a>  • <a href="command-line-options.html#canny">‑canny</a>  • <a href="command-line-options.html#caption">‑caption</a>  • <a href="command-line-options.html#cdl">‑cdl</a>  • <a href="command-line-options.html#channel">‑channel</a>  • <a href="command-line-options.html#charcoal">‑charcoal</a>  • <a href="command-line-options.html#chop">‑chop</a>  • <a href="command-line-options.html#clamp">‑clamp</a>  • <a href="command-line-options.html#clip">‑clip</a>  • <a href="command-line-options.html#clip-mask">‑clip‑mask</a>  • <a href="command-line-options.html#clip-path">‑clip‑path</a>  • <a href="command-line-options.html#clone">‑clone</a>  • <a href="command-line-options.html#clut">‑clut</a>  • <a href="command-line-options.html#coalesce">‑coalesce</a>  • <a href="command-line-options.html#colorize">‑colorize</a>  • <a href="command-line-options.html#colormap">‑colormap</a>  • <a href="command-line-options.html#color-matrix">‑color‑matrix</a>  • <a href="command-line-options.html#colors">‑colors</a>  • <a href="command-line-options.html#colorspace">‑colorspace</a>  • <a href="command-line-options.html#combine">‑combine</a>  • <a href="command-line-options.html#comment">‑comment</a>  • <a href="command-line-options.html#compare">‑compare</a>  • <a href="command-line-options.html#complex">‑complex</a>  • <a href="command-line-options.html#compose">‑compose</a>  • <a href="command-line-options.html#composite">‑composite</a>  • <a href="command-line-options.html#compress">‑compress</a>  • <a href="command-line-options.html#connected-components">‑connected‑components</a>  • <a href="command-line-options.html#contrast">‑contrast</a>  • <a href="command-line-options.html#contrast-stretch">‑contrast‑stretch</a>  • <a href="command-line-options.html#convolve">‑convolve</a>  • <a href="command-line-options.html#copy">‑copy</a>  • <a href="command-line-options.html#crop">‑crop</a>  • <a href="command-line-options.html#cycle">‑cycle</a>  • <a href="command-line-options.html#debug">‑debug</a>  • <a href="command-line-options.html#decipher">‑decipher</a>  • <a href="command-line-options.html#deconstruct">‑deconstruct</a>  • <a href="command-line-options.html#define">‑define</a>  • <a href="command-line-options.html#delay">‑delay</a>  • <a href="command-line-options.html#delete">‑delete</a>  • <a href="command-line-options.html#density">‑density</a>  • <a href="command-line-options.html#depth">‑depth</a>  • <a href="command-line-options.html#descend">‑descend</a>  • <a href="command-line-options.html#deskew">‑deskew</a>  • <a href="command-line-options.html#despeckle">‑despeckle</a>  • <a href="command-line-options.html#direction">‑direction</a>  • <a href="command-line-options.html#displace">‑displace</a>  • <a href="command-line-options.html#display">‑display</a>  • <a href="command-line-options.html#dispose">‑dispose</a>  • <a href="command-line-options.html#dissimilarity-threshold">‑dissimilarity‑threshold</a>  • <a href="command-line-options.html#dissolve">‑dissolve</a>  • <a href="command-line-options.html#distort">‑distort</a>  • <a href="command-line-options.html#distribute-cache">‑distribute‑cache</a>  • <a href="command-line-options.html#dither">‑dither</a>  • <a href="command-line-options.html#draw">‑draw</a>  • <a href="command-line-options.html#duplicate">‑duplicate</a>  • <a href="command-line-options.html#edge">‑edge</a>  • <a href="command-line-options.html#emboss">‑emboss</a>  • <a href="command-line-options.html#encipher">‑encipher</a>  • <a href="command-line-options.html#encoding">‑encoding</a>  • <a href="command-line-options.html#endian">‑endian</a>  • <a href="command-line-options.html#enhance">‑enhance</a>  • <a href="command-line-options.html#equalize">‑equalize</a>  • <a href="command-line-options.html#evaluate">‑evaluate</a>  • <a href="command-line-options.html#evaluate-sequence">‑evaluate‑sequence</a>  • <a href="command-line-options.html#extent">‑extent</a>  • <a href="command-line-options.html#extract">‑extract</a>  • <a href="command-line-options.html#family">‑family</a>  • <a href="command-line-options.html#features">‑features</a>  • <a href="command-line-options.html#fft">‑fft</a>  • <a href="command-line-options.html#fill">‑fill</a>  • <a href="command-line-options.html#filter">‑filter</a>  • <a href="command-line-options.html#flatten">‑flatten</a>  • <a href="command-line-options.html#flip">‑flip</a>  • <a href="command-line-options.html#floodfill">‑floodfill</a>  • <a href="command-line-options.html#flop">‑flop</a>  • <a href="command-line-options.html#font">‑font</a>  • <a href="command-line-options.html#foreground">‑foreground</a>  • <a href="command-line-options.html#format">‑format</a>  • <a href="command-line-options.html#format_identify_">‑format[identify]</a>  • <a href="command-line-options.html#frame">‑frame</a>  • <a href="command-line-options.html#frame_import_">‑frame[import]</a>  • <a href="command-line-options.html#function">‑function</a>  • <a href="command-line-options.html#fuzz">‑fuzz</a>  • <a href="command-line-options.html#fx">‑fx</a>  • <a href="command-line-options.html#gamma">‑gamma</a>  • <a href="command-line-options.html#gaussian-blur">‑gaussian‑blur</a>  • <a href="command-line-options.html#geometry">‑geometry</a>  • <a href="command-line-options.html#gravity">‑gravity</a>  • <a href="command-line-options.html#grayscale">‑grayscale</a>  • <a href="command-line-options.html#green-primary">‑green‑primary</a>  • <a href="command-line-options.html#hald-clut">‑hald‑clut</a>  • <a href="command-line-options.html#help">‑help</a>  • <a href="command-line-options.html#highlight-color">‑highlight‑color</a>  • <a href="command-line-options.html#hough-lines">‑hough‑lines</a>  • <a href="command-line-options.html#iconGeometry">‑iconGeometry</a>  • <a href="command-line-options.html#iconic">‑iconic</a>  • <a href="command-line-options.html#identify">‑identify</a>  • <a href="command-line-options.html#ift">‑ift</a>  • <a href="command-line-options.html#immutable">‑immutable</a>  • <a href="command-line-options.html#implode">‑implode</a>  • <a href="command-line-options.html#insert">‑insert</a>  • <a href="command-line-options.html#intensity">‑intensity</a>  • <a href="command-line-options.html#intent">‑intent</a>  • <a href="command-line-options.html#interlace">‑interlace</a>  • <a href="command-line-options.html#interpolate">‑interpolate</a>  • <a href="command-line-options.html#interline-spacing">‑interline‑spacing</a>  • <a href="command-line-options.html#interword-spacing">‑interword‑spacing</a>  • <a href="command-line-options.html#kerning">‑kerning</a>  • <a href="command-line-options.html#kuwahara">‑kuwahara</a>  • <a href="command-line-options.html#label">‑label</a>  • <a href="command-line-options.html#lat">‑lat</a>  • <a href="command-line-options.html#layers">‑layers</a>  • <a href="command-line-options.html#level">‑level</a>  • <a href="command-line-options.html#level-colors">‑level‑colors</a>  • <a href="command-line-options.html#limit">‑limit</a>  • <a href="command-line-options.html#linear-stretch">‑linear‑stretch</a>  • <a href="command-line-options.html#linewidth">‑linewidth</a>  • <a href="command-line-options.html#liquid-rescale">‑liquid‑rescale</a>  • <a href="command-line-options.html#list">‑list</a>  • <a href="command-line-options.html#log">‑log</a>  • <a href="command-line-options.html#loop">‑loop</a>  • <a href="command-line-options.html#lowlight-color">‑lowlight‑color</a>  • <a href="command-line-options.html#magnify">‑magnify</a>  • <a href="command-line-options.html#map">‑map</a>  • <a href="command-line-options.html#map_stream_">‑map[stream]</a>  • <a href="command-line-options.html#mask">‑mask</a>  • <a href="command-line-options.html#mattecolor">‑mattecolor</a>  • <a href="command-line-options.html#median">‑median</a>  • <a href="command-line-options.html#mean-shift">‑mean‑shift</a>  • <a href="command-line-options.html#metric">‑metric</a>  • <a href="command-line-options.html#mode">‑mode</a>  • <a href="command-line-options.html#modulate">‑modulate</a>  • <a href="command-line-options.html#moments">‑moments</a>  • <a href="command-line-options.html#monitor">‑monitor</a>  • <a href="command-line-options.html#monochrome">‑monochrome</a>  • <a href="command-line-options.html#morph">‑morph</a>  • <a href="command-line-options.html#morphology">‑morphology</a>  • <a href="command-line-options.html#mosaic">‑mosaic</a>  • <a href="command-line-options.html#motion-blur">‑motion‑blur</a>  • <a href="command-line-options.html#name">‑name</a>  • <a href="command-line-options.html#negate">‑negate</a>  • <a href="command-line-options.html#noise">‑noise</a>  • <a href="command-line-options.html#normalize">‑normalize</a>  • <a href="command-line-options.html#opaque">‑opaque</a>  • <a href="command-line-options.html#ordered-dither">‑ordered‑dither</a>  • <a href="command-line-options.html#orient">‑orient</a>  • <a href="command-line-options.html#page">‑page</a>  • <a href="command-line-options.html#paint">‑paint</a>  • <a href="command-line-options.html#path">‑path</a>  • <a href="command-line-options.html#pause_animate_">‑pause[animate]</a>  • <a href="command-line-options.html#pause_import_">‑pause[import]</a>  • <a href="command-line-options.html#perceptible">‑perceptible</a>  • <a href="command-line-options.html#ping">‑ping</a>  • <a href="command-line-options.html#pointsize">‑pointsize</a>  • <a href="command-line-options.html#polaroid">‑polaroid</a>  • <a href="command-line-options.html#poly">‑poly</a>  • <a href="command-line-options.html#posterize">‑posterize</a>  • <a href="command-line-options.html#precision">‑precision</a>  • <a href="command-line-options.html#preview">‑preview</a>  • <a href="command-line-options.html#print">‑print</a>  • <a href="command-line-options.html#process">‑process</a>  • <a href="command-line-options.html#profile">‑profile</a>  • <a href="command-line-options.html#quality">‑quality</a>  • <a href="command-line-options.html#quantize">‑quantize</a>  • <a href="command-line-options.html#quiet">‑quiet</a>  • <a href="command-line-options.html#radial-blur">‑radial‑blur</a>  • <a href="command-line-options.html#raise">‑raise</a>  • <a href="command-line-options.html#random-threshold">‑random‑threshold</a>  • <a href="command-line-options.html#red-primary">‑red‑primary</a>  • <a href="command-line-options.html#regard-warnings">‑regard‑warnings</a>  • <a href="command-line-options.html#region">‑region</a>  • <a href="command-line-options.html#remap">‑remap</a>  • <a href="command-line-options.html#remote">‑remote</a>  • <a href="command-line-options.html#render">‑render</a>  • <a href="command-line-options.html#repage">‑repage</a>  • <a href="command-line-options.html#resample">‑resample</a>  • <a href="command-line-options.html#resize">‑resize</a>  • <a href="command-line-options.html#respect-parentheses">‑respect‑parentheses</a>  • <a href="command-line-options.html#reverse">‑reverse</a>  • <a href="command-line-options.html#roll">‑roll</a>  • <a href="command-line-options.html#rotate">‑rotate</a>  • <a href="command-line-options.html#sample">‑sample</a>  • <a href="command-line-options.html#sampling-factor">‑sampling‑factor</a>  • <a href="command-line-options.html#scale">‑scale</a>  • <a href="command-line-options.html#scene">‑scene</a>  • <a href="command-line-options.html#screen">‑screen</a>  • <a href="command-line-options.html#seed">‑seed</a>  • <a href="command-line-options.html#segment">‑segment</a>  • <a href="command-line-options.html#selective-blur">‑selective‑blur</a>  • <a href="command-line-options.html#separate">‑separate</a>  • <a href="command-line-options.html#sepia-tone">‑sepia‑tone</a>  • <a href="command-line-options.html#set">‑set</a>  • <a href="command-line-options.html#shade">‑shade</a>  • <a href="command-line-options.html#shadow">‑shadow</a>  • <a href="command-line-options.html#shared-memory">‑shared‑memory</a>  • <a href="command-line-options.html#sharpen">‑sharpen</a>  • <a href="command-line-options.html#shave">‑shave</a>  • <a href="command-line-options.html#shear">‑shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">‑sigmoidal‑contrast</a>  • <a href="command-line-options.html#silent">‑silent</a>  • <a href="command-line-options.html#similarity-threshold">‑similarity‑threshold</a>  • <a href="command-line-options.html#size">‑size</a>  • <a href="command-line-options.html#sketch">‑sketch</a>  • <a href="command-line-options.html#smush">‑smush</a>  • <a href="command-line-options.html#snaps">‑snaps</a>  • <a href="command-line-options.html#solarize">‑solarize</a>  • <a href="command-line-options.html#sparse-color">‑sparse‑color</a>  • <a href="command-line-options.html#splice">‑splice</a>  • <a href="command-line-options.html#spread">‑spread</a>  • <a href="command-line-options.html#statistic">‑statistic</a>  • <a href="command-line-options.html#stegano">‑stegano</a>  • <a href="command-line-options.html#stereo">‑stereo</a>  • <a href="command-line-options.html#storage-type">‑storage‑type</a>  • <a href="command-line-options.html#stretch">‑stretch</a>  • <a href="command-line-options.html#strip">‑strip</a>  • <a href="command-line-options.html#stroke">‑stroke</a>  • <a href="command-line-options.html#strokewidth">‑strokewidth</a>  • <a href="command-line-options.html#style">‑style</a>  • <a href="command-line-options.html#subimage-search">‑subimage‑search</a>  • <a href="command-line-options.html#swap">‑swap</a>  • <a href="command-line-options.html#swirl">‑swirl</a>  • <a href="command-line-options.html#synchronize">‑synchronize</a>  • <a href="command-line-options.html#taint">‑taint</a>  • <a href="command-line-options.html#text-font">‑text‑font</a>  • <a href="command-line-options.html#texture">‑texture</a>  • <a href="command-line-options.html#threshold">‑threshold</a>  • <a href="command-line-options.html#thumbnail">‑thumbnail</a>  • <a href="command-line-options.html#tile">‑tile</a>  • <a href="command-line-options.html#tile-offset">‑tile‑offset</a>  • <a href="command-line-options.html#tint">‑tint</a>  • <a href="command-line-options.html#title">‑title</a>  • <a href="command-line-options.html#transform">‑transform</a>  • <a href="command-line-options.html#transparent">‑transparent</a>  • <a href="command-line-options.html#transparent-color">‑transparent‑color</a>  • <a href="command-line-options.html#transpose">‑transpose</a>  • <a href="command-line-options.html#transverse">‑transverse</a>  • <a href="command-line-options.html#treedepth">‑treedepth</a>  • <a href="command-line-options.html#trim">‑trim</a>  • <a href="command-line-options.html#type">‑type</a>  • <a href="command-line-options.html#undercolor">‑undercolor</a>  • <a href="command-line-options.html#unique-colors">‑unique‑colors</a>  • <a href="command-line-options.html#units">‑units</a>  • <a href="command-line-options.html#unsharp">‑unsharp</a>  • <a href="command-line-options.html#update">‑update</a>  • <a href="command-line-options.html#verbose">‑verbose</a>  • <a href="command-line-options.html#version">‑version</a>  • <a href="command-line-options.html#view">‑view</a>  • <a href="command-line-options.html#vignette">‑vignette</a>  • <a href="command-line-options.html#virtual-pixel">‑virtual‑pixel</a>  • <a href="command-line-options.html#visual">‑visual</a>  • <a href="command-line-options.html#watermark">‑watermark</a>  • <a href="command-line-options.html#wave">‑wave</a>  • <a href="command-line-options.html#weight">‑weight</a>  • <a href="command-line-options.html#white-point">‑white‑point</a>  • <a href="command-line-options.html#white-threshold">‑white‑threshold</a>  • <a href="command-line-options.html#window">‑window</a>  • <a href="command-line-options.html#window-group">‑window‑group</a>  • <a href="command-line-options.html#write">‑write</a>  </p><p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="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="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="adaptive-blur"></a>-adaptive-blur <var>radius</var>[x<var>sigma</var>]</h3></div><p class="magick-description">Adaptively blur pixels, with decreasing effect near edges.</p><p>A Gaussian operator of the given radius and standard deviation (<var>sigma</var>) is used. If <var>sigma</var> is not given itdefaults to 1.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="adaptive-resize"></a>-adaptive-resize <var>geometry</var></h3></div><p class="magick-description">Resize the image using data-dependent triangulation.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <a href="command-line-options.html#adaptive-resize">-adaptive-resize</a>option defaults to data-dependent triangulation.  Use the <ahref>-filter to choose a different resampling algorithm.Offsets, if present in the geometry string, are ignored, and the <ahref>-gravity option has no effect.</ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="adaptive-sharpen"></a>-adaptive-sharpen <var>radius</var>[x<var>sigma</var>]</h3></div><p class="magick-description">Adaptively sharpen pixels, with increasing effect near edges.</p><p>A Gaussian operator of the given radius and standard deviation(<var>sigma</var>) is used. If <var>sigma</var> is not given itdefaults to 1.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="adjoin"></a>-adjoin</h3></div><p class="magick-description">Join images into a single multi-image file.</p><p>This option is enabled by default. An attempt is made to save all images ofan image sequence into the given output file.  However, some formats, such asJPEG and PNG, do not support more than one image per file, and in that caseImageMagick is forced to write each image as a separate file.  As such, ifmore than one image needs to be written, the filename given is modified byadding a <a href="command-line-options.html#scene">-scene</a> number before the suffix, in order tomake distinct names for each image. </p><p>Use <a href="command-line-options.html#adjoin">+adjoin</a> to force each image to be written toseparate 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 willautomagically enable <a href="command-line-options.html#adjoin">+adjoin</a> and are used to specifywhere the <a href="command-line-options.html#scene">-scene</a> number is placed in the filenames. Thesestrings, such as '<code>%d</code>' or '<code>%03d</code>', are familiar to thosewho have used the standard <code>printf()</code>' C-library function. As anexample, the command</p><pre>convert logo: rose: -morph 15 my%02dmorph.jpg</pre><p>will create a sequence of 17 images (the two given plus 15 more created by<a href="command-line-options.html#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 willsave to multiple files, if any of the following conditions exist...</p><ol><li>the output image's file format does not allow multi-image files,</li><li>the <a href="command-line-options.html#adjoin">+adjoin</a> option is given, or</li><li>a printf() integer format string (eg: "%d") is present in the output filename.</li></ol><div style="margin: auto;">  <h3 class="magick-header"><a id="affine"></a>-affine  <var>s<sub>x</sub></var>,<var>r<sub>x</sub></var>,<var>r<sub>y</sub></var>,<var>s<sub>y</sub></var>[,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var>]</h3></div><p class="magick-description">Set the drawing transformation matrix for combined rotating and scaling.</p><p>This option sets a transformation matrix, for use by subsequent <ahref>-draw or <a href="command-line-options.html#transform">-transform</a> options. </ahref></p><p>The matrix entries are entered as comma-separated numeric values either inquotes or without spaces. </p><p>Internally, the transformation matrix has 3x3 elements, but three of themare omitted from the input because they are constant. The new (transformed)coordinates (<var>x'</var>, <var>y'</var>) of a pixel atposition (<var>x</var>, <var>y</var>) in the originalimage are calculated using the following matrix equation.</p><p class="text-center"><img class="img-thumbnail" alt="affine transformation" src="../images/affine.png"> </p><p> The size of the resulting image is that of the smallest rectangle thatcontains the transformed source image.  The parameters <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var>subsequently shift the image pixels so that those that are moved out of theimage area are cut off.</p><p>The transformation matrix complies with the left-handed pixel coordinatesystem: positive <var>x</var> and <var>y</var> directionsare rightward and downward, resp.; positive rotation is clockwise.</p><p> If the translation coefficients <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are omitted they default to 0,0. Therefore,four parameters suffice for rotation and scaling without translation.</p><p>Scaling by the factors <var>s<sub>x</sub></var> and <var>s<sub>y</sub></var> in the <var>x</var> and <var>y</var> directions,respectively, is accomplished with the following.</p><p>See <a href="command-line-options.html#transform">-transform</a>, and the <ahref>-distort method '<code>Affineprojection</code> for moreinformation </ahref></p><pre>-affine <var>s<sub>x</sub></var>,0,0,<var>s<sub>y</sub></var></pre><p>Translation by a displacement (<var>t<sub>x</sub></var>, <var>t<sub>y</sub></var>) is accomplished like so:</p><pre>-affine 1,0,0,1,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var></pre><p>Rotate clockwise about the origin (the upper left-hand corner) by an angle<var>a</var> by letting <var>c</var> = cos(<var>a</var>), <var>s</var>= sin(<var>a</var>), and using the following.</p><pre>-affine <var>c</var>,<var>s</var>,-<var>s</var>,<var>c</var></pre><p>The cumulative effect of a sequence of <a href="command-line-options.html#affine">-affine</a>transformations can be accomplished by instead by a single <a href="command-line-options.html#affine">-affine</a> operation using the matrix equal to the product of the matricesof the individual transformations.</p><p>An attempt is made to detect near-singular transformation matrices. If thematrix determinant has a sufficiently small absolute value it is rejected.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="alpha"></a>-alpha <var>type</var></h3></div><p class="magick-description">Gives control of the alpha/matte channel of an image.</p><p>Used to set a flag on an image indicating whether or not to use existing alphachannel data, to create an alpha channel, or to perform other operations on the alpha channel.  Choose the argument <var>type</var> from the list below.</p><dl class="dl-horizontal">    <dt>Activate</dt>    <dd>       Enable the image's transparency channel. Note normally Set       should be used instead of this, unless you specifically need to       preserve existing (but specifically turned Off) transparency       channel. </dd>    <dt>Associate</dt>    <dd>       associate the alpha channel with the image.</dd>    <dt>Deactivate</dt>    <dd>       Disables the image's transparency channel. Does not delete or change the       existing data, just turns off the use of that data.</dd>    <dt>Disassociate</dt>    <dd>       disassociate the alpha channel from the image.</dd>    <dt>Set</dt>    <dd>       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.</dd>    <dt>Opaque</dt>    <dd>       Enables the alpha/matte channel and forces it to be fully opaque.       </dd>    <dt>Transparent</dt>    <dd>       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. </dd>    <dt>Extract</dt>    <dd>       Copies the alpha channel values into all the color channels and turns       'Off' 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 'Copy'.       </dd>    <dt>Copy</dt>    <dd>       Turns 'On' 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.  </dd>    <dt>Shape</dt>    <dd>       As per 'Copy' but also colors the resulting shape mask with       the current background color.  That is the RGB color channels is       replaced, with appropriate alpha shape.       </dd>    <dt>Remove</dt>    <dd>       Composite the image over the background color.       </dd>    <dt>Background</dt>    <dd>       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.       </dd></dl><p>Note that while the obsolete <code>+matte</code> operation was thesame as "<code><a href="command-line-options.html#alpha">-alpha</a> Off</code>", the <code>&gt;-matte</code> operation was the same as "<code><a href="command-line-options.html#alpha">-alpha</a>Set</code>" and not "<code><a href="command-line-options.html#alpha">-alpha</a> On</code>".  </p><div style="margin: auto;"> <h3 class="magick-header"><a id="annotate"></a> -annotate <var>degrees</var> <var>text</var><br> -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br> -annotate <var>Xdegrees</var>x<var>Ydegrees</var> {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3></div><p class="magick-description">Annotate an image with text</p><p>This is a convenience for annotating an image with text. For more precisecontrol over text annotations, use <a href="command-line-options.html#draw">-draw</a>.</p><p>The values <var>Xdegrees</var> and <var>Ydegrees</var>control the shears applied to the text, while <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are offsets that give the location of the text relative any <a href="command-line-options.html#gravity">-gravity</a> setting and defaults to the upper left corner of the image.</p><p>Using <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>or <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>x<var>degrees</var> produces an unsheared rotation of the text. Thedirection of the rotation is positive, which means a clockwise rotation if <var>degrees</var> is positive. (This conforms to the usual mathematicalconvention once it is realized that the positive <var>y</var>–direction isconventionally considered to be <var>downward</var> for images.)</p><p>The new (transformed) coordinates (<var>x'</var>, <var>y'</var>) of a pixel at position (<var>x</var>, <var>y</var>) in the image are calculated using the following matrixequation.</p><p class="text-center"><img class="img-thumbnail" alt="annotate transformation" src="../images/annotate.png"></p><p>If <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are omitted, they default to 0. This makes thebottom-left of the text becomes the upper-left corner of the image, which isprobably undesirable. Adding a <a href="command-line-options.html#gravity">-gravity</a> option in thiscase leads to nice results.</p><p>Text is any UTF-8 encoded character sequence.  If <var>text</var>is of the form '@mytext.txt', the text is read from the file<code>mytext.txt</code>.  Text  in a file is taken literally; no embeddedformatting characters are recognized.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="antialias"></a>-antialias</h3></div><p class="magick-description">Enable/Disable of the rendering of anti-aliasing pixels when drawing fonts and lines.</p><p>By default, objects (e.g. text, lines, polygons, etc.) are antialiased whendrawn.  Use <a href="command-line-options.html#antialias">+antialias</a> to disable the addition ofantialiasing edge pixels.  This will then reduce the number of colors added toan image to just the colors being directly drawn.  That is, no mixed colorsare added when drawing such objects. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="append"></a>-append</h3></div><p class="magick-description">Join current images vertically or horizontally.</p><p>This option creates a single longer image, by joining all the currentimages in sequence top-to-bottom. Use <a href="command-line-options.html#append">+append</a> tostack images left-to-right. </p><p>If they are not of the same width, narrower images are padded with thecurrent <a href="command-line-options.html#background">-background</a> color setting, and theirposition relative to each other can be controlled by the current <ahref>-gravity setting. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="attenuate"></a>-attenuate <var>value</var></h3></div><p class="magick-description">Lessen (or intensify) when adding noise to an image.</p><p>If unset the value is equivalent to 1.0, or a maximum noise addition</p><div style="margin: auto;">  <h3 class="magick-header"><a id="authenticate"></a>-authenticate <var>password</var></h3></div><p class="magick-description">Decrypt a PDF with a password.</p><p>Use this option to supply a <var>password</var> for decryptinga PDF that has been encrypted using Microsoft Crypto API (MSC API). Theencrypting using the MSC API is not supported.</p><p>For a different encryption method, see <a href="command-line-options.html#encipher">-encipher</a>and <a href="command-line-options.html#decipher">-decipher</a>. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="auto-gamma"></a>-auto-gamma</h3></div><p class="magick-description">Automagically adjust gamma level of image.</p><p>This calculates the mean values of an image, then applies a calculated  <ahref>-gamma adjustment so that is the mean color exists in theimage it will get a have a value of 50%. </ahref></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 andlight areas, but tend to fail for images with large amounts of bright sky ordark shadows. It also does not work well for diagrams or cartoon like images.</p><p>It uses the <a href="command-line-options.html#channel">-channel</a> setting, (including the'<var>sync</var>' flag for channel synchronization), to determine which colorvalues is used and modified. As the default <a href="command-line-options.html#channel">-channel</a> setting is '<var>RGB,sync</var>', channels are modifiedtogether by the same gamma value, preserving colors. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="auto-level"></a>-auto-level</h3></div><p class="magick-description">Automagically adjust color levels of image.</p><p>This is a 'perfect' image normalization operator.  It finds the exactminimum and maximum color values in the image and then applies a <ahref>-level operator to stretch the values to the full range ofvalues. </ahref></p><p>The operator is not typically used for real-life images, image scans, orJPEG format images, as a single 'out-rider' pixel can set a bad min/max valuesfor the <a href="command-line-options.html#level">-level</a> operation.  On the other hand it is theright operator to use for color stretching gradient images being used togenerate Color lookup tables, distortion maps, or other 'mathematically'defined images.  </p><p>The operator is very similar to the <a href="command-line-options.html#normalize">-normalize</a>, <ahref>-contrast-stretch, and <a href="command-line-options.html#linear-stretch">-linear-stretch</a> operators, but without 'histogram binning' or 'clipping'problems that these operators may have. That is <a href="command-line-options.html#auto-level">-auto-level</a> is the perfect or ideal version these operators. </ahref></p><p>It uses the <a href="command-line-options.html#channel">-channel</a> setting, (including thespecial '<var>sync</var>' flag for channel synchronization), to determinewhich color values are used and modified. As the default <ahref>+channel setting is '<var>RGB,sync</var>', the'<var>sync</var>' ensures that the color channels will are modifiedtogether by the same gamma value, preserving colors, and ignoringtransparency. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="auto-orient"></a>-auto-orient</h3></div><p class="magick-description">adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p><p>This operator reads and resets the EXIF image profile setting 'Orientation'and then performs the appropriate 90 degree rotation on the image to orientthe image, for correct viewing. </p><p>This EXIF profile setting is usually set using a gravity sensor in digitalcamera, however photos taken directly downward or upward may not have anappropriate value.  Also images that have been orientation 'corrected' withoutreseting this setting, may be 'corrected' again resulting in a incorrectresult.  If the EXIF profile was previously stripped, the  <ahref>-auto-orient operator will do nothing. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="average"></a>-average</h3></div><p class="magick-description">Average a set of images.</p><p>An error results if the images are not identically sized.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="backdrop"></a>-backdrop</h3></div><p class="magick-description">Display the image centered on a backdrop.</p><p>This backdrop covers the entire workstation screen and is useful for hidingother X window activity while viewing the image. The color of the backdrop isspecified as the background color. The color is specified using the formatdescribed under the <a href="command-line-options.html#fill">-fill</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="background"></a>-background <var>color</var></h3></div><p class="magick-description">Set the background color.</p><p>The color is specified using the format described under the <ahref>-fill option. The default background color (if none isspecified or found in the image) is white.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="bench"></a>-bench <var>iterations</var></h3></div><p class="magick-description">Measure performance.</p><p>Repeat the entire command for the given number of <var>iterations</var> 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 -concurrentto run the benchmark in parallel (requires the OpenMP feature).</p><pre>-&gt; convert logo: -resize 1000% -bench 5 logo.pngPerformance[4]: 5i 0.875657ips 6.880u 0:05.710</pre><p>In this example, 5 iterations were completed at 0.875657 iterations persecond, using 4 threads and 6.88 seconds of the user's allotted time, fora total elapsed time of 5.71 seconds.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="bias"></a>-bias <var>value</var>{<var>%</var>}</h3></div><p class="magick-description">Add bias when convolving an image.</p><p>This option shifts the output of <a href="command-line-options.html#convolve">‑convolve</a>  so thatpositive and negative results are relative to the specified bias value. </p><p>This is important for non-HDRI compilations of ImageMagick when dealingwith convolutions that contain negative as well as positive values. This isespecially the case with convolutions involving high pass filters or edgedetection. Without an output bias, the negative values are clipped atzero.</p><p>When using an ImageMagick with the HDRI compile-time setting, <a href="command-line-options.html#bias">‑bias</a> is not needed, as ImageMagick is able to store/handle anynegative results without clipping to the color value range(0..QuantumRange).</p><p>See the discussion on HDRI implementations of ImageMagick on the page <ahref>High Dynamic-Range Images. For moreabout HDRI go the ImageMagick <ahref>Usage pages or this<ahref>Wikipediaentry.  </ahref></ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="black-point-compensation"></a>-black-point-compensation</h3></div><p class="magick-description">Use black point compensation.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="black-threshold"></a>-black-threshold <var>value</var>{<var>%</var>}</h3></div><p class="magick-description">Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.</p><p> The threshold value can be given as a percentage or as an absolute integervalue within [0, <var>QuantumRange</var>] corresponding to thedesired <a href="command-line-options.html#channel">‑channel</a> value. See <a href="command-line-options.html#threshold">‑threshold</a>for more details on thresholds and resulting values.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="blend"></a>-blend <var>geometry</var></h3></div><p class="magick-description">blend an image into another by the given absolute value or percent.</p><p>Blend will average the images together ('plus') according to thepercentages given and each pixels transparency.  If only a single percentagevalue is given it sets the weight of the composite or 'source' image, whilethe background image is weighted by the exact opposite amount. That is a<code>-blend 30%</code> merges 30% of the 'source' image with 70% of the'destination' image.  Thus it is equivalent to <code>-blend 30x70%</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="blue-primary"></a>-blue-primary <var>x</var>,<var>y</var></h3></div><p class="magick-description">Set the blue chromaticity primary point.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="blue-shift"></a>-blue-shift <var>factor</var></h3></div><p class="magick-description">simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5</p><div style="margin: auto;"><div style="margin: auto;">  <h3 class="magick-header"><a id="blur"></a>-blur <var>radius</var><br>-blur <var>radius</var>x<var>sigma</var></h3></div><p class="magick-description">Reduce image noise and reduce detail levels.</p><p>Convolve the image with a Gaussian or normal distribution using the given<var>Sigma</var> value.  The formula is:</p><p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"></p><p>The <var>Sigma</var> value is the important argument, anddetermines the actual amount of blurring that will take place. </p><p>The <var>Radius</var> is only used to determine the size of thearray which will hold the calculated Gaussian distribution. It should be aninteger.  If not given, or set to zero, IM will calculate the largest possibleradius that will provide meaningful results for the Gaussian distribution.</p><p>The larger the <var>Radius</var> the slower theoperation is. However too small a <var>Radius</var>, and severaliasing effects may result.  As a guideline, <var>Radius</var>should be at least twice the <var>Sigma</var> value, though threetimes will produce a more accurate result. </p><p>This option differs from <a href="command-line-options.html#gaussian-blur">-gaussian-blur</a> simplyby taking advantage of the separability properties of the distribution.  Herewe apply a single-dimensional Gaussian matrix in the horizontal direction,then repeat the process in the vertical direction.</p><p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine howpixels which are outside the image proper are blurred into the final result.</p><div style="margin: auto;">  <h3 class="magick-header">-blur <var>Width</var>[x<var>Height</var>[+<var>Angle</var>]]</h3></div><p class="magick-description">Variably blur an image according to the overlay mapping.</p><p>Each pixel in the overlaid region is replaced with an Elliptical WeightedAverage (EWA) of the source image, scaled according to the grayscalemapping. </p><p>The ellipse is weighted with sigma set to the given <var>Width</var> and <var>Height</var>. The <var>Height</var>defaults to the <var>Width</var> for a normal circular Gaussianweighting.  The <var>Angle</var> will rotate the ellipse fromhorizontal clock-wise.  </p><p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine howpixels which are outside the image proper are blurred into the final result.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="border"></a>-border <var>geometry</var></h3></div><p class="magick-description">Surround the image with a border of color. </p><p>Set the width and height using the <var>size</var> portion of the<var>geometry</var> argument.  See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets areignored. </p><p>As of IM 6.7.8-8, the <var>geometry</var> arguments behave as follows:</p><dl class="dl-horizontal"><dt><var>value</var></dt><dd>value is added to both left/right and top/bottom</dd><dt><var>value-x</var><kbd>x</kbd></dt><dd>value-x is added only to left/right and top/bottom are unchanged</dd><dt><kbd>x</kbd><var>value-y</var></dt><dd>value-y is added only to top/bottom and left/right are unchanged</dd><dt><var>value-x</var><kbd>x</kbd><var>value-y</var></dt><dd>value-x is added to left/right and value-y added to top/bottom</dd><dt><var>value-x</var><kbd>x</kbd>0</dt><dd>value-x is added only to left/right and top/bottom are unchanged</dd><dt>0<kbd>x</kbd><var>value-y</var></dt><dd>value-y is added only to top/bottom and left/right are unchanged</dd><dt><var>value</var>%</dt><dd>value % of width is added to left/right and value % of height is added to top/bottom</dd><dt><var>value-x</var><kbd>x</kbd>%</dt><dd>value-x % of width is added to left/right and to top/bottom</dd><dt>x<var>value-y</var>%</dt><dd>value-y % of height is added to top/bottom and to left/right</dd><dt><var>value-x</var>%<kbd>x</kbd><var>value-y</var>%</dt><dd>value-x % of width is added to left/right and value-y % of height is added to top/bottom</dd><dt><var>value-x</var>%<kbd>x</kbd>0%</dt><dd>value-x % of width is added to left/right and top/bottom are unchanged</dd><dt>0%<kbd>x</kbd><var>value-y</var>%</dt><dd>value-y % of height is added to top/bottom and left/right are unchanged</dd></dl><p>Set the border color by preceding with the <ahref>-bordercolor setting.</ahref></p><p>The <a href="command-line-options.html#border">-border</a> operation is affected by the current <ahref>-compose setting and assumes that this is using the default'<code>Over</code>' composition method.  It generates an image of the appropriatesize colors by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> beforeoverlaying the original image in the center of this net image.  This means thatwith the default compose method of '<code>Over</code>' any transparent parts maybe replaced by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting.</ahref></p><p>See also the <a href="command-line-options.html#frame">-frame</a> option, which has morefunctionality.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="bordercolor"></a>-bordercolor <var>color</var></h3></div><p class="magick-description">Set the border color.</p><p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p><p>The default border color is <code>#DFDFDF</code>, <span style="background-color: #dfdfdf;">this shade of gray</span>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="borderwidth"></a>-borderwidth <var>geometry</var> </h3></div><p class="magick-description">Set the border width.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="brightness-contrast"></a>-brightness-contrast <var>brightness</var><br>-brightness-contrast <var>brightness</var>{x<var>contrast</var>}{<var>%</var>}}</h3></div><p class="magick-description">Adjust the brightness and/or contrast of the image.</p><p>Brightness and Contrast values apply changes to the input image. They arenot 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 thebrightness 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="command-line-options.html#fill">-channel</a> to control which channels toapply the brightness and/or contrast change. The default is to apply the sametransformation to all channels.</p><p>Brightness and Contrast arguments are converted to offset and slope of alinear transform and appliedusing <a href="command-line-options.html#fill">-function polynomial "slope,offset"</a>.</p><p>The slope varies from 0 at contrast=-100 to almost vertical atcontrast=+100. For brightness=0 and contrast=-100, the result are totallymidgray. For brightness=0 and contrast=+100, the result will approach butnot quite reach a threshold at midgray; that is the linear transformationis a very steep vertical line at mid gray.</p><p>Negative slopes, i.e. negating the image, are not possible with thisfunction. 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.5at brightness=+100. Thus, when contrast=0 and brightness=100, the result istotally white. Similarly, when contrast=0 and brightness=-100, the result istotally 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;">  <h3 class="magick-header"><a id="cache"></a>-cache <var>threshold</var></h3></div><p class="magick-description">(This option has been replaced by the <a href="command-line-options.html#limit">-limit</a> option).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="canny"></a>-canny <var>radius</var><br>-canny <var>radius</var>x<var>sigma</var>{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3></div><p class="magick-description">Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.</p><p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>x<var>sigma</var> controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="caption"></a>-caption <var>string</var></h3></div><p class="magick-description">Assign a caption to an image.</p><p>This option sets the caption meta-data of an image read in after thisoption has been given.  To modify a caption of images already in memory use"<code><a href="command-line-options.html#set">-set</a> caption</code>". </p><p>The caption can contain special format characters listed in the <ahref>Format andPrint Image Properties. These attributes are expanded when the captionis finally assigned to the individual images. </ahref></p><p>If the first character of <var>string</var> is <var>@</var>, the image caption is read from a file titled by theremaining characters in the string.  Comments read in from a file are literal;no embedded formatting characters are recognized.</p><p>Caption meta-data is not visible on the image itself. To do that use the<a href="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> optionsinstead.</p><p>For example,</p><pre>-caption "%m:%f %wx%h"  bird.miff</pre><p>produces an image caption of <code>MIFF:bird.miff 512x480</code> (assumingthat the image <code>bird.miff</code> has a width of 512 and a height of480.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="cdl"></a>-cdl <var>filename</var></h3></div><p class="magick-description">color correct with a color decision list.</p><p>Here is an example color correction collection:</p><pre>&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;">  <h3 class="magick-header"><a id="channel"></a>-channel <var>type</var></h3></div><p class="magick-description">Specify those image color channels to which subsequent operators are limited.</p><p>Choose from: <code>Red</code>, <code>Green</code>, <code>Blue</code>,<code>Alpha</code>, <code>Gray</code>, <code>Cyan</code>, <code>Magenta</code>,<code>Yellow</code>, <code>Black</code>, <code>Opacity</code>,<code>Index</code>, <code>RGB</code>, <code>RGBA</code>, <code>CMYK</code>, or<code>CMYKA</code>.</p><p>The channels above can also be specified as a comma-separated list or can beabbreviated as a concatenation of the letters '<code>R</code>', '<code>G</code>','<code>B</code>', '<code>A</code>', '<code>O</code>', '<code>C</code>','<code>M</code>', '<code>Y</code>', '<code>K</code>'.For example, to only select the <code>Red</code> and <code>Blue</code> channelsyou can either use </p><pre>-channel Red,Blue</pre><p>or you can use the short hand form</p><pre>-channel RB</pre><p>All the channels that are present in an image can be specified using thespecial channel type <code>All</code>. 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 an extra flag can be specified,'<code>Sync</code>'.  This is turned on by default and if set means thatoperators that understand this flag should perform: cross-channelsynchronization of the channels. If not specified, then most grey-scaleoperators will apply their image processing operations to each individualchannel (as specified by the rest of the <a href="command-line-options.html#channel">-channel</a>setting) completely independently from each other. </p><p>For example for operators such as <a href="command-line-options.html#auto-level">-auto-level</a> and<a href="command-line-options.html#auto-gamma">-auto-gamma</a> the color channels are modifiedtogether in exactly the same way so that colors will remain in-sync. Withoutit being set, then each channel is modified separately andindependently, which may produce color distortion. </p><p>The <a href="command-line-options.html#morphology">-morphology</a> '<code>Convolve</code>' methodand the <a href="command-line-options.html#compose">-compose</a> mathematical methods, also understandsthe '<code>Sync</code>' flag to modify the behavior of pixel colors accordingto the alpha channel (if present). That is to say it will modify the imageprocessing with the understanding that fully-transparent colors should notcontribute to the final result. </p><p>Basically, by default, operators work with color channels in synchronous, andtreats transparency as special, unless the <a href="command-line-options.html#channel">-channel</a>setting is modified so as to remove the effect of the '<code>Sync</code>' 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="command-line-options.html#list">-listchannel</a>.</p><p>By default, ImageMagick sets <a href="command-line-options.html#channel">-channel</a> to the value'<code>RGBK,sync</code>', which specifies that operators act on all colorchannels except the transparency channel, and that all the color channels areto be modified in exactly the same way, with an understanding of transparency(depending on the operation being applied).  The 'plus' form <ahref>+channel will reset the value back to this default. </ahref></p><p>Options that are affected by the <a href="command-line-options.html#channel">-channel</a> settinginclude the following.<a href="command-line-options.html#auto-gamma">-auto-gamma</a>,<a href="command-line-options.html#auto-level">-auto-level</a>,<a href="command-line-options.html#black-threshold">-black-threshold</a>,<a href="command-line-options.html#blur">-blur</a>,<a href="command-line-options.html#clamp">-clamp</a>,<a href="command-line-options.html#clut">-clut</a>,<a href="command-line-options.html#combine">-combine</a>,<a href="command-line-options.html#composite">-composite</a> (Mathematical compose methods only),<a href="command-line-options.html#convolve">-convolve</a>,<a href="command-line-options.html#contrast-stretch">-contrast-stretch</a>,<a href="command-line-options.html#evaluate">-evaluate</a>,<a href="command-line-options.html#function">-function</a>,<a href="command-line-options.html#fx">-fx</a>,<a href="command-line-options.html#gaussian-blur">-gaussian-blur</a>,<a href="command-line-options.html#hald-clut">-hald-clut</a>,<a href="command-line-options.html#motion-blur">-motion-blur</a>,<a href="command-line-options.html#morphology">-morphology</a>,<a href="command-line-options.html#negate">-negate</a>,<a href="command-line-options.html#normalize">-normalize</a>,<a href="command-line-options.html#ordered-dither">-ordered-dither</a>,<a href="command-line-options.html#radial-blur">-radial-blur</a>,<a href="command-line-options.html#random-threshold">-random-threshold</a>,<a href="command-line-options.html#separate">-separate</a>,<a href="command-line-options.html#threshold">-threshold</a>, and<a href="command-line-options.html#white-threshold">-white-threshold</a>.</p><p>Warning, some operators behave differently when the <a href="command-line-options.html#channel">+channel</a> default setting is in effect, verses ANY user defined <ahref>-channel setting (including the equivalent of thedefault). These operators have yet to be made to understand the newer 'Sync'flag. </ahref></p><p>For example <a href="command-line-options.html#threshold">-threshold</a> will by default gray-scalethe image before thresholding, if no <a href="command-line-options.html#channel">-channel</a> settinghas been defined. This is not 'Sync flag controlled, yet. </p><p>Also some operators such as <a href="command-line-options.html#blur">-blur</a>, <ahref>-gaussian-blur, will modify their handling of thecolor channels if the '<code>alpha</code>' channel is also enabled by <ahref>-channel.  Generally this done to ensure thatfully-transparent colors are treated as being fully-transparent, and thus anyunderlying 'hidden' color has no effect on the final results.  Typicallyresulting in 'halo' effects. The newer <a href="command-line-options.html#morphology">-morphology</a>convolution equivalents however does have a understanding of the 'Sync' flagand will thus handle transparency correctly by default. </ahref></ahref></p><p>As a alpha channel is optional within images, some operators will read thecolor channels of an image as a greyscale alpha mask, when the image has noalpha channel present, and the <a href="command-line-options.html#channel">-channel</a> setting tellsthe operator to apply the operation using alpha channels. The <ahref>-clut operator is a good example of this. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="charcoal"></a>-charcoal <var>factor</var></h3></div><p class="magick-description">Simulate a charcoal drawing.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="chop"></a>-chop <var>geometry</var></h3></div><p class="magick-description">Remove pixels from the interior of an image.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>width</var>and <var>height</var> given in the of the <var>size</var>portion of the <var>geometry</var> argument give the number ofcolumns and rows to remove. The <var>offset</var> portion ofthe <var>geometry</var> argument is influenced bya <a href="command-line-options.html#gravity">-gravity</a> setting, if present.</p><p>The <a href="command-line-options.html#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 moretypically used with as <a href="command-line-options.html#gravity">-gravity</a> setting and zerooffsets so as to remove a single edge from an image.  Compare this to <ahref>-shave which removes equal numbers of pixels from oppositesides of the image.  </ahref></p><p>Using <a href="command-line-options.html#chop">-chop</a> effectively undoes the results of a <ahref>-splice that was given the same <var>geometry</var> and <a href="command-line-options.html#gravity">-gravity</a> settings. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="clamp"></a>-clamp</h3></div><p class="magick-description">set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="clip"></a>-clip</h3></div><p class="magick-description">Apply the clipping path if one is present.</p><p>If a clipping path is present, it is applied to subsequent operations.</p><p>For example, in the command</p><pre>convert cockatoo.tif -clip -negate negated.tif</pre><p>only the pixels within the clipping path are negated.</p><p>The <a href="command-line-options.html#clip">-clip</a> feature requires SVG support. If the SVGdelegate library is not present, the option is ignored.</p><p>Use <a href="command-line-options.html#clip">+clip</a> to disable clipping for subsequent operations.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="clip-mask"></a>-clip-mask</h3></div><p class="magick-description">Clip the image as defined by this mask.</p><p>Use the alpha channel of the current image as a mask.  Any areas that iswhite is not modified by any of the 'image processing operators' that follow,until the mask is removed. Pixels in the black areas of the clip mask aremodified per the requirements of the operator. </p><p>In some ways this is similar to (though not the same) as defininga rectangular <a href="command-line-options.html#region">-region</a>, or using the negative of themask (third) image in a three image <a href="command-line-options.html#composite">-composite</a>,operation. </p><p>Use <a href="command-line-options.html#clip-mask">+clip-mask</a> to disable clipping for subsequent operations.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="clip-path"></a>-clip-path <var>id</var></h3></div><p class="magick-description">Clip along a named path from the 8BIM profile.</p><p>This is identical to <a href="command-line-options.html#clip">-clip</a> except choose a specific clip path in the event the image has more than one path available. </p><p>Use <a href="command-line-options.html#clip-path">+clip-path</a> to disable clipping for subsequent operations.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="clone"></a>-clone <var>index(s)</var></h3></div><p class="magick-description">make a clone of an image (or images).</p><p>Inside parenthesis (where the operator is normally used) it will make aclone of the images from the last 'pushed' image sequence, and adds them tothe 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 index0.  Negative indexes are relative to the end of the sequence; forexample, <code>−1</code>represents the last image of the sequence.  Specify a range of images with adash (e.g. <code>0−4</code>).  Separate multiple indexes with commas but nospaces (e.g. <code>0,2,5</code>).  A value of '<code>0−−1</code> willeffectively clone all the images. </p><p>The <a href="command-line-options.html#clone">+clone</a> will simply make a copy of the last imagein the image sequence, and is thus equivalent to using a argument of'<code>−1</code>'. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="clut"></a>-clut</h3></div><p class="magick-description">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.</p><p>The second (LUT) image is ordinarily a gradient image containing thehistogram mapping of how each channel should be modified. Typically it is aeither a single row or column image of replacement color values. If largerthan a single row or column, values are taken from a diagonal line fromtop-left to bottom-right corners.</p><p>The lookup is further controlled by the <ahref>-interpolate setting, which is especially handy for anLUT which is not the full length needed by the ImageMagick installed Quality(Q) level. Good settings for this are the '<code>bilinear</code>' and'<code>bicubic</code>' interpolation settings, which give smooth colorgradients, and the '<code>integer</code>' setting for a direct, unsmoothedlookup of color values. </ahref></p><p>This operator is especially suited to replacing a grayscale image with aspecific color gradient from the CLUT image. </p><p>Only the channel values defined by the <a href="command-line-options.html#channel">-channel</a>setting will have their values replaced. In particular, since the default <ahref>-channel setting is <code>RGB</code>, this means thattransparency (alpha/matte channel) is not affected, unless the <ahref>-channel setting is modified. When the alpha channel isset, it is treated by the <a href="command-line-options.html#clut">-clut</a> operator in the same wayas the other channels, implying that alpha/matte values are replaced using thealpha/matte values of the original image. </ahref></ahref></p><p>If either the image being modified, or the lookup image, contains notransparency (i.e. <a href="command-line-options.html#alpha">-alpha</a> is turned 'off') but the <ahref>-channel setting includes alpha replacement, then it isassumed that image represents a gray-scale gradient which is used for thereplacement alpha values.  That is you can use a gray-scale CLUT image toadjust a existing images alpha channel, or you can color a gray-scale imageusing colors form CLUT containing the desired colors, including transparency.</ahref></p><p>See also <a href="command-line-options.html#hald-clut">-hald-clut</a> which replaces colorsaccording to the lookup of the full color RGB value from a 2D representationof a 3D color cube. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="coalesce"></a>-coalesce</h3></div><p class="magick-description">Fully define the look of each frame of an GIF animation sequence, to form a 'film strip' animation.</p><p>Overlay each image in an image sequence according toits <a href="command-line-options.html#dispose">-dispose</a> meta-data, to reproduce the look ofan animation at each point in the animation sequence. All images should bethe same size, and are assigned appropriate GIF disposal settings for theanimation to continue working as expected as a GIF animation.  Such framesare more easily viewed and processed than the highly optimized GIF overlayimages.  </p><p>The animation can be re-optimized after processing usingthe <a href="command-line-options.html#layers">-layers</a> method '<code>optimize</code>', althoughthere is no guarantee that the restored GIF animation optimization isbetter than the original. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="colorize"></a>-colorize <var>value</var></h3></div><p class="magick-description">Colorize the image by an amount specified by <var>value</var> using the color specified by the most recent <a href="command-line-options.html#fill">-fill</a> setting.</p><p>Specify the amount of colorization as a percentage. Separate colorizationvalues can be applied to the red, green, and blue channels of the image witha comma-delimited list of colorizationvalues (e.g., <code>-colorize 0,0,50</code>).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="colormap"></a>-colormap <var>type</var></h3></div><p class="magick-description">Define the colormap type.</p><p>The <var>type</var> can be  <code>shared</code> or <code>private</code>.</p><p>This option only applies when the default X server visualis <code>PseudoColor</code> or <code>GrayScale</code>. Referto <a href="command-line-options.html#visual">-visual</a> for more details. By default,a shared colormap is allocated. The image shares colors withother X clients. Some image colors could be approximated,therefore your image may look very different than intended.If <code>private</code> is chosen, the image colors appear exactlyas they are defined. However, other clients may go <var>technicolor</var>when the image colormap is installed.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="colors"></a>-colors <var>value</var></h3></div><p class="magick-description">Set the preferred number of colors in the image.</p><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 fewerunique colors than specified by <var>value</var> will have anyduplicate or unused colors removed.  The ordering of an existing colorpalette may be altered. When converting an image from color to grayscale,it is more efficient to convert the image to the gray colorspace beforereducing the number of colors. Refer tothe <a href="quantize.html">color reduction algorithm</a> for more details.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="color-matrix"></a>-color-matrix <var>matrix</var></h3></div><p class="magick-description">apply color correction to the image.</p><p>This option permits saturation changes, hue rotation, luminance to alpha,and various other effects.  Although variable-sized transformation matricescan be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6for CMYKA (or RGBA with offsets).  The matrix is similar to those used byAdobe Flash except offsets are in column 6 rather than 5 (in support ofCMYKA 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>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;">  <h3 class="magick-header"><a id="colorspace"></a>-colorspace <var>value</var></h3></div><p class="magick-description">Set the image colorspace.</p><p>Choices are:</p><pre>CMY          CMYK         Gray         HCLHCLp         HSB          HSI          HSLHSV          HWB          Lab          LCHabLCHuv        LMS          Log          LuvOHTA         Rec601YCbCr  Rec709YCbCr  RGBscRGB        sRGB         Transparent  xyYXYZ          YCbCr        YCC          YDbDrYIQ          YPbPr        YUV</pre><p>To print a complete list of colorspaces, use <a href="command-line-options.html#list">-list colorspace</a>.</p><p>For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the <a href="command-line-options.html#profile">-profile</a> option.  Note, ImageMagick assumes the sRGB colorspace if the image format does not indicate otherwise.  For colorspace conversion, the gamma function is first removed to produce linear RGB.</p><table class="table table-condensed table-striped">        <caption>Conversion of RGB to Other Color Spaces</caption>        <tr><th valign="middle">CMY</th></tr>        <tr><td valign="middle">C=<var>QuantumRange</var>−R</td></tr>        <tr><td valign="middle">M=<var>QuantumRange</var>−G</td></tr>        <tr><td valign="middle">Y=<var>QuantumRange</var>−B</td></tr>        <tr><th valign="middle">CMYK — starts with CMY from above</th></tr>        <tr><td valign="middle">K=min(C,Y,M)</td></tr>        <tr><td valign="middle">C=<var>QuantumRange</var>*(C−K)/(<var>QuantumRange</var>−K)</td></tr>        <tr><td valign="middle">M=<var>QuantumRange</var>*(M−K)/(<var>QuantumRange</var>−K)</td></tr>        <tr><td valign="middle">Y=<var>QuantumRange</var>*(Y−K)/(<var>QuantumRange</var>−K)</td></tr>        <tr><th valign="middle">Gray</th></tr>        <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>        <tr><th valign="middle">HSB — Hue, Saturation, Brightness; like a cone peak downward</th></tr>        <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>        <tr><td valign="middle">S=distance from axis outward</td></tr>        <tr><td valign="middle">B=distance along axis from bottom upward; B=max(R,G,B); <var>intensity-like</var></td></tr>        <tr><th valign="middle">HSL — Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom</th></tr>        <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>        <tr><td valign="middle">S=distance from axis outward</td></tr>        <tr><td valign="middle">L=distance along axis from bottom upward; L=0.5*max(R,G,B) + 0.5*min(R,G,B); <var>intensity-like</var></td></tr>        <tr><th valign="middle">HWB — Hue, Whiteness, Blackness</th></tr>        <tr><td valign="middle">Hue (complicated equation)</td></tr>        <tr><td valign="middle">Whiteness (complicated equation)</td></tr>        <tr><td valign="middle">Blackness (complicated equation)</td></tr>        <tr><th valign="middle">LAB</th></tr>        <tr><td valign="middle">L (complicated equation relating X,Y,Z)</td></tr>        <tr><td valign="middle">A (complicated equation relating X,Y,Z)</td></tr>        <tr><td valign="middle">B (complicated equation relating X,Y,Z)</td></tr>        <tr><th valign="middle">LOG</th></tr>        <tr><td valign="middle">I1 (complicated equation involving logarithm of R)</td></tr>        <tr><td valign="middle">I2 (complicated equation involving logarithm of G)</td></tr>        <tr><td valign="middle">I3 (complicated equation involving logarithm of B)</td></tr>        <tr><th valign="middle">OHTA — approximates principal components transformation</th></tr>        <tr><td valign="middle">I1=0.33333*R+0.33334*G+0.33333*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">I2=(0.50000*R+0.00000*G−0.50000*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">I3=(−0.25000*R+0.50000*G−0.25000*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">Rec601Luma</th></tr>        <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>        <tr><th valign="middle">Rec601YCbCr</th></tr>        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">Cb=(−0.168736*R-0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">Rec709Luma</th></tr>        <tr><td valign="middle">Gray=0.212656*R+0.715158*G+0.072186*B</td></tr>        <tr><th valign="middle">Rec709YCbCr</th></tr>        <tr><td valign="middle">Y=0.212656*R+0.715158*G+0.072186*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">Cb=(−0.114572*R−0.385428*G+0.500000*B)+(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">Cr=(0.500000*R−0.454153*G−0.045847*B)+(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">sRGB</th></tr>        <tr><td valign="middle">if R ≤ .0.0031308 then Rs=R/12.92 else Rs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>        <tr><td valign="middle">if G ≤ .0.0031308 then Gs=B/12.92 else Gs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>        <tr><td valign="middle">if B ≤ .0.0031308 then Bs=B/12.92 else Bs=1.055 R ^ (1.0 / 2.4) ? 0.055</td></tr>        <tr><th valign="middle">XYZ</th></tr>        <tr><td valign="middle">X=0.4124564*R+0.3575761*G+0.1804375*B</td></tr>        <tr><td valign="middle">Y=0.2126729*R+0.7151522*G+0.0721750*B</td></tr>        <tr><td valign="middle">Z=0.0193339*R+0.1191920*G+0.9503041*B</td></tr>        <tr><th valign="middle">YCC</th></tr>        <tr><td valign="middle">Y=(0.298839*R+0.586811*G+0.114350*B) (with complicated scaling); <var>intensity-like</var></td></tr>        <tr><td valign="middle">C1=(−0.298839*R−0.586811*G+0.88600*B) (with complicated scaling)</td></tr>        <tr><td valign="middle">C2=(0.70100*R−0.586811*G−0.114350*B) (with complicated scaling)</td></tr>        <tr><th valign="middle">YCbCr</th></tr>        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">Cb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">YIQ</th></tr>        <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">I=(0.59600*R−0.27400*G−0.32200*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">Q=(0.21100*R−0.52300*G+0.31200*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">YPbPr</th></tr>        <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">Pb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">Pr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><th valign="middle">YUV</th></tr>        <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>        <tr><td valign="middle">U=(−0.14740*R−0.28950*G+0.43690*B)*(<var>QuantumRange</var>+1)/2</td></tr>        <tr><td valign="middle">V=(0.61500*R−0.51500*G−0.10000*B)*(<var>QuantumRange</var>+1)/2</td></tr></table><p>Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="combine"></a>-combine</h3></div><p class="magick-description">Combine one or more images into a single image.</p><p>The channels (previously set by <a href="command-line-options.html#channel">-channel</a>) of thecombined image are taken from the grayscale values of each image in thesequence, in order. For the default -channel setting of <code>RGB</code>, thismeans the first image  is assigned to the <code>Red</code> channel, the secondto the <code>Green</code> channel, the third to the <code>Blue</code>.</p><p>This option can be thought of as the inverse to <ahref>-separate, so long as the channel settings are the same.Thus, in the following example, the final image should be a copy of theoriginal.  </ahref></p><pre>convert original.png -channel RGB -separate sepimage.pngconvert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \  -combine imagecopy.png</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="comment"></a>-comment <var>string</var></h3></div><p class="magick-description">Embed a comment in an image.</p><p>This option sets the comment meta-data of an image read in after thisoption has been given.  To modify a comment of images already in memory use"<code><a href="command-line-options.html#set">-set</a> comment</code>". </p><p>The comment can contain special format characters listed in the <ahref>Format andPrint Image Properties. These attributes are expanded when the commentis finally assigned to the individual images. </ahref></p><p>If the first character of <var>string</var> is <var>@</var>, the image comment is read from a file titled by theremaining 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="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> optionsinstead.</p><p>For example,</p><pre>-comment "%m:%f %wx%h"  bird.miff</pre><p>produces an image comment of <code>MIFF:bird.miff 512x480</code> (assumingthat the image <code>bird.miff</code> has a width of 512 and a height of480.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="compare"></a>-compare</h3></div><p class="magick-description">mathematically and visually annotate the difference between an image and its reconstruction</p><p>This is a convert version of "<code>compare</code>" for two same sized images. The syntax is as follows, but other metrics are allowed.</p><pre>convert image.png reference.png -metric RMSE -compare \ <br> difference.png</pre><p>To get the metric value use the string format "%[distortion]".</p><pre>convert image.png reference.png -metric RMSE -compare -format \   "%[distortion]" info:</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="complex"></a>-complex <var>operator</var></h3></div><p class="magick-description">perform complex mathematics on an image sequence</p>Choose from these operators:<pre>addconjugatedividemagnitude-phasemultiplyreal-imaginarysubtract</pre><p>Optionally specify the <code>divide</code> operator SNR with <code><a href="command-line-options.html#define">-define</a> complex:snr=float</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="compose"></a>-compose <var>operator</var></h3></div><p class="magick-description">Set the type of image composition.</p><p>See <a href="compose.html">Alpha Compositing</a> fora 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="command-line-options.html#composite">-compare</a>,<a href="command-line-options.html#composite">-composite</a>,<a href="command-line-options.html#layers">-layers</a> composite,<a href="command-line-options.html#flatten">-flatten</a>,<a href="command-line-options.html#mosaic">-mosaic</a>,<a href="command-line-options.html#layers">-layers</a> merge,<a href="command-line-options.html#border">-border</a>,<a href="command-line-options.html#frame">-frame</a>,and <a href="command-line-options.html#extent">-extent</a>. </p><p>It is also one of the primary options for the "<code>composite</code>"command.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="composite"></a>-composite</h3></div><p class="magick-description">Perform alpha composition on two images and an optional mask</p><p>Take the first image 'destination' and overlay the second 'source' imageaccording to the current <a href="command-line-options.html#compose">-compose</a> setting. The locationof the 'source' or 'overlay' image is controlled according to <ahref>-geometry, and <a href="command-line-options.html#geometry">-geometry</a>settings. </ahref></p><p>If a third image is given this is treated as a gray-scale blending 'mask' imagerelative to the first 'destination' image. This mask is blended with thesource image.  However for the '<code>displace</code>' compose method, themask is used to provide a separate Y-displacement image instead. </p><p>If a <a href="command-line-options.html#compose">-compose</a> method requires extra numericalarguments or flags these can be provided by setting the  <ahref>-set '<code>option:compose:args</code>'appropriately for the compose method. </ahref></p><p>Some <a href="command-line-options.html#compose">-compose</a> methods can modify the 'destination'image outside the overlay area. You can disable this by setting the special <ahref>-set '<code>option:compose:outside-overlay</code>'to '<code>false</code>'.  </ahref></p><p>The SVG compositing specification requires that color and opacity values range between zero and QuantumRange inclusive.  You can permit values outside this range with this option: <a href="command-line-options.html#set">-set</a> '<code>option:compose:clamp=false</code></p><div style="margin: auto;">  <h3 class="magick-header"><a id="compress"></a>-compress <var>type</var></h3></div><p class="magick-description">Use pixel compression specified by <var>type</var> when writing the image.</p><p>Choices are: <code>None</code>, <code>BZip</code>, <code>Fax</code>, <code>Group4</code>, <code>JPEG</code>,  <code>JPEG2000</code>, <code>Lossless</code>, <code>LZW</code>, <code>RLE</code> or <code>Zip</code>.</p><p>To print a complete list of compression types, use <a href="command-line-options.html#list">-listcompress</a>.</p><p>Specify <a href="command-line-options.html#compress">+compress</a> to store the binary image in anuncompressed format. The default is the compression type of the specifiedimage file.</p><p>If <code>LZW</code> compression is specified but LZW compression has not beenenabled, the image data is written in an uncompressed LZW format that can beread by LZW decoders. This may result in larger-than-expected GIF files.</p><p><code>Lossless</code> refers to lossless JPEG, which is only available if theJPEG library has been patched to support it. Use of lossless JPEG is generallynot recommended.</p><p>When writing an ICO file, you may request that the images be encoded inPNG format, by specifying <code>Zip</code> compression.</p><p>When writing a JNG file, specify <code>Zip</code> compression to request thatthe alpha channel be encoded in PNG "IDAT" format, or <code>JPEG</code>to request that it be encoded in JPG "JDAA" format.</p><p>Use the <a href="command-line-options.html#quality">-quality</a> option to set the compression levelto be used by JPEG, PNG, MIFF, and MPEG encoders.Use the <a href="command-line-options.html#sampling-factor">-sampling-factor</a> option to set thesampling factor to be used by JPEG, MPEG, and YUV encoders for down-samplingthe chroma channels.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="connected-components"></a>-connected-components <var>connectivity</var></h3></div><p class="magick-description">connected-components uniquely labeled, choose from 4 or 8 way connectivity.</p><p>Use <code><a href="command-line-options.html#define">-define</a> connected-components:verbose=true</code> to output statistics associated with each unique label.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="contrast"></a>-contrast</h3></div><p class="magick-description">Enhance or reduce the image contrast.</p><p>This option enhances the intensity differences between the lighter anddarker elements of the image. Use <a href="command-line-options.html#contrast">-contrast</a> to enhancethe image or <a href="command-line-options.html#contrast">+contrast</a> to reduce the imagecontrast.</p><p>For a more pronounced effect you can repeat the option:</p><pre>convert rose: -contrast -contrast rose_c2.png</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="contrast-stretch"></a>-contrast-stretch <var>black-point</var><br>-contrast-stretch <var>black-point</var>{x<var>white-point</var>}{<var>%</var>}}</h3></div><p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p><p>While performing the stretch, black-out at most <var>black-point</var> pixels and white-out at most <var>white-point</var> pixels. Or, if percent is used, black-out at most<var>black-point %</var> pixels and white-out at most <var>white-point %</var> pixels.</p><p>Prior to ImageMagick 6.4.7-0, <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> will black-out at most <var>black-point</var> pixels and white-out at most <var>total pixelsminus white-point</var> pixels. Or, if percent is used, black-out at most <var>black-point %</var> pixels and white-out at most <var>100% minus white-point %</var> pixels.</p><p>Note that <code>-contrast-stretch 0</code> will modify the image such thatthe image's min and max values are stretched to 0 and <var>QuantumRange</var>, respectively, without any loss of data due to burn-out orclipping at either end. This is not the same as <a href="command-line-options.html#normalize">-normalize</a>, which is equivalent to <code>-contrast-stretch 0.15x0.05%</code> (orprior to ImageMagick 6.4.7-0, <code>-contrast-stretch 2%x99%</code>).</p><p>Internally operator works by creating a histogram bin, and then uses thatbin to modify the image. As such some colors may be merged together when theyoriginally fell into the same 'bin'. </p><p>All the channels are normalized in concert by the came amount so as topreserve color integrity, when the default <a href="command-line-options.html#channel">+channel</a>setting is in use.  Specifying any other <a href="command-line-options.html#channel">-channel</a>setting will normalize the RGB channels independently.</p><p>See also  <a href="command-line-options.html#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;">  <h3 class="magick-header"><a id="convolve"></a>-convolve <var>kernel</var></h3></div><p class="magick-description">Convolve an image with a user-supplied convolution kernel.</p><p>The <var>kernel</var> is a matrix specified asa comma-separated list of integers (with no spaces), ordered left-to right,starting with the top row. Presently, only odd-dimensioned kernels aresupported, and therefore the number of entries in the specified <var>kernel</var> 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="command-line-options.html#convolve">‑convolve</a> operator supports the <a href="command-line-options.html#bias">‑bias</a> setting. This option shifts the convolution so thatpositive and negative results are relative to a user-specified bias value.This is important for non-HDRI compilations of ImageMagick when dealing withconvolutions that contain negative as well as positive values. This isespecially the case with convolutions involving high pass filters or edgedetection. 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="command-line-options.html#bias">‑bias</a> is not needed, as ImageMagick is able to store/handle anynegative results without clipping to the color value range (0..QuantumRange).See the discussion on HDRI implementations of ImageMagick on the page <ahref>HighDynamic-Range Images. For more about HDRI go the ImageMagick <ahref>Usage pages or this<a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>entry.  </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="copy"></a>-copy <var>geometry</var> <var>offset</var></h3></div><p class="magick-description">copy pixels from one area of an image to another.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="crop"></a>-crop <var>geometry</var>{<var>@</var>}{<var>!</var>}</h3></div><p class="magick-description">Cut out one or more rectangular regions of the image.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><p>The <var>width</var> and <var>height</var> of the <var>geometry</var> argument give the size of the image that remainsafter cropping, and <var>x</var> and <var>y</var> in the<var>offset</var> (if present) gives the location of the top leftcorner of the cropped image with respect to the original image. To specify theamount to be removed, use <a href="command-line-options.html#shave">-shave</a> instead.</p><p>If the <var>x</var> and <var>y</var> offsets arepresent, a single image is generated, consisting of the pixels from thecropping region. The offsets specify the location of the upper left corner ofthe cropping region measured downward and rightward with respect to the upperleft corner of the image. If the <a href="command-line-options.html#gravity">-gravity</a> option ispresent with <code>NorthEast</code>, <code>East</code>, or <code>SouthEast</code>gravity, it gives the distance leftward from the right edge of the image tothe right edge of the cropping region. Similarly, if the <ahref>-gravity option is present with <code>SouthWest</code>,<code>South</code>, or <code>SouthEast</code> gravity, the distance is measuredupward between the bottom edges.</ahref></p><p>If the <var>x</var> and <var>y</var> offsets areomitted, a set of tiles of the specified geometry, covering the entire inputimage, is generated. The rightmost tiles and the bottom tiles are smaller ifthe specified geometry extends beyond the dimensions of the input image.</p><p>You can add the <var>@</var> to the geometry argument to equally divide the image into the number of tiles generated.</p><p>By adding a exclamation character flag to the geometry argument, thecropped images virtual canvas page size and offset is set as if thegeometry argument was a viewport or window. This means the canvas page sizeis set to exactly the same size you specified, the image offset setrelative top left corner of the region cropped. </p><p>If the cropped image 'missed' the actual image on its virtual canvas, aspecial single pixel transparent 'missed' image is returned, and a 'cropmissed' warning given. </p><p>It might be necessary to <a href="command-line-options.html#repage">+repage</a> the image prior tocropping the image to ensure the crop coordinate frame is relocated to theupper-left corner of the visible image.Similarly you may want to use <a href="command-line-options.html#repage">+repage</a> after cropping toremove the page offset that will be left behind. This is especially true whenyou are going to write to an image format such as PNG that supports an imageoffset.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="cycle"></a>-cycle <var>amount</var></h3></div><p class="magick-description">displace image colormap by amount.</p><p><var>Amount</var> defines the number of positions eachcolormap entry is shifted.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="debug"></a>-debug <var>events</var></h3></div><p class="magick-description">enable debug printout.</p><p>The <code>events</code> parameter specifies which events are to be logged. Itcan be either <code>None</code>, <code>All</code>, <code>Trace</code>, ora comma-separated list consisting of one or more of the following domains:<code>Accelerate</code>, <code>Annotate</code>, <code>Blob</code>, <code>Cache</code>,<code>Coder</code>, <code>Configure</code>, <code>Deprecate</code>,<code>Exception</code>, <code>Locale</code>, <code>Render</code>,<code>Resource</code>, <code>Security</code>, <code>TemporaryFile</code>,<code>Transform</code>, <code>X11</code>, or <code>User</code>. </p><p>For example, to log cache and blob events, use.</p><pre>convert -debug "Cache,Blob" rose: rose.png</pre><p>The <code>User</code> domain is normally empty, but developers can log userevents in their private copy of ImageMagick.</p><p>To print the complete list of debug methods, use <a href="command-line-options.html#list">-listdebug</a>.</p><p>Use the <a href="command-line-options.html#log">-log</a> option to specify the format for debuggingoutput.</p><p>Use <a href="command-line-options.html#debug">+debug</a> to turn off all logging.</p><p>Debugging may also be set using the <code>MAGICK_DEBUG</code> <a href="resources.html#environment">environment variable</a>.  The allowed values for the <code>MAGICK_DEBUG</code>environment variable are the same as for the <a href="command-line-options.html#debug">-debug</a>option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="decipher"></a>-decipher <var>filename</var></h3></div><p class="magick-description">Decipher and restore pixels that were previously transformed by <a href="command-line-options.html#encipher">-encipher</a>.</p><p>Get the passphrase from the file specified by <var>filename</var>.</p><p>For more information, see the webpage, <ahref>ImageMagick: Encipher orDecipher an Image.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="deconstruct"></a>-deconstruct</h3></div><p class="magick-description">find areas that has changed between images </p><p>Given a sequence of images all the same size, such as produced by <ahref>-coalesce, replace the second and later images, witha smaller image of just the area that changed relative to the previous image.</ahref></p><p>The resulting sequence of images can be used to optimize an animationsequence, though will not work correctly for GIF animations when parts of theanimation can go from opaque to transparent. </p><p>This option is actually equivalent to the  <a href="command-line-options.html#layers">-layers</a>method '<code>compare-any</code>'. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="define"></a>-define <var>key</var>{<var>=value</var>}<var>...</var></h3></div><p class="magick-description">add specific global settings generally used to control coders and image processing operations.</p><p>This option creates one or more definitions for coders and decoders to usewhile reading and writing image data.  Definitions are generally used tocontrol image file format coder modules, and image processing operations,beyond what is provided by normal means.  Defined settings are listed in <ahref>-verbose information ("<code>info:</code>" output format)as "Artifacts". </ahref></p><p>If <var>value</var> is missing for a definition, an empty-valueddefinition of a flag is created with that name. This used to control on/offoptions.  Use <a href="command-line-options.html#define">+define key</a> to remove definitionspreviously created.  Use <a href="command-line-options.html#define">+define "*"</a> to remove allexisting definitions.</p><p>The same 'artifact' settings can also be defined using the <ahref>-set "option:<var>key</var>" "<var>value</var>" option, which also allows the use of <a href="escape.html">Format and Print ImageProperties</a> in the defined value. </ahref></p><p>The <var>option</var> and <var>key</var> are case-independent (they areconverted to lowercase for use within the decoders) while the <var>value</var>is case-dependent.</p><p>Such settings are global in scope, and affect all images and operations. </p><p>The following definitions are just some of the artifacts that areavailable:</p><table class="table table-condensed table-striped">  <tr>    <td>bmp:format=<var>value</var></td>    <td> valid values are <var>bmp2</var>, <var>bmp3</var>,   and <var>bmp4</var>.  This option can be useful when the   method of prepending "BMP2:" to the output filename is inconvenient or   is not available, such as when using the <a href="mogrify.html">mogrify</a>   utility.</td>  </tr>  <tr>    <td>colorspace:auto-grayscale=<var>on|off</var></td>    <td>prevent automatic conversion to grayscale inside coders that support     grayscale. This should be accompanied by -type truecolor. PNG and TIF do     not need this define. With PNG, just use PNG24:image. With TIF, just use     -type truecolor. JPG and PSD will need this define.</td>   </tr>  <tr>    <td>complex:snr=<var>value</var></td>    <td>Set the divide SNR constant<a href="command-line-options.html#complex">-complex</a></td>  </tr>  <tr>    <td>compose:args=<var>arguments</var></td>     <td>Sets certain compose argument values when using convert ... -compose ...    -composite. See <a href="http://www.imagemagick.org/www/compose.html">Image Composition</a></td>  </tr>  <tr>    <td>compose:clamp=<var>on|off</var></td>    <td>set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.  Define supported in ImageMagick 6.9.1-3 and above.</td>  </tr>  <tr>    <td>convolve:scale=<var>{kernel_scale}[!^] [,{origin_addition}] [%]</var></td>     <td>Defines the kernel scaling. The special flag ! automatically scales to     full dynamic range. The ! flag can be used in combination with a factor or     percent. The factor or percent is then applied after the automatic scaling.     An example is 50%!. This produces a result 50% darker than full dynamic     range scaling. The ^ flag assures the kernel is 'zero-summing', for     example when some values are positive and some are negative as in edge     detection kernels. The origin addition adds that value to the center     pixel of the kernel. This produces and effect that is like adding the image 	    that many times to the result of the filtered image. The typical value     is 1 so that the original image is added to the result of the convolution.     The default is 0.</td>  </tr>  <tr>    <td>convolve:showkernel=<var>1</var></td>     <td>Outputs (to 'standard error') all the information about a specified <a href="command-line-options.html#morphology">-morphology convolve</a> kernel.</td>  </tr>  <tr>    <td>dcm:display-range=<var>reset</var></td>     <td>Sets the display range to the minimum and maximum pixel values for the    DCM image format.</td>  </tr>  <tr>    <td>dds:cluster-fit=<var>true|false</var></td>     <td>Enables the dds cluster-fit.</td>  </tr>  <tr>    <td>dds:compression=<var>dxt1|dxt5|none</var></td>     <td>Sets the dds compression.</td>  </tr>  <tr>    <td>dds:mipmaps=<var>value</var></td>     <td>Sets the dds number of mipmaps.</td>  </tr>  <tr>    <td>dds:weight-by-alpha=<var>true|false</var></td>     <td>Enables the dds alpha weighting.</td>  </tr>  <tr>    <td>delegate:bimodal=<var>true</var></td>     <td>Specifies direct conversion from Postscript to PDF.</td>  </tr>  <tr>    <td>distort:scale=<var>value</var></td>    <td>Sets the output scaling factor for use with <a href="command-line-options.html#distort">-distort</a></td>  </tr>  <tr>    <td>distort:viewport=<var>WxH+X+Y</var></td>    <td>Sets the viewport for use with <a href="command-line-options.html#distort">-distort</a></td>  </tr>  <tr>    <td>dot:layout-engine=<var>value</var></td>     <td>Specifies the layout engine for the DOT image format (e.g.    <code>neato</code>).</td>  </tr>  <tr>    <td>filter:option=<var>value</var></td>     <td>Set a filter option for use with <a href="command-line-options.html#resize">-resize</a>.    See <a href="command-line-options.html#filter">-filter</a> for details.</td>  </tr>  <tr>    <td>fourier:normalize=<var>inverse</var></td>    <td>Sets the location for the FFT/IFT normalization as use by     <a href="command-line-options.html#fft">+-fft</a> and <a href="command-line-options.html#ift">+-ift</a>. The default is     <var>forward</var>.</td>  </tr>  <tr>    <td>h:format=<var>value</var></td>     <td>Set the image encoding format use when writing a C-style header.         <var>format</var> can be any output format supported by ImageMagick         except for <var>h</var> and <var>magick</var></td>.  If this         option is omitted, the default is <var>GIF</var> for PseudoClass         images and <var>PNM</var> for DirectClass images.  </tr>  <tr>    <td>icon:auto-resize</td>     <td>Automatically stores multiple sizes when writing an ico image    (requires a 256x256 input image).</td>  </tr>  <tr>    <td>jp2:layer-number=<var>value</var></td>     <td>Sets the maximum number of quality layers to decode. Same for JPT, JC2,    and J2K</td>  </tr>  <tr>    <td>jp2:number-resolutions=<var>value</var></td>     <td>Sets the number of resolutions to encode.Same for JPT, JC2, and J2K</td>  </tr>  <tr>    <td>jp2:progression-order=<var>value</var></td>     <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and     J2K</td>  </tr>  <tr>    <td>jp2:quality=<var>value,value...</var></td>     <td>Sets the quality layer PSNR, given in dB. The order is from left to     right in ascending order. The default is a single lossless quality layer.      Same for JPT, JC2, and J2K</td>  </tr>  <tr>    <td>jp2:rate=<var>value</var></td>     <td>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. Same for JPT, JC2, and J2K</td>  </tr>  <tr>    <td>jp2:reduce-factor=<var>value</var></td>     <td>Sets the number of highest resolution levels to be discarded.Same for     JPT, JC2, and J2K</td>  </tr>  <tr>    <td>jpeg:block-smoothing=<var>on|off</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>jpeg:colors=<var>value</var></td>     <td>Set the desired number of colors and let the JPEG encoder do the    quantizing.</td>  </tr>  <tr>    <td>jpeg:dct-method=<var>value</var></td>     <td>Choose from <code>default</code>, <code>fastest</code>,     <code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>  </tr>  <tr>    <td>jpeg:extent=<var>value</var></td>     <td>Restrict the maximum JPEG file size, for example <code>-define    jpeg:extent=400KB</code>.  The JPEG encoder will search for the highest    compression quality level that results in an output file that does not    exceed the value. The <code>-quality</code> option is ignored if it    is also present.</td>  </tr>  <tr>    <td>jpeg:fancy-upsampling=<var>on|off</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>jpeg:optimize-coding=<var>on|off</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>jpeg:q-table=<var>table</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>jpeg:sampling-factor=<var>sampling-factor-string</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>jpeg:size=<var>geometry</var></td>     <td>Set the size hint of a JPEG image, for    example, <code>-define jpeg:size=128x128</code>.    It is most useful for increasing performance and reducing the memory    requirements when reducing the size of a large JPEG image.</td>  </tr>  <tr>    <td>json:features</td>   <td>includes features in verbose information</td>  </tr>  <tr>    <td>json:limit</td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>json:locate</td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>json:moments</td>   <td>includes image moments in verbose information</td>  </tr>  <tr>    <td>magick:format=<var>value</var></td>     <td>Set the image encoding format use when writing a C-style header.         This is the same as "h:format=format" described above.</td>.   </tr>  <tr>    <td>mng:need-cacheoff</td>   <td>turn playback caching off for streaming MNG.</td>  </tr>  <tr>    <td>morphology:compose=<var>compose-method</var></td>     <td>Specifies how to merge results generated by multiple<a href="command-line-options.html#morphology">-morphology</a> kernel. The default is none. One     typical value is 'lighten' as used, for example, with the sobel edge     kernels. </td>  </tr>  <tr>    <td>morphology:showkernel=<var>1</var></td>     <td>Outputs (to 'standard error') all the information about a generated <a href="command-line-options.html#morphology">-morphology</a> kernel.</td>  </tr>  <tr>    <td>pcl:fit-to-page=<var>true</var></td>  </tr><tr>    <td>pdf:fit-page=<var>geometry</var></td>     <td> geometry specifies the scaling dimensions for resizing when the PDF is    being read. The geometry is either WxH{%} or page size. No offsets are    allowed. (introduced in IM 6.8.8-8)</td>  </tr>  <tr>    <td>pdf:fit-to-page=<var>true</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>pdf:use-cropbox=<var>true</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>pdf:use-trimbox=<var>true</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>png:bit-depth=<var>value</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>png:color-type=<var>value</var></td>     <td>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="command-line-options.html#depth">-depth</a>,    <a href="command-line-options.html#colors">-colors</a>, or <a href="command-line-options.html#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.</td>  </tr>  <tr>    <td>png:compression-filter=<var>value</var></td>    <td> valid values are 0 through 9. 0-4 are the corresponding PNG filters,   5 means adaptive filtering except for images with a colormap, 6 means   adaptive filtering for all images, 7 means MNG "loco" compression, 8 means    Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no    filtering.</td>  </tr>  <tr>    <td>png:compression-level=<var>value</var></td>    <td> valid values are 0 through 9, with 0 providing the least but fastest       compression and 9 usually providing the best and always the slowest.</td>  </tr>  <tr>    <td>png:compression-strategy=<var>value</var></td>    <td> valid values are 0 through 4, meaning default, filtered, huffman_only,   rle, and fixed ZLIB compression strategy. If you are using an old zlib   that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),   values 3 and 4, respectively, will use the zlib default strategy   instead.</td>  </tr>  <tr>    <td>png:format=<var>value</var></td>    <td> valid values are <var>png8</var>, <var>png24</var>,   <var>png32</var>, <var>png48</var>,   <var>png64</var>, and <var>png00</var>.   This property can be useful for specifying   the specific PNG format to be used, when the usual method of prepending the   format name to the output filename is inconvenient, such as when writing   a PNG-encoded ICO file or when using <a href="mogrify.html">mogrify</a>.   Value = <var>png8</var> reduces the number of colors to 256,   only one of which may be fully transparent, if necessary.  The other   values do not force any reduction of quality; it is an error to request   a format that cannot represent the image data without loss (except that   it is allowed to reduce the bit-depth from 16 to 8 for all formats).   Value = <var>png24</var> and <var>png48</var>   allow transparency, only if a single color is fully transparent and that   color does not also appear in an opaque pixel; such transparency is   written in a PNG <code>tRNS</code> chunk.   Value = <var>png00</var> causes the image to inherit its   color-type and bit-depth from the input image, if the input was also   a PNG.</td>  </tr>  <tr>    <td>png:exclude-chunk=<var>value</var></td>  </tr><tr>    <td>png:include-chunk=<var>value</var></td>     <td>ancillary chunks to be excluded from or included in PNG output.    <p>The <var>value</var> can be the name of a PNG chunk-type such    as <var>bKGD</var>, a comma-separated list of chunk-names    (which can include the word <var>date</var>, the word    <var>all</var>, or the word <var>none</var>).    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 <code>sRGB</code> chunk is excluded and    the <code>gAMA</code> chunk is included, the <code>gAMA</code> 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>-define png:include-chunk=none,gAMA</pre>    <p>As a special case, if the <code>sRGB</code> chunk is not excluded and    the PNG encoder recognizes that the image contains the sRGB ICC profile,    the PNG encoder will write the <code>sRGB</code> chunk instead of the    entire ICC profile.  To force the PNG encoder to write the sRGB    profile as an <code>iCCP</code> chunk in the output PNG instead of the    <code>sRGB</code> chunk, exclude the <code>sRGB</code> chunk.</p>    <p>The critical PNG chunks <code>IHDR</code>, <code>PLTE</code>,    <code>IDAT</code>, and <code>IEND</code> cannot be excluded.  Any such    entries appearing in the list will be ignored.</p>    <p>If the ancillary PNG <code>tRNS</code> 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    <code>tRNS</code> chunk isn't written anyhow, and there is no effect    on the PNG colortype of the output image.</p>    <p>The <a href="command-line-options.html#strip">-strip</a> option does the equivalent of the    following for PNG output:</p><pre>-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date</pre>    <p>The default behavior is to include all known PNG ancillary chunks    plus ImageMagick's private <code>vpAg</code> ("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    <code>bKGD</code>, <code>cHRM</code>, <code>gAMA</code>, <code>iCCP</code>,    <code>oFFs</code>, <code>pHYs</code>, <code>sRGB</code>, <code>tEXt</code>,    <code>tRNS</code>, <code>vpAg</code>, and <code>zTXt</code>.</p>    <p>You can also put <code>date</code> in the list to include or exclude    the "Date:create" and "Date:modify" text chunks that ImageMagick normally    inserts in the output PNG.</p></td>  </tr>  <tr>    <td>png:preserve-colormap[=<var>true</var>]</td>     <td>Use the existing image-&gt;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.</td>  </tr>  <tr>    <td>png:preserve-iCCP[=<var>true</var>]</td>     <td>By default, the PNG decoder and encoder examine any ICC profile    that is present, either from an <code>iCCP</code> chunk in the PNG    input or supplied via an option, and if the profile is recognized    to be the sRGB profile, converts it to the <code>sRGB</code> chunk.    You can use <code>-define png:preserve-iCCP</code> to prevent    this from happening; in such cases the <code>iCCP</code> chunk    will be read or written and no <code>sRGB</code> chunk will be    written.  There are some ICC profiles that claim to be sRGB but    have various errors that cause them to be rejected by libpng16; such    profiles are recognized anyhow and converted to the <code>sRGB</code>    chunk, but are rejected if the <code>-define png:preserve-iCCP</code>    is present. Note that not all "sRGB" ICC profiles are recognized    yet; we will add them to the list as we encounter them.</td>  </tr>  <tr>    <td>png:swap-bytes[=<var>true</var>]</td>     <td>The PNG specification requires that any multi-byte integers be stored in    network byte order (MSB-LSB endian).  This option allows you to    fix any invalid PNG files that have 16-bit samples stored incorrectly    in little-endian order (LSB-MSB).  The "-define png:swap-bytes" option    must appear before the input filename on the commandline.  The swapping    is done during the libpng decoding operation.</td>  </tr>  <tr>    <td>profile:skip=<var>name1,name2,...</var></td>     <td>Skip the named profile[s] when reading the image. Use skip="*" to    skip all named profiles in the image. Many named profiles exist,    including ICC, EXIF, APP1, IPTC, XMP, and others.</td>  </tr>  <tr>    <td>ps:imagemask</td>     <td>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.</td>  </tr>  <tr>    <td>quantum:format=<var>type</var></td>     <td>Set the type to <code>floating-point</code> 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="command-line-options.html#depth">-depth</a> 16 is    included, the result is a single precision floating point format.    If <a href="command-line-options.html#depth">-depth</a> 32 is included, the result is    double precision floating point format.</td>  </tr>  <tr>    <td>quantum:polarity=<var>photometric-interpretation</var></td>     <td>Set the photometric-interpretation of an image (typically for TIFF image    file format) to either <code>min-is-black</code> (default) or    <code>min-is-white</code>.</td>  </tr>  <tr>    <td>sample:offset=<var>geometry</var></td>     <td>Location of the sampling point within the sub-region being sampled,    expressed as percentages (see <a href="command-line-options.html#sample">-sample</a>).</td>  </tr>  <tr>    <td>showkernel=<var>1</var></td>     <td>Outputs (to 'standard error') all the information about a generated <a href="command-line-options.html#morphology">-morphology</a> kernel.</td>  </tr>  <tr>    <td>stream:buffer-size=<var>value</var></td>   <td>Set the stream buffer size.  Select 0 for unbuffered I/O.</td>  </tr>  <tr>    <td>tiff:alpha=<var>associated|unassociated|unspecified</var></td>    <td>Specify the alpha extra samples as associated, unassociated or unspecified </td>  </tr>  <tr>    <td>tiff:endian=<var>msb|lsb</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>tiff:exif-properties=<var>false</var></td>    <td>Skips reading the EXIF properties.</td>  </tr>  <tr>    <td>tiff:fill-order=<var>msb|lsb</var></td>    <td>&amp;nbsp</td>  </tr>  <tr>    <td>tiff:ignore-layers=<var>true</var></td>    <td>Ignores the photoshop layers.</td>  </tr>  <tr>    <td>tiff:ignore-tags=<var>comma-separate-list-of-tag-IDs</var></td>    <td>Allows one or more tag ID values to be ignored.</td>  </tr>  <tr>    <td>tiff:rows-per-strip=<var>value</var></td>    <td>Sets the number of rows per strip</td>  </tr>  <tr>    <td>tiff:tile-geometry=<var>WxH</var></td>    <td>Sets the tile size for pyramid tiffs. Requires the suffix        PTIF: before the outputname</td>  </tr></table><p>For example, to create a postscript file that will render only the blackpixels of a bilevel image, use:</p><pre>convert bilevel.tif -define ps:imagemask eps3:stencil.ps</pre><p>Set attributes of the image registry by prefixing the value with<code>registry:</code>.  For example, to set a temporary path to put work files,use:</p><pre>-define registry:temporary-path=/data/tmp</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="delay"></a>-delay <var>ticks</var> <br>-delay <var>ticks</var>x<var>ticks-per-second</var> {<var>&lt;</var>} {<var>&gt;</var>}</h3></div><p class="magick-description">display the next image after pausing.</p><p>This option is useful for regulating the animation of image sequences<var>ticks/ticks-per-second</var> seconds must expire before the display of thenext image. The default is no delay between each showing of the imagesequence.  The default ticks-per-second is 100.</p><p>Use <code>&gt;</code> to change the image delay <var>only</var> if its currentvalue exceeds the given delay. <code>&lt;</code> changes the image delay<var>only</var> if current value is less than the given delay.  For example, ifyou specify <code>30&gt;</code> and the image delay is 20, the image delay doesnot change. However, if the image delay is 40 or 50, the delay it is changedto 30. Enclose the given delay in quotation marks to prevent the<code>&lt;</code> or <code>&gt;</code> from being interpreted by your shell asa file redirection.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="delete"></a>-delete <var>indexes</var></h3></div><p class="magick-description">delete the images specified by index, from the image sequence.</p><p>Specify the image by its index in the sequence.  The first image is index0.  Negative indexes are relative to the end of the sequence, for example, -1represents the last image of the sequence.  Specify a range of images witha dash (e.g. 0-4).  Separate indexes with a comma (e.g. 0,2).  Use<code>+delete</code> to delete the last image in the current image sequence.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="density"></a>-density <var>width</var><br>-density <var>width</var>x<var>height</var></h3></div><p class="magick-description">Set the horizontal and vertical resolution of an image for rendering to devices.</p><p>This option specifies the image resolution to store while encoding a rasterimage or the canvas resolution while rendering (reading) vector formats suchas Postscript, PDF, WMF, and SVG into a raster image. Image resolutionprovides the unit of measure to apply when rendering to an output device orraster image. The default unit of measure is in dots per inch (DPI). The <ahref>-units option may be used to select dots per centimeterinstead.</ahref></p><p>The default resolution is 72 dots per inch, which is equivalent to onepoint per pixel (Macintosh and Postscript standard). Computer screens arenormally 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, usea ruler to measure the width of your screen in inches, and divide by thenumber of horizontal pixels (1024 on a 1024x768 display).</p><p>If the file format supports it, this option may be used to update thestored image resolution. Note that Photoshop stores and obtains imageresolution from a proprietary embedded profile. If this profile is notstripped from the image, then Photoshop will continue to treat the image usingits former resolution, ignoring the image resolution specified in the standardfile header.</p><p>The <a href="command-line-options.html#density">-density</a> option sets an <var>attribute</var> anddoes not alter the underlying raster image. It may be used to adjust therendered size for desktop publishing purposes by adjusting the scale appliedto the pixels. To resize the image so that it is the same size at a differentresolution, use the <a href="command-line-options.html#resample">-resample</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="depth"></a>-depth <var>value</var></h3></div><p class="magick-description">depth of the image.</p><p>This the number of bits in a color sample within a pixel.  Use this optionto 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;">  <h3 class="magick-header"><a id="descend"></a>-descend</h3></div><p class="magick-description">obtain image by descending window hierarchy.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="deskew"></a>-deskew <var>threshold</var></h3></div><p class="magick-description">straighten an image.  A threshold of 40% works for most images.</p><p>Use <a href="command-line-options.html#set">-set</a> <code>option:deskew:auto-crop<var>width</var></code> to auto crop the image.  The set argument is the pixelwidth of the image background (e.g 40).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="despeckle"></a>-despeckle</h3></div><p class="magick-description">reduce the speckles within an image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="direction"></a>-direction <var>type</var></h3></div><p class="magick-description">render text right-to-left or left-to-right.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="displace"></a>-displace <var>horizontal-scale</var><br>-displace <var>horizontal-scale</var>x<var>vertical-scale</var></h3></div><p class="magick-description">shift image pixels as defined by a displacement map.</p><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 ofwhat part of the 'background' image is seen at each point of the overlaidarea.  Much like the displacement map is a 'lens' that redirects light shiningthrough it so as to present a distorted view the original 'background' imagebehind it. </p><p>Any perfect grey areas of the displacement map produce a zerodisplacement of the image. Black areas produce the given maximum negativedisplacement of the lookup point, while white produce a maximum positivedisplacement of the lookup. </p><p>Note that it is the lookup of the 'background' that is displaced, not adisplacement of the image itself. As such an area of the displacement mapcontaining 'white' will have the lookup point 'shifted' by a positive amount,and thus generating a copy of the destination image to the right/downward fromthe correct position.  That is the image will look like it may have been'shifted' in a negative left/upward direction.  Understanding this is a veryimportant in understanding how displacement maps work.  </p><p>The given arguments define the maximum amount of displacement in pixelsthat a particular map can produce. If the displacement scale is large enoughit is also possible to lookup parts of the 'background' image that lie welloutside the bounds of the displacement map itself.  That is you could veryeasily copy a section of the original image from outside the overlay areainto the overlay area. </p><p>The '%' flag makes the displacement scale relative to the size of theoverlay image (100% = half width/height of image). Using '!' switchespercentage 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 thegiven scaling values will determine a single direction (vector) in whichdisplacements can occur (positively or negatively).  However, if you alsospecify a third image which is normally used as a <var>mask</var>,the <var>composite image</var> is used for horizontal Xdisplacement, while the <var>mask image</var> is used for vertical Ydisplacement.  This allows you to define completely different displacementvalues for the X and Y directions, and allowing you to lookup any point withinthe  <var>scale</var> bounds.  In other words each pixel can lookupany other nearby pixel, producing complex 2 dimensional displacements, ratherthan a simple 1 dimensional vector displacements. </p><p>Alternatively rather than supplying two separate images, as of IM v6.4.4-0,you can use the 'red' channel of the overlay image to specify the horizontalor 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 amask the transparency of the destination image. However areas outside theoverlaid areas will not be effected. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="display"></a>-display <var>host:display[.screen]</var></h3></div><p class="magick-description">Specifies the X server to contact.</p><p>This option is used with convert for obtaining image or font from thisX server. See <var>X(1)</var>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="dispose"></a>-dispose <var>method</var></h3></div><p class="magick-description">define the GIF disposal image setting for images that are being created or read in. </p><p>The layer disposal method defines the way each the displayed image is to bemodified after the current 'frame' of an animation has finished beingdisplayed (after its 'delay' period), but before the next frame on ananimation is to be overlaid onto the display. </p><p>Here are the valid methods:</p><dl class="dl-horizontal"><dt>Undefined</dt><dd>0:  No disposal specified (equivalent to '<code>none</code>').</dd><dt>None</dt><dd>1:  Do not dispose, just overlay next frame image.</dd><dt>Background</dt><dd>2:  Clear the frame area with the background color.</dd><dt>Previous</dt><dd>3:  Clear to the image prior to this frames overlay.</dd></dl><p>You can also use the numbers given above, which is what the GIF formatuses internally to represent the above settings. </p><p>To print a complete list of dispose methods, use <a href="command-line-options.html#list">-list dispose</a>.</p><p>Use <a href="command-line-options.html#dispose">+dispose</a>, turn off the setting and preventresetting the layer disposal methods of images being read in. </p><p>Use <a href="command-line-options.html#set">-set</a> '<code>dispose</code>' method to set the imagedisposal method for images already in memory.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="dissimilarity-threshold"></a>-dissimilarity-threshold <var>value</var></h3></div><p class="magick-description">maximum RMSE for subimage match (default 0.2).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="dissolve"></a>-dissolve <var>src_percent</var>[x<var>dst_percent</var>]</h3></div><p class="magick-description">dissolve an image into another by the given percent.</p><p>The opacity of the composite image is multiplied by the given percent, thenit is composited 'over' the main image.  If <var>src_percent</var>is greater than 100, start dissolving the main image so it becomestransparent at a value of '<code>200</code>'.  If both percentagesare 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 twoimages, you would need to use dissolve values of '50,100'.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="distort"></a>-distort <var>method arguments</var></h3></div><p class="magick-description">distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p><p>The <var>arguments</var> is a single string containing a listof floating point numbers separated by commas or spaces.  The number ofand meaning of the floating point values depends on the distortion <var>method</var> being used. </p><p>Choose from these distortion types:</p><table class="table table-condensed table-striped">  <tr>    <th style="width: 8%">Method</th>    <th>Description</th>  </tr>  <tr>    <td>ScaleRotateTranslate <br> SRT</td>    <td>       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 'Affine' 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>       <dl class="dl-horizontal">       <dt>2:</dt><dd><var>Scale   Angle</var></dd>       <dt>3:</dt><dd><var>X,Y     Angle</var></dd>       <dt>4:</dt><dd><var>X,Y   Scale   Angle</var></dd>       <dt>5:</dt> <dd><var>X,Y   ScaleX,ScaleY   Angle</var></dd>       <dt>6:</dt> <dd><var>X,Y   Scale   Angle   NewX,NewY</var></dd>       <dt>7:</dt> <dd><var>X,Y   ScaleX,ScaleY   Angle NewX,NewY</var></dd>       </dl>       This is actually an alternative way of specifying a 2 dimensional linear       'Affine' or 'AffineProjection' distortion.  </td> </tr>  <tr>    <td>Affine</td>    <td>       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 'AffineProjection' and 'SRT'       distortions. <br>       More than 3 sets given control point pairs (12 numbers) is least       squares fitted to best match a linear 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>    <td>AffineProjection</td>    <td>       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.       <p class="text-center"><var>       s<sub>x</sub>, r<sub>x</sub>,       r<sub>y</sub>, s<sub>y</sub>,       t<sub>x</sub>, t<sub>y</sub>       </var></p>       See <a href="command-line-options.html#affine">-affine</a> setting for more detail, and       meanings of these coefficients. <br>       The distortions 'Affine' and 'SRT' 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="command-line-options.html#verbose">-verbose</a> setting with those other variants.  </td>  </tr>  <tr>    <td>BilinearForward<br>    BilinearReverse</td>    <td>       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 'BilinearForward' is used to map rectangles to any       quadrilateral, while the 'BilinearReverse' form maps any       quadrilateral to a rectangle, while preserving the straight line edges       in each case.  <br>       Note that 'BilinearForward' can generate invalid pixels       which will be colored using the <a href="command-line-options.html#mattecolor">-mattecolor</a>       color setting.  Also if the quadrilateral becomes 'flipped' the image       may disappear. <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>    <td>Perspective</td>    <td>       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 panorama       effects).  Less than 4 sets will fall back to a 'Affine'       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="command-line-options.html#mattecolor">-mattecolor</a> setting. </td>  </tr>  <tr>    <td>PerspectiveProjection  </td>    <td>       Do a 'Perspective' distortion biased on a set of 8       pre-calculated coefficients. You can get these coefficients by looking       at the <a href="command-line-options.html#verbose">-verbose</a> output of a       'Perspective' 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>    <td>Arc</td>    <td>       Arc the image (variation of polar mapping) over the angle given around       a circle.       <p></p><dl class="dl-horizontal">       <dt>arc_angle</dt>           <dd>The angle over which to arc the image side-to-side</dd>       <dt>rotate_angle</dt>           <dd>Angle to rotate resulting image from vertical center</dd>       <dt>top_radius</dt>           <dd>Set top edge of source image at this radius</dd>       <dt>bottom_radius </dt>           <dd>Set bottom edge to this radius (radial scaling)</dd>       </dl>       The resulting image is always resized to best fit the resulting image,       (as if using <a href="command-line-options.html#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>    <td>Polar</td>    <td>       Like 'Arc' 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: <var>Rmax,Rmin CenterX,CenterY, start,end_angle</var> <br>       All arguments are optional. With <var>Rmin</var> defaulting to zero, the       center to the center of the image, and the angles going from -180 (top)       to +180 (top).  If <var>Rmax</var> is given the special value of       '0', 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       '-1' 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 'DePolar' with       the same arguments. <br>       If the plus form of distort (<a href="command-line-options.html#distort">+distort</a>) is used       output image center will default to 0,0 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>    <td>DePolar</td>    <td>       Uses the same arguments and meanings as a 'Polar' distortion       but generates the reverse Polar to Cartesian distortion. <br>       The special <var>Rmax</var> setting of '0' may however clip       the corners of the input image.  However using the special       <var>Rmax</var> setting of '-1' (maximum center to corner       distance) will ensure the whole distorted image is preserved in the       generated result, so that the same argument to 'Polar' 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>    <td>Barrel</td>    <td>       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 barrel or pin-cushion distortion appropriate to       correct radial lens distortions.  That is in photographs, make straight       lines straight again. <br>       <p class="text-center">Arguments: <var>A   B   C</var>   [ <var>D</var>   [       <var>X</var> , <var>Y</var> ] ] <br>       or <var>A<sub>x</sub> B<sub>x</sub> C<sub>x</sub> D<sub>x</sub>         A<sub>y</sub> B<sub>y</sub> C<sub>y</sub> D<sub>y</sub></var>         [ <var>X</var> , <var>Y</var> ] </p>       So that it forms the function       <p class="text-center">Rsrc = r * ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +                               <var>C</var>*r + <var>D</var> )</p>       Where <var>X</var>,<var>Y</var> 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>    <td>BarrelInverse</td>    <td>       This is very similar to 'Barrel' with the same set of       arguments, and argument handling.  However it uses the inverse       of the radial polynomial,       so that it forms the function       <p class="text-center">Rsrc = r / ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +                               <var>C</var>*r + <var>D</var> )</p>       Note that this is not the reverse of the 'Barrel'       distortion, just a different barrel-like radial distortion method.       </td>  </tr>  <tr>    <td>Shepards</td>    <td>       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 the surface of the jelly. <br>       Internally it is equivalent to generating a displacement map (see <a href="command-line-options.html#displace">-displace</a>) for source image color look-up using       the <a href="command-line-options.html#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="command-line-options.html#list">-listdistort</a>.</p><p>Many of the above distortion methods such as '<code>Affine</code>','<code>Perspective</code>', and '<code>Shepards</code>' use a list control pointsdefining how these points in the given image should be distorted in thedestination image. Each set of four floating point values represent a sourceimage coordinate, followed immediately by the destination image coordinate.This produces a list of values such as...</p><p class="text-center"><var>      U<sub>1</sub>,V<sub>1</sub> X<sub>1</sub>,Y<sub>1</sub>        U<sub>2</sub>,V<sub>2</sub> X<sub>2</sub>,Y<sub>2</sub>        U<sub>3</sub>,V<sub>3</sub> X<sub>3</sub>,Y<sub>3</sub>        ...        U<sub>n</sub>,V<sub>n</sub> X<sub>n</sub>,Y<sub>n</sub>  </var></p><p>where <var>U,V</var> on the source image is mapped to <var>X,Y</var> on thedestination image. </p><p>For example, to warp an image using '<code>perspective</code>' distortion,needs a list of at least 4 sets of coordinates, or 16 numbers.  Here is theperspective distortion of the built-in "rose:" image. Note how spaces wereused to group the 4 sets of coordinate pairs, to make it easier to read andunderstand.</p><pre>convert rose:  -virtual-pixel black \  -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \   rose_3d_rotated.gif"</pre><p>If more that the required number of coordinate pairs are given fora distortion, the distortion method is 'least squares' fitted to produce thebest result for all the coordinate pairs given. If less than the ideal numberof points are given, the distort will generally fall back to a simpler form ofdistortion that can handles the smaller number of coordinates (usually a linear'<code>Affine</code>' distortion). </p><p>By using more coordinates you can make use of image registration tool tofind 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 a cylindricalresampling <a href="command-line-options.html#filter">-filter</a>, using a special technique known asEWA resampling. This produces very high quality results, especially whenimages become smaller (minified) in the output, which is very common whenusing '<code>perspective</code>' distortion. For example here we viewa infinitely tiled 'plane' all the way to the horizon. </p><pre>convert -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \  -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \   checks_tiled.jpg</pre><p>Note that a infinitely tiled perspective images involving the horizon canbe very slow, because of the number of pixels that are compressed to generateeach individual pixel close to the 'horizon'.  You can turn off EWAresampling, by specifying the special <a href="command-line-options.html#filter">-filter</a> setting of'<code>point</code>' (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 lastexample, <a href="command-line-options.html#distort">-distort</a> will use the current <ahref>-mattecolor setting for these pixels. If you do notwhat these pixels to be visible, set the color to match the rest of theground. </ahref></p><p>The output image size will by default be the same as the input image.  Thismeans that if the part of the distorted image falls outside the viewed area ofthe 'distorted space', those parts is clipped and lost.  However if you usethe plus form of the operator (<a href="command-line-options.html#distort">+distort</a>) the operatorwill attempt (if possible) to show the whole of the distorted image, whileretaining a correct 'virtual canvas' offset, for image layering. This offsetmay need to be removed using <a href="command-line-options.html#repage">+repage</a>, to remove if itis unwanted. </p><p>Setting <a href="command-line-options.html#verbose">-verbose</a> setting, will cause <ahref>-distort to attempt to output the internal coefficients,and the <a href="command-line-options.html#fx">-fx</a> equivalent to the distortion, for expert study,and debugging purposes. This many not be available for all distorts. </ahref></p><p>You can alternatively specify a special "<code><a href="command-line-options.html#define">-define</a> distort:viewport={geometry_string}</code>" setting which willspecify the size and the offset of the generated 'viewport' image of thedistorted image space.</p><p>Setting a "<code><a href="command-line-options.html#define">-define</a>distort:scale={scale_factor}</code>" will scale the output image (viewport orotherwise) by that factor without changing the viewed contents of thedistorted image. This can be used either for 'super-sampling' the image fora higher quality result, or for panning and zooming around the image (withappropriate viewport changes, or post-distort cropping and resizing). </p><p>Setting "<code><a href="command-line-options.html#define">-define</a> resample:verbose=1</code>"will output the cylindrical filter lookup table created by the EWA (EllipticalWeighted Average) resampling algorithm. Note this table uses a squared radiuslookup value. This is typically only used for debugging EWA resampling. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="distribute-cache"></a>-distribute-cache <var>port</var></h3></div><p class="magick-description">launch a distributed pixel cache server. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="dither"></a>-dither <var>method</var></h3></div><p class="magick-description">Apply a Riemersma or Floyd-Steinberg error diffusion dither toimages when general color reduction is applied via an option, or automagicallywhen saving to specific formats. This enabled by default.</p><p>Dithering places two or more colors in neighboring pixels so that to theeye a closer approximation of the images original color is reproduced. Thisreduces the number of colors needed to reproduce the image but at the cost ofa lower level pattern of colors. Error diffusion dithers can use any set ofcolors (generated or user defined) to an image.  </p><p>Dithering is turned on by default, to turn it off use the plus form of thesetting, <a href="command-line-options.html#dither">+dither</a>. This will also also render PostScriptwithout text or graphic aliasing. Disabling dithering often (but not always)leads to faster process, a smaller number of colors, but more cartoon likeimage coloring.  Generally resulting in 'color banding' effects in areas withcolor gradients. </p><p>The color reduction operators <a href="command-line-options.html#colors">-colors</a>, <ahref>-monochrome, <a href="command-line-options.html#remap%20">-remap</a>, and <ahref>-posterize, apply dithering to images using the reducedcolor set they created. These operators are also used as part of automaticcolor reduction when saving images to formats with limited color support, suchas <code>GIF:</code>, <code>XBM:</code>, and others, so dithering may also be usedin these cases. </ahref></ahref></p><p>Alternatively you can use <a href="command-line-options.html#random-threshold">-random-threshold</a>to generate purely random dither. Or use <ahref>-ordered-dither to apply threshold mapped ditherpatterns, using uniform color maps, rather than specific color maps. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="draw"></a>-draw <var>string</var></h3></div><p class="magick-description">Annotate an image with one or more graphic primitives.</p><p>Use this option to annotate or decorate an image with one or more graphicprimitives. The primitives include shapes, text, transformations, and pixeloperations.</p><p>The shape primitives:</p><dl class="dl-horizontal"><dt>point</dt><dd>          x,y</dd><dt>line</dt><dd>           x0,y0 x1,y1</dd><dt>rectangle</dt><dd>      x0,y0 x1,y1</dd><dt>roundRectangle</dt><dd> x0,y0 x1,y1 wc,hc</dd><dt>arc</dt><dd>            x0,y0 x1,y1 a0,a1</dd><dt>ellipse</dt><dd>        x0,y0 rx,ry a0,a1</dd><dt>circle</dt><dd>         x0,y0 x1,y1</dd><dt>polyline</dt><dd>       x0,y0  ...  xn,yn</dd><dt>polygon</dt><dd>        x0,y0  ...  xn,yn</dd><dt>bezier</dt><dd>         x0,y0  ...  xn,yn</dd><dt>path</dt><dd>specification  </dd><dt>image</dt><dd>          operator x0,y0 w,h filename</dd></dl><p>The text primitive:</p><dl class="dl-horizontal"><dt>text</dt><dd>x0,y0 string</dd></dl><p>The text gravity primitive:</p><dl class="dl-horizontal"><dt>gravity</dt><dd>NorthWest, North, NorthEast, West, Center, East, SouthWest, South, or SouthEast</dd></dl><p>The text gravity primitive only affects the placement of text and does notinteract with the other primitives.  It is equivalent to using the <ahref>-gravity command-line option, except that it is limited inscope to the <a href="command-line-options.html#draw">-draw</a> option in which it appears.</ahref></p><p>The transformation primitives:</p><dl class="dl-horizontal"><dt>rotate</dt><dd>degrees</dd><dt>translate</dt><dd>dx,dy</dd><dt>scale</dt><dd>sx,sy</dd><dt>skewX</dt><dd>degrees</dd><dt>skewY</dt><dd>degrees</dd></dl><p>The pixel operation primitives:</p><dl class="dl-horizontal"><dt>color</dt><dd>x0,y0 method</dd><dt>matte</dt><dd>x0,y0 method</dd></dl><p>The shape primitives are drawn in the color specified by the preceding <ahref>-fill setting.  For unfilled shapes, use <ahref>-fill none.  You can optionally control the stroke (the"outline" of a shape) with the <a href="command-line-options.html#stroke">-stroke</a> and <ahref>-strokewidth settings.</ahref></ahref></ahref></p><p>A <code>point</code> primitive is specified by a single <var>point</var> in thepixel plane, that is, by an ordered pair of integer coordinates,<var>x</var>,<var>y</var>. (As it involves only a single pixel, a <code>point</code>primitive is not affected by <a href="command-line-options.html#stroke">-stroke</a> or <ahref>-strokewidth.)</ahref></p><p>A <code>line</code> primitive requires a start point and end point.</p><p>A <code>rectangle</code> primitive is specified by the pair of points at theupper left and lower right corners.</p><p>A <code>roundRectangle</code> primitive takes the same corner points asa <code>rectangle</code> followed by the width and height of the rounded cornersto be removed.</p><p>The <code>circle</code> primitive makes a disk (filled) or circle (unfilled).Give the center and any point on the perimeter (boundary).</p><p>The <code>arc</code> primitive is used to inscribe an elliptical segment into a given rectangle. An <code>arc</code> requires the two corners used for<code>rectangle</code> (see above) followed by the start and end angles of thearc of the segment segment (e.g. 130,30 200,100 45,90). The start and endpoints produced are then joined with a line segment and the resulting segmentof an ellipse is filled.</p><p>Use <code>ellipse</code> to draw a partial (or whole) ellipse. Give thecenter point, the horizontal and vertical "radii" (the <var>semi-axes</var> ofthe ellipse) and start and end angles in degrees (e.g. 100,100 100,1500,360).</p><p>The <code>polyline</code> and <code>polygon</code> primitives require three ormore points to define their perimeters. A <code>polyline</code> is simplya <code>polygon</code> in which the final point is not stroked to the startpoint. When unfilled, this is a <var>polygonal line</var>. If the <ahref>-stroke setting is <code>none</code> (the default), thena <code>polyline</code> is identical to a <code>polygon</code>.  </ahref></p><p>A <var>coordinate</var> is a pair of integers separated by a space oroptional comma. </p><p>As an example, to define a circle centered at 100,100 that extends to150,150 use:</p><pre>-draw 'circle 100,100 150,150'</pre><p>The <code>Bezier</code> primitive creates a spline curve and requires threeor points to define its shape. The first and last points are the<var>knots</var> and these points are attained by the curve, while anyintermediate coordinates are <var>control points</var>. If two control pointsare specified, the line between each end knot and its sequentially respectivecontrol point determines the tangent direction of the curve at that end. Ifone control point is specified, the lines from the end knots to the onecontrol point determines the tangent directions of the curve at each end. Ifmore than two control points are specified, then the additional control pointsact in combination to determine the intermediate shape of the curve. In orderto draw complex curves, it is highly recommended either to use the<code>path</code> primitive or to draw multiple four-point bezier segments withthe start and end knots of each successive segment repeated. For example:</p><pre>-draw 'bezier 20,50 45,100 45,0 70,50'-draw 'bezier 70,50 95,100 95,0 120,50'</pre><p>A <code>path</code> represents an outline of an object, defined in terms ofmoveto (set a new current point), lineto (draw a straight line), curveto (drawa Bezier curve), arc (elliptical or circular arc) and closepath (close thecurrent 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 byone or more line or curve operations) are possible to allow effects such as<var>donut holes</var> in objects. (See <ahref>Paths.)</ahref></p><p>Use <code>image</code> to composite an image with another image. Follow theimage keyword with the composite operator, image location, image size, andfilename:</p><pre>-draw 'image SrcOver 100,100 225,225 image.jpg'</pre><p>You can use 0,0 for the image size, which means to use the actualdimensions found in the image header. Otherwise, it is scaled to the givendimensions. See <a href="compose.html">Alpha Compositing</a> fora detailed discussion of alpha composition methods that are available. </p><p>The "special augmented compose operators" such as "dissolve" that requirearguments cannot be used at present with the <code>-draw image</code> option. </p><p>Use <code>text</code> to annotate an image with text. Follow the textcoordinates with a string. If the string has embedded spaces, enclose it insingle or double quotes.</p><p>For example, the following annotates the image with <code>Works likemagick!</code> for an image titled <code>bird.miff</code>. </p><pre>-draw "text 100,100 'Works like magick!' "</pre><p>See the <a href="command-line-options.html#annotate">-annotate</a> option for another convenient wayto annotate an image with text.</p><p>The <code>rotate</code> primitive rotates subsequent shape primitives andtext primitives about the origin of the main image. If the <ahref>-region option precedes the <a href="command-line-options.html#draw">-draw</a>option, the origin for transformations is the upper left corner of theregion.</ahref></p><p>The <code>translate</code> primitive translates subsequent shape and textprimitives.</p><p>The <code>scale</code> primitive scales them.</p><p>The <code>skewX</code> and <code>skewY</code> primitives skew them with respectto the origin of the main image or the region.</p><p>The transformations modify the current affine matrix, which is initializedfrom the initial affine matrix defined by the <a href="command-line-options.html#affine">-affine</a>option. Transformations are cumulative within the <a href="command-line-options.html#draw">-draw</a>option. The initial affine matrix is not affected; that matrix is only changedby the appearance of another <a href="command-line-options.html#affine">-affine</a> option. If another<a href="command-line-options.html#draw">-draw</a> option appears, the current affine matrix isreinitialized from the initial affine matrix.</p><p>Use the <code>color</code> primitive to change the color of a pixel to thefill color (see <a href="command-line-options.html#fill">-fill</a>). Follow the pixel coordinate witha method:</p><pre>pointreplacefloodfillfilltoborderreset</pre><p>Consider the target pixel as that specified by your coordinate. The<code>point</code> method recolors the target pixel. The <code>replace</code>method recolors any pixel that matches the color of the target pixel.<code>Floodfill</code> recolors any pixel that matches the color of the targetpixel and is a neighbor, whereas <code>filltoborder</code> recolors any neighborpixel that is not the border color. Finally, <code>reset</code> recolors allpixels.</p><p>Use <code>matte</code> to the change the pixel matte value to transparent.Follow the pixel coordinate with a method (see the <code>color</code> primitivefor a description of methods). The <code>point</code> method changes the mattevalue of the target pixel. The <code>replace</code> method changes the mattevalue of any pixel that matches the color of the target pixel.<code>Floodfill</code> changes the matte value of any pixel that matches thecolor of the target pixel and is a neighbor, whereas <code>filltoborder</code>changes the matte value of any neighbor pixel that is not the border color (<ahref>-bordercolor). Finally <code>reset</code> changes thematte value of all pixels.</ahref></p><p>You can set the primitive color, font, and font bounding box color with <ahref>-fill, <a href="command-line-options.html#font">-font</a>, and <a href="command-line-options.html#box">-box</a>respectively.  Options are processed in command line order so be sure to usethese options <var>before</var> the <a href="command-line-options.html#draw">-draw</a> option.</ahref></p><p>Strings that begin with a number must be quoted (e.g. use '1.png' ratherthan 1.png).</p><p>Drawing primitives conform to the <a href="magick-vector-graphics.html">MagickVector Graphics</a> format.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="duplicate"></a>-duplicate <var>count,indexes</var></h3></div><p class="magick-description">duplicate an image one or more times.</p><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 thesequence, for example, -1 represents the last image of the sequence.  Specifya range of images with a dash (e.g. 0-4).  Separate indexes with a comma (e.g.0,2).  Use <code>+duplicate</code> to duplicate the last image in the currentimage sequence.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="edge"></a>-edge <var>radius</var></h3></div><p class="magick-description">detect edges within an image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="emboss"></a>-emboss <var>radius</var></h3></div><p class="magick-description">emboss an image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="encipher"></a>-encipher <var>filename</var></h3></div><p class="magick-description">Encipher pixels for later deciphering by <a href="command-line-options.html#decipher">-decipher</a>.</p><p>Get the passphrase from the file specified by <var>filename</var>.</p><p>For more information, see the webpage, <ahref>ImageMagick: Encipher orDecipher an Image.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="encoding"></a>-encoding <var>type</var></h3></div><p class="magick-description">specify the text encoding.</p><p>Choose from</p><pre>AdobeCustom     AdobeExpertAdobeStandard   AppleRomanBIG5            GB2312Latin 2         NoneSJIScode        SymbolUnicode         Wansung</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="endian"></a>-endian <var>type</var></h3></div><p class="magick-description">Specify endianness (<code>MSB</code> or <code>LSB</code>) of the image.</p><p>To print a complete list of endian types, use the <a href="command-line-options.html#list">-list endian</a> option.</p><p>Use <a href="command-line-options.html#endian">+endian</a> to revert to unspecified endianness.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="enhance"></a>-enhance</h3></div><p class="magick-description">Apply a digital filter to enhance a noisy image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="equalize"></a>-equalize</h3></div><p class="magick-description">perform histogram equalization on the image channel-by-channel.</p><p>To perform histogram equalization on all channels in concert, transform theimage into some other color space, such as HSL, OHTA, YIQ or YUV, thenequalize the appropriate intensity-like channel, then convert back to RGB.</p><p>For example using HSL, we have: ... <code>-colorspace HSL -channel lightness-equalize -colorspace RGB</code> ...</p><p>For YIQ, YUV and OHTA use the red channel. For example, OHTA is a principalcomponents transformation that puts most of the information in the firstchannel. Here we have ... <code>-colorspace OHTA -channel red -equalize-colorspace RGB</code> ...</p><div style="margin: auto;">  <h3 class="magick-header"><a id="evaluate"></a>-evaluate <var>operator value</var></h3></div><p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, or logical expression.</p><p>(See the <a href="command-line-options.html#function">-function</a> operator for somemulti-parameter functions. See the <a href="command-line-options.html#fx">-fx</a> operator if moreelaborate calculations are needed.)</p><p>The behaviors of each <var>operator</var> are summarized in thefollowing list. For brevity, the numerical value of a "pixel" referred tobelow is the value of the corresponding channel of that pixel, whilea "normalized pixel" is that number divided by the maximum(installation-dependent) value <var>QuantumRange</var>. (Ifnormalized pixels are used, they are restored, following the othercalculations, to the full range by multiplying by <var>QuantumRange</var>.)</p><table class="table table-condensed table-striped">  <col width="25%">  <col width="75%">  <thead>  <tr>  <th><var>operator</var></th>  <th>Summary (see further below for details)</th>  </tr>  </thead>  <tbody>    <tr><td>Abs </td>             <td>Add <var>value</var> to pixels and return absolute value. </td></tr>    <tr><td>Add </td>             <td>Add <var>value</var> to pixels. </td></tr>    <tr><td>AddModulus </td>      <td>Add <var>value</var> to pixels modulo <var>QuantumRange</var>.</td></tr>    <tr><td>And  </td>            <td>Binary AND of pixels with <var>value</var>.</td></tr>    <tr><td>Cos, Cosine </td>             <td>Apply cosine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>    <tr><td>Divide  </td>         <td>Divide pixels by <var>value</var>.</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 <var>value</var> bits (i.e., multiply pixels by 2<sup><var>value</var></sup>).</td></tr>    <tr><td>Log  </td>            <td>Apply scaled logarithm to normalized pixels.</td></tr>    <tr><td>Max  </td>            <td>Set pixels to maximum of <var>value</var> and current pixel <var>value</var> (i.e. set any pixels currently less than <var>value</var> to <var>value</var>).</td></tr>    <tr><td>Mean  </td>            <td>Add the <var>value</var> 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>Set pixels to minimum of <var>value</var> and current pixel <var>value</var> (i.e. set any pixels currently greater than <var>value</var> to <var>value</var>).</td></tr>    <tr><td>Multiply </td>        <td>Multiply pixels by <var>value</var>.</td></tr>    <tr><td>Or  </td>             <td>Binary OR of pixels with <var>value</var>.</td></tr>    <tr><td>Pow </td>             <td>Raise normalized pixels to the power <var>value</var>.</td></tr>    <tr><td>RightShift </td>      <td>Shift the pixel values right by <var>value</var> bits (i.e., divide pixels by 2<sup><var>value</var></sup>).</td></tr>    <tr><td>RMS</td>            <td>Square the pixel and add the <var>value</var>.</td></tr>    <tr><td>RootMeanSquare</td>            <td>Square the pixel and add the <var>value</var>.</td></tr>    <tr><td>Set </td>             <td>Set pixel equal to <var>value</var>.</td></tr>    <tr><td>Sin, Sine </td>             <td>Apply sine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>    <tr><td>Subtract </td>        <td>Subtract <var>value</var> from pixels.</td></tr>    <tr><td>Xor </td>             <td>Binary XOR of pixels with <var>value.</var></td></tr>    <tr><td> </td><td> </td></tr>   <tr><td>Gaussian-noise</td><td> </td></tr>   <tr><td>Impulse-noise</td><td> </td></tr>   <tr><td>Laplacian-noise</td><td> </td></tr>   <tr><td>Multiplicative-noise</td>      <td>(These are equivalent to the corresponding <a href="command-line-options.html#noise">-noise</a> operators.)</td></tr>   <tr><td>PoissonNoise</td><td> </td></tr>   <tr><td>Uniform-noise</td><td> </td></tr>    <tr><td> </td><td> </td></tr>   <tr><td>Threshold </td>       <td>Threshold pixels larger than <var>value</var>.</td></tr>   <tr><td>ThresholdBlack </td>  <td>Threshold pixels to zero values equal to or below <var>value</var>.</td></tr>   <tr><td>ThresholdWhite </td>  <td>Threshold pixels to maximum values above <var>value</var>.  </td></tr> </tbody> </table><p>The specified functions are applied only to each previously set <ahref>-channel in the image. If necessary, the results of thecalculations are truncated (clipped) to fit in the interval [0, <var>QuantumRange</var>].  The transparency channel of the image isrepresented as a 'alpha' values (0 = fully transparent), so, for example, a<code>Divide</code> by 2 of the alpha channel will make the imagesemi-transparent.  Append the percent symbol '<code>%</code>' to specify a valueas a percentage of the <var>QuantumRange</var>.</ahref></p><p>To print a complete list of <a href="command-line-options.html#evaluate">-evaluate</a> operators, use<a href="command-line-options.html#list">-list evaluate</a>.</p><p>The results of the <code>Add</code>, <code>Subtract</code> and<code>Multiply</code> methods can also be achieved using either the <ahref>-level or the <a href="command-line-options.html#level">+level</a> operator, withappropriate argument, to linearly modify the overall range of color values.Please note, however, that <a href="command-line-options.html#level">-level</a> treats transparency as'matte' values (0 = opaque), while <a href="command-line-options.html#level">-evaluate</a> works with'alpha' values.</ahref></p><p><code>AddModulus</code> has been added as of ImageMagick 6.4.8-4 and providesaddition modulo the <var>QuantumRange</var>. It is thereforeequivalent to <code>Add</code> unless the resulting pixel value is outside theinterval [0, <var>QuantumRange</var>]. </p><p><code>Exp or Exponential</code> has been added as of ImageMagick 6.6.5-1 andworks on normalized pixel values. The <var>value</var> used with<code>Exp</code> should be negative so as to produce a decaying exponentialfunction. Non-negative values will always produce results larger unity andthus outside the interval [0, <var>QuantumRange</var>]. Theformula is expressed below. </p><p class="text-center">exp(<var>value</var> × <b><var>u</var></b>)</p><p> If the input image is squared, for example, using <a href="command-line-options.html#-function">-function polynomial "2 0 0"</a>, then a decaying Gaussian function will bethe result.</p><p><code>Log</code> has been added as of ImageMagick 6.4.2-1 and works onnormalized pixel values. This a <var>scaled</var> log function. The <var>value</var> used with <code>Log</code> provides a <var>scalingfactor</var> that adjusts the curvature in the graph of the log function. Theformula applied to a normalized value <b><var>u</var></b> is below. </p><p class="text-center">log(<var>value</var> × <b><var>u</var></b> + 1) / log(<var>value</var> + 1)</p><p><code>Pow</code> has been added as of ImageMagick 6.4.1-9, and works onnormalized pixel values. Note that <code>Pow</code> is related to the <ahref>-gamma operator. For example, <b>-gamma 2</b> is equivalentto <b>-evaluate pow 0.5</b>, i.e., a 'square root' function. The value usedwith <a href="command-line-options.html#gamma">-gamma</a> is simply the reciprocal of the value usedwith <code>Pow</code>.</ahref></p><p><code>Cosine</code> and <code>Sine</code> was added as of IM v6.4.8-8 andconverts the image values into a value according to a (co)sine wave function.The  synonyms <code>Cos</code> and <code>Sin</code> may also be used.  The outputis biased 50% and normalized by 50% so as to fit in the respective color valuerange.  The <var>value</var> scaling of the <var>period</var> of thefunction (its frequency), and thus determines the number of 'waves' that willbe generated over the input color range.  For example, if the <var>value</var> is 1, the effective period is simply the <var>QuantumRange</var>; but if the <var>value</var> is 2,then the effective period is the <var>half</var> the <var>QuantumRange</var>.</p><p class="text-center">0.5 + 0.5 × cos(2 π <b><var>u</var></b> × <var>value</var>).</p><p>See also the <a href="command-line-options.html#function">-function</a> operator, which is amulti-value version of evaluate. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="evaluate-sequence"></a>-evaluate-sequence <var>operator</var></h3></div><p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, orlogical expression over a sequence of images.</p><p>To print a complete list of <ahref>-evaluate-sequence operators, use <ahref>-list evaluate.</ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="extent"></a>-extent <var>geometry</var></h3></div><p class="magick-description">Set the image size and offset.</p><p>If the image is enlarged, unfilled areas are set to the background color.To position the image, use offsets in the <var>geometry</var>specification or precede with a <a href="command-line-options.html#gravity">-gravity</a> setting.  Tospecify how to compose the image with the background, use <a href="command-line-options.html#compose">-compose</a>.</p><p>This command reduces or expands a JPEG image to fit on an 800x600display.  If the aspect ratio of the input image isn't exactly 4:3, then theimage is centered on an 800x600 black canvas: </p><pre>convert input.jpg -resize 800x600 -background black -compose Copy \   -gravity center -extent 800x600 -quality 92 output.jpg</pre><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="extract"></a>-extract <var>geometry</var></h3></div><p class="magick-description">Extract the specified area from image.</p><p>This option is most useful for extracting a subregion of a very large rawimage.  Note that these two commands are equivalent:</p><pre>convert -size 16000x16000 -depth 8 -extract 640x480+1280+960 \   image.rgb image.png",convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \  image.rgb image.png"</pre><p>If you omit the offsets, as in</p><pre>convert -size 16000x16000 -depth 8 -extract 640x480 \   image.rgb image.png</pre><p>the image is <var>resized</var> to the specified dimensions instead,equivalent to:</p><pre>convert -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png</pre><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="family"></a>-family <var>fontFamily</var></h3></div><p class="magick-description">Set a font family for text.</p><p>This setting suggests a font family that ImageMagick should try to use forrendering 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 <ahref>-font, <a href="command-line-options.html#stretch">-stretch</a>, <ahref>-style, and <a href="command-line-options.html#weight">-weight</a>.  </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="features"></a>-features <var>distance</var></h3></div><p class="magick-description">display (co-occurrence matrix) texture measure features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.</p><pre>Angular Second Moment       Sum EntropyContrast                    EntropyCorrelation                 Difference VarianceSum of Squares Variance     Difference EntropyInverse Difference Moment   Information Measure of Correlation 1Sum Average                 Information Measure of Correlation 2Sum Variance                Maximum Correlation Coefficient</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="fft"></a>-fft</h3></div><p class="magick-description">implements the forward discrete Fourier transform (DFT).</p><p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windowsusers 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 isrepresented as a superposition of complex sinusoidal waves of varyingamplitudes. The image x and y coordinates are the possible frequencies alongthe x and y directions, respectively, and the pixel intensity values arecomplex numbers that correspond to the sinusoidal wave amplitudes. See forexample, <a href="http://en.wikipedia.org/wiki/Fourier_transform">FourierTransform</a>, <a href="http://en.wikipedia.org/wiki/DFT">Discrete FourierTransform</a> and <a href="http://en.wikipedia.org/wiki/FFT">Fast FourierTransform</a>.</p><p>A single image name is provided as output for this option. However, theoutput result will have two components. It is either a two-frame image or twoseparate images, depending upon whether the image format specified supportsmulti-frame images. The reason that we get a dual output result is because thefrequency domain represents an image using complex numbers, which cannot bevisualized directly. Therefore, the complex values are automagically separatedinto a two-component image representation. The first component is themagnitude of the complex number and the second is the phase of the complexnumber. See for example, <ahref>Complex Numbers.</ahref></p><p>The magnitude and phase component images must be specified using imageformats 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 theseformats, except PNG support multi-frame images. So for example,</p><pre>convert image.png -fft fft_image.miff</pre><p>generates a magnitude image as <code>fft_image.miff[0]</code> and a phaseimage as <code>fft_image.miff[1]</code>. Similarly,</p><pre>convert image.png -fft fft_image.png</pre><p>generates a magnitude image as <code>fft_image-0.png</code> and a phase imageas <code>fft_image-1.png</code>. If you prefer this representation, then you canforce any of the other formats to produce two output images by including <ahref>+adjoin following -fft in the command line.</ahref></p><p>The input image can be any size, but if not square and even-dimensioned, itis padded automagically to the larger of the width or height of the inputimage and to an even number of pixels. The padding will occur at the bottomand/or right sides of the input image. The resulting output magnitude andphase images is square at this size. The kind of padding relies on the <ahref>-virtual-pixel setting.</ahref></p><p>Both output components will have dynamic ranges that fit within[0, <var>QuantumRange</var>], so that HDRI need not be enabled.Phase values nominally range from 0 to 2*π, but is scaled to span the fulldynamic range.  (The first few releases had non-HDRI scaled but HDRI notscaled). The magnitude image is not scaled and thus generally will containvery small values. As such, the image normally will appear totally black. Inorder to view any detail, the magnitude image typically is enhanced with a logfunction into what is usually called the spectrum. A log function is used toenhance the darker values more in comparison to the lighter values. This canbe done, for example, as follows:</p><pre>convert fft_image.miff[0] -contrast-stretch 0 \  -evaluate log 1000 fft_image_spectrum.png"</pre><p>where either <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> 0 or <ahref>-auto-level is used to scale the image to full dynamicrange, first. The argument to the <a href="command-line-options.html#evaluate">-evaluate</a> logtypically is specified between 100 and 10,000, depending upon the amount ofdetail that one wants to bring out in the spectrum. Larger values produce morevisible detail. Too much detail, however, may hide the important features.</ahref></p><p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required touse <a href="command-line-options.html#fft">-fft</a>.</p><p>Use <a href="command-line-options.html#fft">+fft</a> to produce two output images that are the realand 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 mustuse either MIFF, TIF, PFM or MPC formats for the real and imaginary componentresults, since they are formats that preserve both negative and fractionalvalues without clipping them or truncating the fractional part. With eitherMIFF or TIF, one should add -define quantum:format=32, to allow those imagetypes to work properly in HDRI mode without clipping.</p><p>The real and imaginary component images resulting from <ahref>+fft are also square, even dimensioned images due to the samepadding that was discussed above for the magnitude and phase componentimages.</ahref></p><p>See the discussion on HDRI implementations of ImageMagick on the page <ahref>High Dynamic-Range Images. For moreabout HDRI go the ImageMagick <ahref>Usage pages, <ahref>Fred's Fourier Processing With ImageMagick page or this <a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a> entry.  </ahref></ahref></ahref></p><p>By default the FFT is normalized (and the IFT is not). Use "<code><a href="command-line-options.html#define">-define</a> fourier:normalize=forward</code> to explicitly normalize the FFT and unnormalize the IFT.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="fill"></a>-fill <var>color</var></h3></div><p class="magick-description">color to use when filling a graphic primitive.</p><p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,HSL, HSLA, CMYK, or CMYKA specification.  See <a href="color.html">Color Names</a> fora description of how to properly specify the color argument.</p><p>Enclose the color specification in quotation marks to prevent the "#" orthe parentheses from being interpreted by your shell.</p><p>For example,</p><pre>-fill blue-fill "#ddddff"-fill "rgb(255,255,255)"</pre><p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p><p>To print a complete list of color names, use the <a href="command-line-options.html#list">-list color</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="filter"></a>-filter <var>type</var></h3></div><p class="magick-description">Use this <var>type</var> of filter when resizing or distorting an image.</p><p>Use this option to affect the resizing operation of an image duringoperations such as <a href="command-line-options.html#resize">-resize</a> and <a href="command-line-options.html#distort">-distort</a>. For example you can use a simple resize filter such as:</p><pre>Point       Hermite       CubicBox         Gaussian      CatromTriangle    Quadratic     Mitchell</pre><p>The <code>Bessel</code> and <code>Sinc</code> filter is also provided (as wellas a faster <code>SincFast</code> equivalent form).  However these filters aregenerally useless on their own as they are infinite filters that are beingclipped to the filters support size. Their direct use is not recommendedexcept via expert settings (see below). </p><p>Instead these special filter functions are typically windowed by a windowingfunction that the <a href="command-line-options.html#filter">-filter</a> setting defines.   That isusing these functions will define a 'Windowed' filter, appropriate to theoperator involved.  Windowed filters include: </p><pre>Lanczos       Hamming       ParzenBlackman      Kaiser        WelshHanning       Bartlett      Bohman</pre><p>Also one special self-windowing filter is also provided<code>Lagrange</code>, which will automagically re-adjust its function dependingon 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<code>Mitchell</code> for a colormapped image, an image with a matte channel, orif the image is enlarged.  Otherwise the filter default to<code>Lanczos</code>.</p><p>To print a complete list of resize filters, use the <a href="command-line-options.html#list">-listfilter</a> option.</p><p>You can modify how the filter behaves as it scales your image through theuse of these expert settings (see also <a href="command-line-options.html#define">-define</a> and <ahref>-set):-</ahref></p><table class="table table-condensed table-striped">  <tr>    <td>-define filter:blur=<var>factor</var></td>    <td>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. </td>  </tr>  <tr>    <td>-define filter:support=<var>radius</var></td>    <td>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 'preferred' support size. Some filters like    <code>Lagrange</code> 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.    </td>  </tr>  <tr>    <td>-define filter:lobes=<var>count</var></td>    <td>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.</td>  </tr>  <tr>    <td>-define filter:sigma=<var>value</var></td>    <td>The 'sigma' value used to define the <code>Gaussian</code> filter.  Default    sigma value is '<code>0.5</code>'.  It only effects <code>Gaussian</code> but    does not shrink (but may enlarge) the filter's 'support'.  It can be used    to generate very small blurs but without the filter 'missing' pixels due    to using a small support setting. A larger value of '<code>0.707</code>'    (a value of '1/sqrt(2)') is another common setting. </td>  </tr>  <tr>    <td>-define filter:b=<var>b-spline_factor</var></td>  </tr><tr>    <td>-define filter:c=<var>keys_alpha_factor</var></td>    <td>Redefine the values used for cubic filters such as <code>Cubic</code>,    <code>Catrom</code>, <code>Mitchel</code>, and <code>Hermite</code>, as well as    the <code>Parzen</code> cubic windowing function. If only one of the values    are defined, the other is set so as to generate a 'Cubic-Keys' filter.    The values meaning was defined by a research paper by    Mitchell-Netravali.</td>  </tr>  <tr>    <td>-define filter:kaiser-beta=<var>value</var></td>    <td>The 'alpha' value used to as part of the Kaiser Windowing function.    Default value is '6.5'.  It only effects Kaiser windowing function, and    does not effect any other attributes.    Before ImageMagick v6.7.6-10, this option was known as "filter:alpha", (an    inheritance from the very old "zoom" program). It was changed to bring the    function in line with more modern academic research usage, and better    assign it be more definitive.  </td>  </tr>  <tr>    <td>-define filter:kaiser-alpha=<var>value</var></td>    <td>This value when multiplied by 'PI' is equivalent to "kaiser-beta", and    will override that setting.  It only effects Kaiser windowing function,    and does not effect any other attributes. </td>  </tr>  <tr>    <td>-define filter:filter=<var>filter_function</var></td>    <td>Use this function directly as the weighting filter.  This will allow    you to directly use a windowing function such as <code>Blackman</code>,    as a resampling filter, rather than as its normal usage as a windowing    function.  If defined, no windowing function also defined, the window function is set    to <code>Box</code>). Directly specifying <code>Sinc</code> or <code>Jinc</code>    as a filter will also do this. </td>  </tr>  <tr>    <td>-define filter:window=<var>filter_function</var></td>    <td>The IIR (infinite impulse response) filters <code>Sinc</code> and    <code>Jinc</code> are windowed (brought down to zero over the defined    support range) with the given filter. This allows you to specify a filter    function to be used as a windowing function for these IIR filters.    Many of the defined filters are actually windowing functions for these IIR    filters.  A typical choices is <code>Box</code>, (which effectively turns    off the windowing function).  </td>  </tr>  <tr>    <td>-define filter:win-support=<var>radius</var></td>    <td>Scale windowing function to this size instead.  This causes the windowing    (or self-windowing Lagrange filter) to act is if the support window is    larger than what is actually supplied to the calling operator.  The filter    however is still clipped to the real support size given.  If unset this    will equal the normal filter support size. </td>  </tr>  <tr>    <td>-define filter:verbose=<var>1</var></td>    <td>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.  Note however that some filters are internally defined in terms of other filters.  The <code>Lanczos</code> filter for example is defined in terms of    a <code>SincFast</code> windowed <code>SincFast</code> filter, while    <code>Mitchell</code> is defined as a general <code>Cubic</code> family filter    with specific 'B' and 'C' settings. </td>  </tr></table><p>For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):</p><pre>convert image.png \  -filter sinc \  -set filter:window=jinc \  -set filter:lobes=8 \  -resize 150%   image.jpg"</pre><p>Or a raw un-windowed Sinc filter with 4 lobes:</p><pre>convert image.png \  -set filter:filter=sinc \  -set filter:lobes=4 \  -resize 150%   image.jpg"</pre><p>To extract the data for a raw windowing function, combine it witha '<code>Box</code>' filter.  For example the '<code>Welch</code> parabolicwindowing function. </p><pre>convert null: -define filter:filter=Box \  -define filter:window=Welch \  -define filter:support=1.0 \  -define filter:verbose=1 \  -resize 2 null:  &gt; window_welch.datgnuplot  set grid  plot \"window_welch.dat\" with lines</pre><p>Note that the use of expert options is provided for image processing expertswho have studied and understand how resize filters work. Without thisknowledge, and an understanding of the definition of the actual filtersinvolved, using expert settings are more likely to be detrimental to your imageresizing.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="flatten"></a>-flatten</h3></div><p class="magick-description">This is a simple alias for the <a href="command-line-options.html#layers">-layers</a> method "flatten".</p><div style="margin: auto;">  <h3 class="magick-header"><a id="flip"></a>-flip</h3></div><p class="magick-description">create a <var>mirror image</var></p><p>reflect the scanlines in the vertical direction. The image will be mirroredupside-down. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="floodfill"></a>-floodfill {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var> <var>color</var></h3></div><p class="magick-description">floodfill the image with color at the specified offset.</p><p>Flood fill starts from the given 'seed point' which is not gravity effected.Any color that matches within <a href="command-line-options.html#fuzz">-fuzz</a> color distance of thegiven <var>color</var>  argument, connected to that 'seed point'will be replaced with the current <a href="command-line-options.html#fill">-fill</a> color. </p><p>Note that if the pixel at the 'seed point' does not itself match the given<var>color</var> (according to <a href="command-line-options.html#fuzz">-fuzz</a>), then noaction will be taken. </p><p>This operator works more like the <a href="command-line-options.html#opaque">-opaque</a> option, thana more general flood fill that reads the matching color directly at the 'seedpoint'. For this form of flood fill, look at <a href="command-line-options.html#draw">-draw</a>  andits 'color floodfill' drawing method.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="flop"></a>-flop</h3></div><p class="magick-description">create a <var>mirror image</var>.</p><p>Reflect the scanlines in the horizontal direction, just like the image ina vertical mirror. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="font"></a>-font <var>name</var></h3></div><p class="magick-description">set the font to use when annotating images with text, or creating labels.</p><p>To print a complete list of fonts, use the <a href="command-line-options.html#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 canalso specify a font from a specific source.  For example <code>Arial.ttf</code>is a TrueType font file, <code>ps:helvetica</code> is PostScript font, and<code>x:fixed</code> is X11 font.</p><p>For other settings that affect fonts, see the options <ahref>-family, <a href="command-line-options.html#stretch">-stretch</a>, <ahref>-style, and <a href="command-line-options.html#weight">-weight</a>. </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="foreground"></a>-foreground <var>color</var></h3></div><p class="magick-description">Define the foreground color for menus.", "display</p><p>The color is specified using the format described under the <ahref>-fill option.</ahref></p><p>The default foreground color is black.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="format"></a>-format <var>type</var></h3></div><p class="magick-description">the image format type.</p><p>When used with the <code>mogrify</code> utility, this option converts anyimage to the image <a href="formats.html">format</a> you specify.For a list of image format types supported by ImageMagick, use <ahref>-list format.</ahref></p><p>By default the file is written to its original name. However, if thefilename extension matches a supported format, the extension is replaced withthe image format type specified with <a href="command-line-options.html#format">-format</a>. Forexample, if you specify <var>tiff</var> as the format type and theinput image filename is <var>image.gif</var>, the output imagefilename becomes <var>image.tiff</var>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="format_identify_"></a>-format <var>string</var></h3></div><p class="magick-description">output formatted image characteristics.</p><p>See <a href="escape.html">Format and Print ImageProperties</a> for an explanation on how to specify the argument to thisoption.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="frame"></a>-frame <var>geometry</var></h3></div><p class="magick-description">Surround the image with a border or beveled frame.</p><p>The color of the border is specified with the <a href="command-line-options.html#mattecolor">-mattecolor</a> command line option. </p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>size</var> portion of the <var>geometry</var> argument indicates the amount of extra width andheight that is added to the dimensions of the image. If no offsets are givenin the <var>geometry</var> argument, then the border added isa solid color.  Offsets <var>x</var> and <var>y</var>, if present, specify thatthe width and height of the border is partitioned to form an outer bevel ofthickness <var>x</var> pixels and an inner bevel of thickness<var>y</var> pixels. Negative offsets make no sense as frame arguments.</p><p>The <a href="command-line-options.html#frame">-frame</a> option is affected by the current <ahref>-compose setting and assumes that this is using the default'<code>Over</code>' composition method.  It generates an image of the appropriatesize with the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting, and thendraws the frame of four distinct colors close to the current <ahref>-mattecolor.  The original image is then overlaid ontocenter of this image.  This means that with the default compose method of'<code>Over</code>' any transparent parts may be replaced by the current <ahref>-bordercolor setting.</ahref></ahref></ahref></p><p>The image composition is notaffected by the <a href="command-line-options.html#gravity">-gravity</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="frame_import_"></a>-frame</h3></div><p class="magick-description">include the X window frame in the imported image. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="function"></a>-function <var>function</var> <var>parameters</var></h3></div><p class="magick-description">Apply a function to channel values.</p><p>This operator performs calculations based on the given arguments to modifyeach of the color values for each previously set <ahref>-channel in the image. See <ahref>-evaluate for details concerning how the results of thecalculations are handled.</ahref></ahref></p><p>This is can be considered a multi-argument version of the <ahref>-evaluate operator. (Added inImageMagick 6.4.8−8.)</ahref></p><p>Here,  <var>parameters</var> is a comma-separated list ofnumerical values. The number of values varies depending on which <var>function</var> is selected. Choose the <var>function</var> from:</p><pre>PolynomialSinusoidArcsinArctan</pre><p>To print a complete list of <a href="command-line-options.html#function">-function</a> operators,use <a href="command-line-options.html#list">-list function</a>. Descriptions follow.</p><dl class="dl-horizontal">  <dt>Polynomial</dt>  <dd><p>The <code>Polynomial</code> function takes an arbitrary number of parameters,these being the coefficients of a polynomial, in decreasing order of degree.That is, entering</p><pre>-function Polynomial <var>a</var><sub><var>n</var></sub>,<var>a</var><sub><var>n</var>-1</sub>,...<var>a</var><sub>1</sub>,<var>a</var><sub>0</sub></pre><p>will invoke a polynomial function given by</p><pre><var>a</var><sub><var>n</var></sub> <b><var>u</var></b><sup><var>n</var></sup> + <var>a</var><sub><var>n</var>-1</sub> <b><var>u</var></b><sup><var>n</var>-1</sup> + ··· <var>a</var><sub>1</sub> <b><var>u</var></b> + <var>a</var><sub>0</sub>,</pre><p>where <b><var>u</var></b> is pixel's original normalized channel value.</p><p>The <code>Polynomial</code> function can be used in place of <code>Set</code>(the <var>constant</var> polynomial) and <code>Add</code>, <code>Divide</code>,<code>Multiply</code>, and <code>Subtract</code> (some <var>linear</var>polynomials) of the <a href="command-line-options.html#evaluate">-evaluate</a> operator. The <ahref>-level operator also affects channels linearly. Somecorrespondences follow.</ahref></p><table class="table table-condensed table-striped">  <tr>        <td>-evaluate Set <var>value</var> </td>        <td>-function Polynomial <var>value</var></td>        <td>(Constant functions; set <var>value</var>×100% gray when channels are RGB.)</td>  </tr>  <tr>        <td>-evaluate Add <var>value</var> </td>        <td>-function Polynomial 1,<var>value</var></td>  </tr>  <tr>        <td>-evaluate Subtract <var>value</var> </td>        <td>-function Polynomial 1,−<var>value</var></td>  </tr>  <tr>        <td>-evaluate Multiply <var>value</var> </td>        <td>-function Polynomial <var>value</var>,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 <code>Polynomial</code> function gives great versatility, sincepolynomials can be used to fit any continuous curve to any degree of accuracydesired.</p></dd><dt>Sinusoid</dt><dd><p>The <code>Sinusoid</code> function can be used to vary the channel valuessinusoidally by setting frequency, phase shift, amplitude, and a bias. Thesevalues are given as one to four parameters, as follows,</p><pre>-function <code>Sinusoid</code> <var>freq</var>,[<var>phase</var>,[<var>amp</var>,[<var>bias</var>]]]</pre><p>where <var>phase</var> is in degrees. (The domain [0,1] of the functioncorresponds to 0 through <var>freq</var>×360 degrees.)The result is that if a pixel's normalized channel value is originally<b><var>u</var></b>, its resulting normalized value is given by </p><pre><var>amp</var> * sin(2*π* (<var>freq</var> * <b><var>u</var></b> + <var>phase</var> / 360)) + <var>bias</var></pre><p> For example, the following generates a curve that starts and ends at 0.9(when <b><var>u</var></b>=0 and 1, resp.), oscillating three times between.7−.2=.5 and .7+.2=.9. </p><pre>-function Sinusoid 3,-90,.2,.7</pre><p>The default values of <var>amp</var> and <var>bias</var> are both .5. The default for <var>phase</var>is 0.</p><p>The <code>Sinusoid</code> function generalizes <code>Sin</code> and<code>Cos</code> of the <a href="command-line-options.html#evaluate">-evaluate</a> operator by allowingvarying amplitude, phase and bias. The correspondence is as follows.</p><table class="table table-condensed table-striped">  <tr>        <td>-evaluate Sin <var>freq</var> </td>        <td>-function Sinusoid <var>freq</var>,0 </td>  </tr>  <tr>        <td>-evaluate Cos <var>freq</var> </td>        <td>-function Sinusoid <var>freq</var>,90 </td>  </tr></table>  </dd><dt>ArcSin</dt><dd><p>The <code>ArcSin</code> 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 rangeof values.</p><pre>-function <code>ArcSin</code> <var>width</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]</pre><p>with all values given in terms of normalized color values (0.0 for black,1.0 for white). Defaulting to values covering the full range from 0.0 to 1.0for bout input (<var>width</var>), and output (<var>width</var>) values. '<code>1.0,0.5,1.0,0.5</code>' </p><pre><var>range</var>/π * asin( 2/<var>width</var> * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var></pre></dd><dt>ArcTan</dt><dd><p>The <code>ArcTan</code> function generates a curve that smooth crosses fromlimit values at infinities, though a center using the given slope value.All these values can be adjusted via the arguments.</p><pre>-function <code>ArcTan</code> <var>slope</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]</pre><p>Defaulting to '<code>1.0,0.5,1.0,0.5</code>'.</p><pre><var>range</var>/π * atan( <var>slope</var>*π * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var></pre>  </dd>  </dl><div style="margin: auto;">  <h3 class="magick-header"><a id="fuzz"></a>-fuzz <var>distance</var>{<var>%</var>}</h3></div><p class="magick-description">Colors within this <var>distance</var> are considered equal.</p><p>A number of algorithms search for a target color. By default the color mustbe exact. Use this option to match colors that are close to the target colorin RGB space. For example, if you want to automagically trim the edges of animage with <a href="command-line-options.html#trim">-trim</a> but the image was scanned and the targetbackground color may differ by a small amount. This option can account forthese differences.</p><p>The <var>distance</var> can be in absolute intensity units or, byappending <code>%</code> as a percentage of the maximum possible intensity (255,65535, or 4294967295).</p><p>Use <a href="command-line-options.html#fuzz">+fuzz</a> to reset the fuzz value to 0.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="fx"></a>-fx <var>expression</var></h3></div><p class="magick-description">apply a mathematical expression to an image or image channels.</p><p>If the first character of <var>expression</var> is <code>@</code>,the expression is read from a file titled by the remaining characters in thestring.</p><p>See <a href="fx.html">FX,The Special Effects Image Operator</a> for a detailed discussion of thisoption.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="gamma"></a>-gamma <var>value</var></h3></div><p class="magick-description">level of gamma correction.</p><p>The same color image displayed on two different workstations may lookdifferent due to differences in the display monitor. Use gamma correction toadjust for this color difference.  Reasonable values extend from<code>0.8</code> to <code>2.3</code>. Gamma less than 1.0 darkens the image andgamma greater than 1.0 lightens it. Large adjustments to image gamma mayresult in the loss of some image information if the pixel quantum size is onlyeight bits (quantum range 0 to 255).</p><p>Gamma adjusts the image's channel values pixel-by-pixel according toa power law, namely, pow(pixel,1/gamma) or pixel^(1/gamma), where pixel is thenormalized or 0 to 1 color value. For example, using a value of gamma=2 is thesame as taking the square root of the image.</p><p>You can apply separate gamma values to the red, green, and blue channels ofthe image with a gamma value list delimited with commas (e.g.,<code>1.7,2.3,1.2</code>).</p><p>Use <a href="command-line-options.html#gamma">+gamma <var>value</var></a> to set theimage gamma level without actually adjusting the image pixels. This optionis useful if the image is of a known gamma but not set as an image attribute(e.g. PNG images).  Write the "file gamma" which is the reciprocal of thedisplay gamma; e.g., if your image is sRGB and you want to write a PNG gAMAchunk, use</p><pre>convert input.png +gamma .45455 output.png</pre><p>(0.45455 is 1/2.2)</p><p>Note that gamma adjustments are also available via the <a href="command-line-options.html#level">-level</a> operator.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br>-gaussian-blur <var>radius</var>x<var>sigma</var></h3></div><p class="magick-description">Blur the image with a Gaussian operator.</p><p>Convolve the image with a Gaussian or normal distribution using the given<var>Sigma</var> value.  The formula is:</p><p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"> </p><p>The <var>Sigma</var> value is the important argument, anddetermines the actual amount of blurring that will take place. </p><p>The <var>Radius</var> is only used to determine the size of thearray which will hold the calculated Gaussian distribution. It should be aninteger.  If not given, or set to zero, IM will calculate the largest possibleradius that will provide meaningful results for the Gaussian distribution.</p><p>The larger the <var>Radius</var> the radius the slower theoperation is. However too small a <var>Radius</var>, and severaliasing effects may result.  As a guideline, <var>Radius</var>should be at least twice the <var>Sigma</var> value, though threetimes will produce a more accurate result. </p><p>This differs from the faster <a href="command-line-options.html#blur">-blur</a> operator in that afull 2-dimensional convolution is used to generate the weighted average of theneighboring pixels. </p><p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine howpixels which are outside the image proper are blurred into the final result.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="geometry"></a>-geometry <var>geometry</var></h3></div><p class="magick-description">Set the preferred size and location of the image.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="gravity"></a>-gravity <var>type</var></h3></div><p class="magick-description">Sets the current gravity suggestion for various other settings and options.</p><p>Choices include: <code>NorthWest</code>, <code>North</code>,<code>NorthEast</code>, <code>West</code>, <code>Center</code>, <code>East</code>,<code>SouthWest</code>, <code>South</code>, <code>SouthEast</code>.  Use <ahref>-list gravity to get a complete list of <ahref>-gravity settings available in your ImageMagickinstallation.</ahref></ahref></p><p>The direction you choose specifies where to position text or subimages. Forexample, a gravity of <code>Center</code> forces the text to be centered withinthe image. By default, the image gravity is <code>NorthWest</code>. See <ahref>-draw for more details about graphic primitives.  Only thetext primitive of <a href="command-line-options.html#draw">-draw</a> is affected by the <ahref>-gravity option.</ahref></ahref></p><p>The <a href="command-line-options.html#gravity">-gravity</a> option is also used in concert with the<a href="command-line-options.html#geometry">-geometry</a> setting and other settings or options thattake <var>geometry</var> as an argument, such as the <ahref>-crop option. </ahref></p><p>If a <a href="command-line-options.html#gravity">-gravity</a> setting occurs before another optionor setting having a <var>geometry</var> argument that specifies anoffset, the offset is usually applied to the point within the image suggestedby the <a href="command-line-options.html#gravity">-gravity</a> argument.  Thus, in the followingcommand, for example, suppose the file <code>image.png</code> has dimensions200x100. The offset specified by the argument to <a href="command-line-options.html#region">-region</a>is (−40,+20). The argument to <a href="command-line-options.html#gravity">-gravity</a> is<code>Center</code>, which suggests the midpoint of the image, at the point(100,50). The offset (−40,20) is applied to that point, giving(100−40,50+20)=(60,70), so the specified 10x10 region is located atthat point. (In addition, the <a href="command-line-options.html#gravity">-gravity</a> affects theregion itself, which is <var>centered</var> at the pixelcoordinate (60,70). (See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.)</p><pre>convert image.png -gravity Center -region 10x10-40+20 \   -negate output.png</pre><p>When used as an option to <a href="composite.html">composite</a>, <ahref>-gravity gives the direction that the image gravitateswithin the composite.</ahref></p><p>When used as an option to <a href="montage.html">montage</a>, <ahref>-gravity gives the direction that an image gravitateswithin a tile. The default gravity is <code>Center</code> for this purpose.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="grayscale"></a>-grayscale <var>method</var></h3></div><p class="magick-description">convert image to grayscale.</p><p>This will use one of the <a href="command-line-options.html#intensity">-intensity</a> methods toconvert the given image into a linear-grayscale image. </p><p>For example, to convert an image to (linear) Rec709Luminance grayscale,  type:</p><pre>convert in.png -grayscale Rec709Luminance out.png</pre><p>which is equivalent to:</p><pre>convert in.png -colorspace gray out.png</pre><p>Similarly, to convert an image to (non-linear) Rec709Luma grayscale,  type:</p><pre>convert in.png -grayscale Rec709Luma out.png</pre><p>which is equivalent to:</p><pre>convert in.png -set colorspace RGB -colorspace gray out.png</pre><p>Note that a 'colorspace' intensity method will produce the same resultregardless of the current colorpsace of the image. But a 'mathematical'intensity method will depend on the current colorspace the image is currentlyusing. </p><p>While this operation uses an <a href="command-line-options.html#intensity">-intensity</a> method, it does not use or set the <a href="command-line-options.html#intensity">-intensity</a> setting, sowill not effect other operations that may use that setting.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="green-primary"></a>-green-primary <var>x,y</var></h3></div><p class="magick-description">green chromaticity primary point.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="hald-clut"></a>-hald-clut</h3></div><p class="magick-description">apply a Hald color lookup table to the image.</p><p>A Hald color lookup table is a 3-dimensional color cube mapped to 2dimensions.  Create it with the <code>HALD:</code> prefix (e.g. HALD:8).  Youcan apply any color transformation to the Hald image and then use this optionto apply the transform to the image. </p><pre>convert image.png hald.png -hald-clut transform.png</pre><p>This option provides a convenient method for you to use Gimp or Photoshopto make color corrections to the Hald CLUT image and subsequently apply themto multiple images using an ImageMagick script. </p><p>Note that the representation is only of the normal RGB color space and thatthe whole color value triplet is used for the interpolated lookup of therepresented Hald color cube image.  Because of this the operation is not <ahref>-channel setting effected, nor can it adjust or modify animages transparency or alpha/matte channel.</ahref></p><p>See also <a href="command-line-options.html#clut">-clut</a> which provides color value replacementof the individual color channels, usually involving a simpler gray-scaleimage. E.g:  gray-scale to color replacement, or modification by a histogrammapping. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="help"></a>-help</h3></div><p class="magick-description">print usage instructions.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="highlight-color"></a>-highlight-color <var>color</var></h3></div><p class="magick-description">when comparing images, emphasize pixel differences with this color.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="hough-lines"></a>-hough-lines <var>width</var>x<var>height</var>{<var>+threshold</var>}</h3></div><p class="magick-description">identify straight lines in the image (e.g. -hough-lines 9x9+195).</p><p>Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.</p><p>The process accumulates counts for every white pixel in the binary edge image for every possible orientation (for angles from 0 to 179 in 1 deg increments) and distance from the center of the image to the corners (in 1 px increments). It stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator will be 180x(diagonal/2). Next it searches the accumulator for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. The algorithm uses slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are drawn from the given endpoints. The counts are a measure of the length of the lines.</p>.<p>The WxH arguments specify the filter size for locating the peaks in the Hough accumulator. The threshold excludes lines whose counts are less than the threshold value.</p><p>Use <code><a href="command-line-options.html#background">-background</a></code> to specify the color of the background onto which the lines will be drawn. The default is black.</p><p>Use <code><a href="command-line-options.html#fill">-fill</a></code> to specify the color of the lines. The default is black.</p><p>Use <code><a href="command-line-options.html#stroke">-stroke</a></code> and <code><a href="command-line-options.html#strokewidth">-strokewidth</a></code> to specify the thickness of the lines. The default is black and no strokewidth.</p><p>A text file listing the endpoints and counts may be created by using the suffix, .mvg, for the output image.</p><p>Use <code><a href="command-line-options.html#define">-define</a> hough-lines:accumulator=true</code> to return the accumulator image in addition to the lines image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="iconGeometry"></a>-iconGeometry <var>geometry</var></h3></div><p class="magick-description">specify the icon geometry.</p><p>Offsets, if present in the geometry specification, are handled in the samemanner as the <a href="command-line-options.html#geometry">-geometry</a> option, using X11 style tohandle negative offsets.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="iconic"></a>-iconic</h3></div><p class="magick-description">start in icon mode in X Windows", 'animate', 'display</p><div style="margin: auto;">  <h3 class="magick-header"><a id="identify"></a>-identify</h3></div><p class="magick-description">identify the format and characteristics of the image.</p><p>This information is printed: image scene number; image name; image size;the image class (<var>DirectClass</var> or <var>PseudoClass</var>); the total number of unique colors; and thenumber of seconds to read and transform the image. Refer to <a href="miff.html">MIFF</a> fora description of the image class.</p><p>If <a href="command-line-options.html#colors">-colors</a> is also specified, the total unique colorsin the image and color reduction error values are printed. Refer to <ahref>colorreduction algorithm for a description of these values.</ahref></p><p>If <a href="command-line-options.html#verbose">-verbose</a> precedes this option, copiousamounts of image properties are displayed including image statistics, profiles,image histogram, and others.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="ift"></a>-ift</h3></div><p class="magick-description">implements the inverse discrete Fourier transform (DFT).</p><p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windowsusers in ImageMagick 6.6.0-9). It transforms a pair of magnitude and phaseimages from the frequency domain to a single image in the normal or spatialdomain. See for example, <ahref>Fourier Transform,<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>.</ahref></p><p>For example, depending upon the image format used to store the result ofthe <a href="command-line-options.html#fft">-fft</a>, one would use either</p><pre>convert fft_image.miff -ift fft_image_ift.png</pre><p>or</p><pre>convert fft_image-0.png fft_image-1.png -ift fft_image_ift.png</pre><p>The resulting image may need to be cropped due to padding introduced whenthe original image, prior to the <a href="command-line-options.html#fft">-fft</a> or <ahref>+fft, was not square or even dimensioned. Any padding is atthe right and/or bottom sides of the image.</ahref></p><p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required touse <a href="command-line-options.html#ift">-ift</a>.</p><p>Use <a href="command-line-options.html#ift">+ift</a> (with HDRI enabled) to transform a pair of realand imaginary images from the frequency domain to a single image in the normal(spatial) domain.</p><p>By default the IFT is not normalized (and the FFT is). Use "<code><a href="command-line-options.html#define">-define</a> fourier:normalize=inverse</code> to explicitly normalize the IFT and unnormalize the FFT.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="immutable"></a>-immutable</h3></div><p class="magick-description">make image immutable.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="implode"></a>-implode <var>factor</var></h3></div><p class="magick-description">implode image pixels about the center.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="insert"></a>-insert <var>index</var></h3></div><p class="magick-description">insert the last image into the image sequence.</p><p>This option takes last image in the current image sequence and inserts itat the given index. If a negative index is used, the insert position iscalculated before the last image is removed from the sequence. As such<code>-insert -1</code> will result in no change to the image sequence.</p><p>The <code>+insert</code> option is equivalent to <code>-insert -1</code>. Inother 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;">  <h3 class="magick-header"><a id="intensity"></a>-intensity <var>method</var></h3></div><p class="magick-description">method to generate intensity value from pixel.</p><p>ImageMagick provides a number of methods used in situations where anoperator needs to determine a single grayscale value for some purpose, froman image with red, green, and blue pixel components. Typically the linear<code>Rec709Luminance</code> formula is used, which is the same formula used when converting images to <code>-colorspace gray</code>. </p><p>The following formulas are currently provided, and will first convertthe pixel values to linear-RGB or non-linear sRGB colorspace beforebeing applied to calculate the final greyscale value. </p><dl class="dl-horizontal"><dt>Rec601Luma</dt><dd>      0.298839R' + 0.586811G'+ 0.114350B'</dd><dt>Rec601Luminance</dt><dd> 0.298839R + 0.586811G + 0.114350B</dd><dt>Rec709Luma</dt><dd>      0.212656R' + 0.715158G' + 0.072186B'</dd><dt>Rec709Luminance</dt><dd> 0.212656R + 0.715158G + 0.072186B</dd><dt>Brightness</dt><dd>      max(R', G', B')</dd><dt>Lightness</dt><dd>       (min(R', G', B') + max(R', G', B')) / 2.0</dd></dl><p>Note that the above R,G,B values is the image's linear-RGB values, whileR',G',B' are sRGB non-linear values. </p><p>These intensity methods are mathematical in nature and will use thecurrent value in the images respective R,G,B channel regardless ofwhat that is, or what colorspace the image is currently using.</p><dl class="dl-horizontal"><dt>Average</dt><dd>(R + G + B) / 3.0</dd><dt>MS</dt><dd>(R^2 + G^2 + B^2) / 3.0</dd><dt>RMS</dt><dd>sqrt( (R^2 + G^2 + B^2) / 3.0 )</dd></dl><p>These methods are often used for other purposes, such as generating agrayscale difference image between two color images (using <a href="command-line-options.html#compose">-compose</a> '<code>Difference</code>' composition. </p><p> For example The 'MS' (Mean Squared) setting is good for minimizing colorerror comparisions.  While...  The method 'RMS' (Root Mean Squared) forexample is appropriate for calculating color vector distance, from a colordifference image.  This is equivalent to the color only component of the <ahref>-fuzz factor color compare setting.  </ahref></p><p>See also <a href="command-line-options.html#grayscale">-grayscale</a> which applies one of the abovegrayscaling formula directly to an image without setting the <ahref>-intensity setting.</ahref></p><p>The <a href="command-line-options.html#colorspace">-colorspace gray</a> image conversion also usesthe current intensity setting, but will always convert the image to theappropriate sRGB or linear-RGB colorspace before appling the abovefunction.</p><p>To print a complete list of possible pixel intensity setting methods, use <a href="command-line-options.html#list">-list intensity</a>.</p><p>Operators affected by the <a href="command-line-options.html#intensity">-intensity</a> setting include:</p><pre>-adaptive-blur-adaptive-sharpen-black-threshold-clut (when mapping greyscale CLUT image to alpha channel if set by -channels)-colors for gray colorspace-compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}-contrast-stretch-distort {ErodeIntensity, DilateIntensity}-normalize-random-threshold-selective-blur-shade-threshold-tint-white-threshold</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="intent"></a>-intent <var>type</var></h3></div><p class="magick-description">use this type of rendering intent when managing the image color.</p><p>Use this option to affect the color management operation of an image (see<a href="command-line-options.html#profile">-profile</a>).  Choose from these intents: <code>Absolute,Perceptual, Relative, Saturation</code>.</p><p>The default intent is Perceptual for the sRGB colorspace and undefined for the RGB and gray colorspaces.</p><p>To print a complete list of rendering intents, use <a href="command-line-options.html#list">-list intent</a>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="interlace"></a>-interlace <var>type</var></h3></div><p class="magick-description">the type of interlacing scheme.</p><p>Choose from:</p><pre>nonelineplanepartitionJPEGGIFPNG</pre><p>This option is used to specify the type of interlacing scheme for raw imageformats such as <code>RGB</code> or <code>YUV</code>.</p><p><code>None</code> means do not interlace (RGBRGBRGBRGBRGBRGB...),</p><p><code>Line</code> uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and.</p><p><code>Plane</code> uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...).</p><p><code>Partition</code> is like plane except the different planes are saved toindividual files (e.g. image.R, image.G, and image.B).</p><p>Use <code>Line</code> or <code>Plane</code> to create an <code>interlacedPNG</code> or <code>GIF</code> or <code>progressive JPEG</code> image.</p><p>To print a complete list of interlacing schemes, use <a href="command-line-options.html#list">-listinterlace</a>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="interpolate"></a>-interpolate <var>type</var></h3></div><p class="magick-description">Set the pixel color interpolation method to use when looking up a color based on a floating point or real value.</p><p>When looking up the color of a pixel using a non-integer floating pointvalue, you typically fall in between the pixel colors defined by the sourceimage. This setting determines how the color is determined from the colors ofthe pixels surrounding that point.  That is how to determine the color of apoint that falls between two, or even four different colored pixels. </p><dl class="dl-horizontal">  <dt>integer</dt>  <dd>The color of the top-left pixel (floor function)</dd>  <dt>nearest-neighbor</dt>  <dd>The nearest pixel to the lookup point (rounded function)</dd>  <dt>average</dt>  <dd>The average color of the surrounding four pixels</dd>  <dt>bilinear</dt>  <dd>A double linear interpolation of pixels (the default)</dd>  <dt>mesh</dt>  <dd>Divide area into two flat triangular interpolations</dd>  <dt>bicubic</dt>  <dd>Fitted bicubic-spines of surrounding 16 pixels</dd>  <dt>spline</dt>  <dd>Direct spline curves (colors are blurred)</dd>  <dt>filter</dt>  <dd>Use resize <a href="command-line-options.html#filter">-filter</a> settings</dd></dl><p>This most important for distortion operators such as <a href="command-line-options.html#distort">-distort</a>, <a href="command-line-options.html#implode">-implode</a>, <a href="command-line-options.html#transform">-transform</a> and <a href="command-line-options.html#fx">-fx</a>. </p><p>To print a complete list of interpolation methods, use <a href="command-line-options.html#list">-list interpolate</a>.</p><p>See also <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a>, for control of thelookup for positions outside the boundaries of the image. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="interline-spacing"></a>-interline-spacing <var>value</var></h3></div><p class="magick-description">the space between two text lines.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="interword-spacing"></a>-interword-spacing <var>value</var></h3></div><p class="magick-description">the space between two words.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="kerning"></a>-kerning <var>value</var></h3></div><p class="magick-description">the space between two letters.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="kuwahara"></a>-kuwahara <var>radius</var><br>-kuwahara <var>radius</var>x<var>sigma</var></h3></div><p class="magick-description">edge preserving noise reduction filter.</p><p>The <var>radius</var> is more important than the <var>sigma</var>. If <var>sigma</var> is left off, it will be computed automatically from the <var>radius</var> as <var>sigma</var>=<var>radius</var>-0.5. The <var>sigma</var> provides a bit of additional smoothing control.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="label"></a>-label <var>name</var></h3></div><p class="magick-description">assign a label to an image.</p><p>Use this option to assign a specific label to the image, as it is read inor created.  You can use the <a href="command-line-options.html#set">-set</a> operation to re-assigna 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 <var>PostScript</var> file, any labelassigned to an image is used as a header string to print above the postscriptimage. </p><p>You can include the image filename, type, width, height, or other imageattribute by embedding special format character.  See <a href="escape.html">Format and Print ImageProperties</a> for details of the percent escape codes.</p><p>For example,</p><pre>-label "%m:%f %wx%h"  bird.miff</pre><p>assigns an image label of <code>MIFF:bird.miff 512x480</code> to the"<code>bird.miff</code>" image and whose width is 512 and height is 480, as itis read in.  If a  <a href="command-line-options.html#label">+label</a> option was used instead, anyexisting label present in the image would be used.  You can remove all labelsfrom an image by assigning the empty string. </p><p>A label is not drawn on the image, but is embedded in the image datastreamvia <var>Label</var> tag or similar mechanism. If you want the label to bevisible on the image itself, use the <a href="command-line-options.html#draw">-draw</a> option, orduring the final processing in the creation of an image montage.</p><p>If the first character of <var>string</var> is <var>@</var>, the image label is read from a file titled by theremaining characters in the string. Labels in a file are literal, no embeddedformatting characters are recognized.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="lat"></a>-lat <var>width</var><br>-lat <var>width</var>x<var>height</var>{<var>+-</var>}<var>offset</var>{<var>%</var>}</h3></div><p class="magick-description">perform local adaptive threshold.</p><p>Adaptively threshold each pixel based on the value of pixels in asurrounding window.  If the current pixel is lighter than this average plusthe optional <code>offset</code>, then it is made white, otherwise it is madeblack.  Small variations in pixel values such as found in scanned documentscan be ignored if offset is positive. A negative offset will make it moresensitive to those small variations. </p><p>This is commonly used to threshold images with an uneven background.  It isbased on the assumption that average color of the small window is thethe local background color, from which to separate the foreground color. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="layers"></a>-layers <var>method</var></h3></div><p class="magick-description">handle multiple images forming a set of image layers or animation frames.</p><p>Perform various image operation methods to a ordered sequence of imageswhich may represent either a set of overlaid 'image layers', a GIF disposalanimation, or a fully-'coalesced' animation sequence. </p><table class="table table-condensed table-striped">  <tbody>  <tr>    <th style="width: 8%">Method</th>    <th>Description</th>  </tr>  <tr>    <td>compare-any</td>    <td>Crop the second and later frames to the smallest rectangle        that contains all the differences between the two images.  No GIF <a href="command-line-options.html#dispose">-dispose</a> methods are taken into account. </td>  </tr>  <tr><td></td><td>This exactly the same as the <a href="command-line-options.html#deconstruct">-deconstruct</a> operator, and does not preserve animations normal        working, especially when animation used layer disposal methods such as        '<code>Previous</code>' or '<code>Background</code>'. </td>  </tr>  <tr>    <td>compare-clear</td>    <td>As '<code>compare-any</code>' 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>    <td>compare-overlay</td>    <td>As '<code>compare-any</code>' 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="command-line-options.html#compose">-compose</a> alpha       composition method '<code>change-mask</code>', to reduce the image to       just the pixels that need to be overlaid. </td>   </tr>  <tr>    <td>coalesce</td>    <td>Equivalent to a call to the <a href="command-line-options.html#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>    <td>composite</td>    <td>Alpha Composition of two image lists, separated by a        "<code>null:</code>" 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="command-line-options.html#geometry">-geometry</a> offset is adjusted according        to <a href="command-line-options.html#gravity">-gravity</a> in accordance of the virtual        canvas size of the first image in each list. Unlike a normal <a href="command-line-options.html#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>    <td>dispose</td>    <td>This like '<code>coalesce</code>' 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="command-line-options.html#dispose">-dispose</a> method.  This allows you to check what        is going wrong with a particular animation you may be developing.        </td>  </tr>  <tr>    <td>flatten</td>    <td>Create a canvas the size of the first images virtual        canvas using the current <a href="command-line-options.html#background">-background</a> color,        and <a href="command-line-options.html#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 usually 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 an opaque color to remove        transparency from an image.</td>  </tr>  <tr>    <td>merge</td>    <td>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 method with <a href="command-line-options.html#repage">+repage</a>        will remove the layer offset, and create an image in which all the        overlaid image positions relative to each other is preserved, though        not necessarily exactly where you specified them.        </td>  </tr>  <tr><td></td><td>See also 'trim-bounds' below which is closely related but        without  doing the'flatten' to merge the images together. </td>  </tr>  <tr>    <td>mosaic</td>    <td>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>    <td>optimize</td>    <td>Optimize a coalesced animation, into GIF animation using        a number of general techniques.  This currently a short cut to        apply both the '<code>optimize-frame</code>', and        '<code>optimize-transparency</code>' methods but may be expanded to        include other optimization methods as they are developed. </td>  </tr>  <tr>    <td>optimize-frame</td>    <td>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>    <td>optimize-plus</td>    <td>As '<code>optimize-frame</code>' 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        '<code>optimize-frame</code>' 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 '<code>optimize-frame</code>' technique. For some        animations however you can get a vast improvement in the final        animation size. </td>  </tr>  <tr>    <td>optimize-transparency</td>    <td>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="command-line-options.html#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>    <td>remove-dups</td>    <td>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>    <td>remove-zero</td>    <td>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 usually added for        improved frame optimization in GIF animations. </td>  </tr>  <tr>    <td>trim-bounds</td>    <td>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="command-line-options.html#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="command-line-options.html#list">-list layers</a>.</p><p>The operators <a href="command-line-options.html#coalesce">-coalesce</a>, <a href="command-line-options.html#deconstruct">-deconstruct</a>, <a href="command-line-options.html#flatten">-flatten</a>, and <a href="command-line-options.html#mosaic">-mosaic</a> are only aliases for the above methods and may be depreciated inthe future.  Also see  <a href="command-line-options.html#page">-page</a>,  <a href="command-line-options.html#repage">-repage</a> operators, the <a href="command-line-options.html#compose">-compose</a> setting, and theGIF <a href="command-line-options.html#dispose">-dispose</a> and  <a href="command-line-options.html#delay">-delay</a>settings. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="level"></a>-level <var>black_point</var>{,<var>white_point</var>}{<var>%</var>}{,<var>gamma</var>}</h3></div><p class="magick-description">adjust the level of image channels.</p><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 andwhite points range from 0 to <var>QuantumRange</var>, or from 0 to100%; if the white point is omitted it is set to (<var>QuantumRange</var> - black_point), so as to center contrast changes.If a <code>%</code> sign is present anywhere in the string, both black and whitepoints are percentages of the full color range.  Gamma will do a <ahref>-gamma adjustment of the values.  If it is omitted, thedefault of 1.0 (no gamma correction) is assumed.</ahref></p><p>In normal usage (<code>-level</code>) the image values are stretched so thatthe given '<code>black_point</code>' value in the original image is set to zero(or black), while the given '<code>white_point</code>' value is set to <var>QuantumRange</var> (or white).  This provides you with directcontrast adjustments to the image.  The '<code>gamma</code>' of the resultingimage will then be adjusted. </p><p>From ImageMagick v6.4.1-9 using the plus form of the operator(<code>+level</code>) or adding the special '!' flag anywhere in the argumentlist, will cause the operator to do the reverse of the level adjustment.  Thatis a zero, or <var>QuantumRange</var> value (black, and white, resp.)in the original image, is adjusted to the given level values, allowing you tode-contrast, or compress the channel values within the image. The'<code>gamma</code>' is adjusted before the level adjustment to de-contrast theimage is made. </p><p>Only the channels defined by the current <a href="command-line-options.html#channel">-channel</a>setting are adjusted (defaults to RGB color channels only), allowing you tolimit 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;">  <h3 class="magick-header"><a id="level-colors"></a>-level-colors {<var>black_color</var>}{,}{<var>white_color</var>}</h3></div><p class="magick-description">adjust the level of an image using the provided dash separated colors.</p><p>This function is exactly like <a href="command-line-options.html#level">-level</a>, except that thevalue value for each color channel is determined by the'<code>black_color</code>' and '<code>white_color</code>' colors given (asdescribed under the <a href="command-line-options.html#fill">-fill</a> option). </p><p>This effectually means the colors provided to <code>-level-colors</code>is mapped to become 'black' and 'white' respectively, with all the othercolors linearly adjusted (or clipped) to match that change. Each channel isadjusted separately using the channel values of the colors specified. </p><p>On the other hand the plus form of the operator (<code>+level-colors</code>)will map the image color 'black' and 'white' to the given colorsrespectively, resulting in a gradient (de-contrasting) tint of the image tothose colors. This can also be used to convert a plain gray-scale image into aone using the gradient of colors specified. </p><p>By supplying a single color with a comma separator either before or afterthat color, will just replace the respective 'black' or 'white' pointrespectively.  But if no comma separator is provided, the given color isused for both the black and white color points, making the operator eitherthreshold the images around that color (- form) or set all colors to thatcolor (+ form). </p><div style="margin: auto;">  <h3 class="magick-header"><a id="limit"></a>-limit <var>type value</var></h3></div><p class="magick-description">Set the pixel cache resource limit.</p><p>Choose from: <code>area</code>, <code>disk</code>, <code>file</code>,<code>map</code>, <code>memory</code>, <code>thread</code>, or <code>time</code>.</p><p>The value for <code>file</code> is in number of files. The other limits arein bytes. Define arguments for the memory, map, area, and disk resource limitswith SI prefixes (.e.g 100MB).</p><p>By default the limits are 768 files, 3GB of image area, 1.5GiB memory, 3GiBmemory map, and 18.45EB of disk.  These limits are adjusted relative to theavailable resources on your computer if this information is available.   Whenany limit is reached, ImageMagick fails in some fashion but attempts to takecompensating actions, if possible. For example, the following limitsmemory:</p><pre>-limit memory 32MiB -limit map 64MiB</pre><p>Use <a href="command-line-options.html#list">-list resource</a> to list the current limits. For example, our system shows these limits:</p><pre>-&gt; identify -list resourceResource limits:  Width: 100MP  Height: 100MP  Area: 25.181GB  Memory: 11.726GiB  Map: 23.452GiB  Disk: unlimited  File: 768  Thread: 12  Throttle: 0  Time: unlimited</pre><p>Requests for pixel storage to keep intermediate images are satisfied by oneof three resource categories: in-memory pool, memory-mapped files pool, anddisk pool (in that order) depending on the <a href="command-line-options.html#limit">‑limit</a> settingsand whether the system honors a resource request. If the total size ofallocated pixel storage in the given pool reaches the corresponding limit, therequest is passed to the next pool. Additionally, requests that exceed the<code>area</code> limit automagically are allocated on disk.</p><p>To illustrate how ImageMagick utilizes resource limits, consider a typicalimage resource request.  First, ImageMagick tries to allocate the pixels inmemory.  The request might be denied if the resource request exceeds the<code>memory</code> limit or if the system does not honor the request.  Ifa memory request is not honored, the pixels are allocated to disk and the fileis memory-mapped. However, if the allocation request exceeds the<code>map</code> limit, the resource allocation goes to disk. In all cases, ifthe resource request exceeds the <code>area</code> limit, the pixels areautomagically cached to disk. If the disk has a hard limit, the programfails.</p><p>In most cases you simply do not need to concern yourself with resourcelimits.  ImageMagick chooses reasonable defaults and most images do not taxyour computer resources.  Where limits do come in handy is when you processimages that are large or on shared systems where ImageMagick can consume allor most of the available memory. In this case, the ImageMagick workflow slowsother processes or, in extreme cases, brings the system to a halt.  Underthese circumstances, setting limits give some assurances that the ImageMagickworkflow will not interfere with other concurrent uses of the computer.  Forexample, assume you have a web interface that processes images uploaded fromthe Internet.  To assure ImageMagick does not exceed 10MiB of memory you cansimply set the area limit to 10MiB:</p><pre>-limit area 10MB</pre><p>Now whenever a large image is processed, the pixels are automagicallycached to disk instead of memory.  This of course implies that large imagestypically process very slowly, simply because pixel processing in memory canbe an order of magnitude faster than on disk.  Because your web site usersmight inadvertently upload a huge image to process, you should set a disklimit as well:</p><pre>-limit area 10MB -limit disk 500MB</pre><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 setwith <a href="resources.html#environment">environment variables</a>. Set theenvironment variables <code>MAGICK_AREA_LIMIT</code>,<code>MAGICK_DISK_LIMIT</code>, <code>MAGICK_FILE_LIMIT</code>,<code>MAGICK_MEMORY_LIMIT</code>, <code>MAGICK_MAP_LIMIT</code>,<code>MAGICK_THREAD_LIMIT</code>, <code>MAGICK_TIME_LIMIT</code> for limits ofimage area, disk space, open files, heap memory, memory map, number of threadsof execution, and maximum elapsed time in seconds respectively.</p><p> Inquisitive users can try adding <a href="command-line-options.html#debug">-debug cache</a> totheir commands and then scouring the generated output for references to thepixel cache, in order to determine how the pixel cache was allocated and howresources were consumed. Advanced Unix/Linux users can pipe that outputthrough <code>grep memory|open|destroy|disk</code> for more readable sifting.</p><p>For more about ImageMagick's use of resources, see the section <b>CacheStorage and Resource Requirements</b> on the <a href="architecture.html#cache">Architecture</a> page.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="linear-stretch"></a>-linear-stretch <var>black-point</var><br>-linear-stretch <var>black-point</var>{x<var>white-point</var>}{<var>%</var>}}</h3></div><p class="magick-description">Linear with saturation stretch.</p><p>This is very similar to <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a>,and uses a 'histogram bin' to determine the range of color values that needs tobe stretched.  However it then stretches those colors using the <ahref>-level operator.</ahref></p><p>As such while the initial determination may have 'binning' round offeffects, the image colors are stretched mathematically, rather than using thehistogram bins.  This makes the operator more accurate. </p><p>note however that a <a href="command-line-options.html#linear-stretch">-linear-stretch</a> of'<code>0</code>' does nothing, while a value of '<code>1</code>' does a nearperfect stretch of the color range. </p><p>See also <a href="command-line-options.html#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;">  <h3 class="magick-header"><a id="linewidth"></a>-linewidth</h3></div><p class="magick-description">the line width for subsequent draw operations.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="liquid-rescale"></a>-liquid-rescale <var>geometry</var></h3></div><p class="magick-description">rescale image with seam-carving.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="list"></a>-list <var>type</var></h3></div><p class="magick-description">Print a list of supported arguments for various options or settings.  Choose from these list types:</p><pre class="pre-scrollable">AlignAlphaBooleanCacheChannelClassClipPathCoderColorColorspaceCommandComplexComposeCompressConfigureDataTypeDebugDecorationDelegateDirectionDisposeDistortDitherEndianEvaluateFillRuleFilterFontFormatFunctionGravityIntensityIntentInterlaceInterpolateKernelLayersLineCapLineJoinListLocaleLogEventLogMagicMethodMetricMimeModeMorphologyModuleNoiseOrientationPixelIntensityPolicyPolicyDomainPolicyRightsPreviewPrimitiveQuantumFormatResourceSparseColorStatisticStorageStretchStyleThresholdTypeUnitsValidateVirtualPixel</pre><p>These lists vary depending on your version of ImageMagick. Use "<code>-listlist</code>" to get a complete listing of all the "<code>-list</code>" argumentsavailable:</p><pre>identify -list list</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="log"></a>-log <var>string</var></h3></div><p class="magick-description">Specify format for debug log.</p><p>This option specifies the format for the log printed when the <ahref>-debug option is active.</ahref></p><p>You can display the following components by embedding special formatcharacters:</p><dl class="dl-horizontal"><dt>%d</dt><dd>domain</dd><dt>%e</dt><dd>event</dd><dt>%f</dt><dd>function</dd><dt>%l</dt><dd>line</dd><dt>%m</dt><dd>module</dd><dt>%p</dt><dd>process ID</dd><dt>%r</dt><dd>real CPU time</dd><dt>%t</dt><dd>wall clock time</dd><dt>%u</dt><dd>user CPU time</dd><dt>%%</dt><dd>percent sign</dd><dt>\n</dt><dd>newline</dd><dt>\r</dt><dd>carriage return</dd></dl><p>For example:</p><pre>convert -debug coders -log "%u %m:%l %e" in.gif out.png</pre><p>The default behavior is to print all of the components.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="loop"></a>-loop <var>iterations</var></h3></div><p class="magick-description">add Netscape loop extension to your GIF animation.</p><p>Set iterations to zero to repeat the animation an infinite number of times,otherwise the animation repeats itself up to <var>iterations</var>times.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="lowlight-color"></a>-lowlight-color <var>color</var></h3></div><p class="magick-description">when comparing images, de-emphasize pixel differences with this color.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="magnify"></a>-magnify</h3></div><p class="magick-description">double the size of the image with pixel art scaling.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="map"></a>-map <var>type</var></h3></div><p class="magick-description">Display image using this <var>type</var>.</p><p>Choose from these <var>Standard Colormap</var> types:</p><pre>bestdefaultgrayredgreenblue</pre><p>The <var>X server</var> must support the <var>StandardColormap</var> you choose, otherwise an error occurs.  Use <code>list</code> asthe type and <code>display</code> searches the list of colormap types in<code>top-to-bottom</code> order until one is located. See <var>xstdcmap(1)</var> for one way of creating Standard Colormaps.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="map_stream_"></a>-map <var>components</var></h3></div><p class="magick-description">pixel map.</p><p>Here are the valid components of a map:</p><dl class="dl-horizontal"><dt>r</dt><dd>  red pixel component</dd><dt>g</dt><dd>  green pixel component</dd><dt>b</dt><dd>  blue pixel component</dd><dt>a</dt><dd>  alpha pixel component (0 is transparent)</dd><dt>o</dt><dd>  opacity pixel component (0 is opaque)</dd><dt>i</dt><dd>  grayscale intensity pixel component</dd><dt>c</dt><dd>  cyan pixel component</dd><dt>m</dt><dd>  magenta pixel component</dd><dt>y</dt><dd>  yellow pixel component</dd><dt>k</dt><dd>  black pixel component</dd><dt>p</dt><dd>  pad component (always 0)</dd></dl><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;">  <h3 class="magick-header"><a id="mask"></a>-mask<var>filename</var></h3></div><p class="magick-description">Prevent updates to image pixels specified by the mask.</p><p>This the same as using a mask used for composite masking operations, withgrayscale values causing blended updates of the image the mask is attached to.</p><p>Use <a href="command-line-options.html#mask">+mask</a> to remove the mask from images.</p><p>Also see <a href="command-line-options.html#clip-mask">-clip-mask</a> which work in the same way,but with strict boolean masking. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="mattecolor"></a>-mattecolor <var>color</var></h3></div><p class="magick-description">Specify the color to be used with the <a href="command-line-options.html#frame">-frame</a> option.</p><p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p><p>The default matte color is <code>#BDBDBD</code>, <spanstyle>this shade of gray.</spanstyle></p><div style="margin: auto;">  <h3 class="magick-header"><a id="maximum"></a>-maximum</h3></div><p class="magick-description">return the maximum intensity of an image sequence.</p><p>Select the 'maximum' value from all the surrounding pixels. </p><p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the samename. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="median"></a>-median <var>geometry</var></h3></div><p class="magick-description">apply a median filter to the image.</p><p>Select the 'middle' value from all the surrounding pixels. </p><p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the samename. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="mean-shift"></a>-mean-shift <var>width</var>x<var>height</var>{<var>+distance</var>{%}}</h3></div><p class="magick-description">image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p><p><var>width</var>x<var>height</var> is the window size and <var>distance</var> is the color distance measured in the range 0 to 1 or 0 to 100%</p><p>The mean shift algorithm is iterative and thus slower the larger the window size. For each pixel, it gets all the pixels in the window centered at the pixel and excludes those that are outside the <var>radius=sqrt((width-1)(height-1)/4)</var> surrounding the pixel. From those pixels, it finds which of them are within the specified squared color distance from the current mean. It then computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process is iterated until it converges and the final mean is then used to replace the original pixel value. It repeats this process for the next pixel, etc, until it processes all pixels in the image. Results are better when using other colorspaces rather than RGB. Recommend YIQ, YUV or YCbCr, which seem to give equivalent results.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="metric"></a>-metric <var>type</var></h3></div><p class="magick-description">Output to STDERR a measure of the differences between images according to the <var>type</var> given metric.</p><p>Choose from:</p><dl class="dl-horizontal"><dt>AE</dt><dd>    absolute error count, number of different pixels (-fuzz effected)</dd><dt>FUZZ</dt><dd>  mean color distance</dd><dt>MAE</dt><dd>   mean absolute error (normalized), average channel error distance</dd><dt>MEPP</dt><dd>  mean error per pixel (normalized mean error, normalized peak error)</dd><dt>MSE</dt><dd>   mean error squared, average of the channel error squared</dd><dt>NCC</dt><dd>   normalized cross correlation</dd><dt>PAE</dt><dd>   peak absolute (normalized peak absolute)</dd><dt>PHASH</dt><dd> perceptual hash</dd><dt>PSNR</dt><dd>  peak signal to noise ratio</dd><dt>RMSE</dt><dd>  root mean squared (normalized root mean squared)</dd></dl><p>Control the '<code>AE</code>', or absolute count of pixels that are different,with the <a href="command-line-options.html#fuzz">-fuzz</a> factor (ignore pixels whichonly changed by a small amount).  Use '<code>PAE</code>' to find thesize of the <a href="command-line-options.html#fuzz">-fuzz</a> factor needed to make all pixels'similar', while '<code>MAE</code>' determines the factor neededfor about half the pixels to be similar. </p><p>The '<code>MEPP</code>' metric returns three different metrics('<code>MAE</code>', '<code>MAE</code>' normalized, and '<code>PAE</code>'normalized) from a single comparison run. </p><p>To print a complete list of metrics, use the <a href="command-line-options.html#list">-listmetric</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="minimum"></a>-minimum</h3></div><p class="magick-description">return the minimum intensity of an image sequence.</p><p>Select the 'minimal' value from all the surrounding pixels. </p><p>This is legacy option from the <a href="command-line-options.html#statistic">method</a> of the samename. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="mode"></a>-mode <var>geometry</var></h3></div><p class="magick-description">make each pixel the \'predominant color\' of the neighborhood.'</p><div style="margin: auto;">  <h3 class="magick-header">-mode <var>value</var></h3></div><p class="magick-description">Mode of operation.</p><p>Choose the <var>value</var> from these styles: <code>Frame,Unframe, or Concatenate</code></p><p>Use the <a href="command-line-options.html#list">-list</a> option with a '<code>Mode</code>' argumentfor a list of <a href="command-line-options.html#mode">-mode</a> arguments available in yourImageMagick installation.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="modulate"></a>-modulate <var>brightness</var>[,<var>saturation</var>,<var>hue</var>]</h3></div><p class="magick-description">Vary the <var>brightness</var>, <var>saturation</var>, and <var>hue</var> of an image.</p><p>The arguments are given as a percentages of variation. A value of 100 meansno change, and any missing values are taken to mean 100.</p><p>The <var>brightness</var> is a multiplier of the overallbrightness of the image, so 0 means pure black, 50 is half as bright, 200 istwice as bright. To invert its meaning <a href="command-line-options.html#negate">-negate</a> the imagebefore and after. </p><p>The <var>saturation</var> controls the amount of color in animage. For example, 0 produce a grayscale image, while a large value such as200 produce a very colorful, 'cartoonish' color.</p><p>The <var>hue</var> argument causes a "rotation" of the colorswithin the image by the amount specified. For example, 50 results ina 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 theimage. Using a value of 300 is a 360 degree rotation resulting in no change tothe original image. </p><p>For example, to increase the color brightness by 20% and decrease the colorsaturation by 10% and leave the hue unchanged, use <ahref>-modulate 120,90.</ahref></p><p>Use <a href="command-line-options.html#set">-set</a> attribute of '<code>option:modulate:colorspace</code>' to specify which colorspace tomodulate.  Choose from <code>HCL</code>, <code>HCLp</code>, <code>HSB</code>, <code>HSI</code>, <code>HSL</code> (the default), <code>HSV</code>, <code>HWB</code>, or <code>LCH</code> (LCHuv).  For example,</p><pre>convert image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="moments"></a>-moments</h3></div><p class="magick-description">report image moments and perceptual hash.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="monitor"></a>-monitor</h3></div><p class="magick-description">monitor progress.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="monochrome"></a>-monochrome</h3></div><p class="magick-description">transform the image to black and white.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="morph"></a>-morph <var>frames</var></h3></div><p class="magick-description">morphs an image sequence.</p><p>Both the image pixels and size are linearly interpolated to give theappearance of a metamorphosis from one image to the next, over all the imagesin the current image list. The added images are the equivalent of a <ahref>-blend composition. The <var>frames</var>argument determine how many images to interpolate between each image. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="morphology"></a>-morphology</h3>  <h3 class="magick-header">-morphology <var>method</var>  <var>kernel</var></h3></div><p class="magick-description">apply a morphology method to the image.</p><p>Until I get around to writing an option summary for this, see <ahref>IM Usage Examples,Morphology. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="mosaic"></a>-mosaic</h3></div><p class="magick-description">an simple alias for the <a href="command-line-options.html#layers">-layers</a> method "mosaic"</p><div style="margin: auto;">  <h3 class="magick-header"><a id="motion-blur"></a>-motion-blur <var>radius</var><br>-motion-blur <var>radius</var>x<var>sigma</var>+<var>angle</var></h3></div><p class="magick-description">simulate motion blur.</p><p>Blur with the given radius, standard deviation (sigma), and angle.   Theangle given is the angle toward which the image is blurred.  That is thedirection people would consider the object is coming from. </p><p>Note that the blur is not uniform distribution, giving the motion adefinite sense of direction of movement. </p><p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine howpixels which are outside the image proper are blurred into the final result.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="name"></a>-name</h3></div><p class="magick-description">name an image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="negate"></a>-negate</h3></div><p class="magick-description">replace each pixel with its complementary color.</p><p>The red, green, and blue intensities of an image are negated. White becomesblack, yellow becomes blue, etc.  Use <a href="command-line-options.html#negate">+negate</a> to onlynegate the grayscale pixels of the image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="noise"></a>-noise <var>geometry</var><br>  +noise <var>type</var></h3></div><p class="magick-description">Add or reduce noise in an image.</p><p>The principal function of noise peak elimination filter is to smooth theobjects within an image without losing edge information and without creatingundesired structures.  The central idea of the algorithm is to replace a pixelwith its next neighbor in value within a pixel window, if this pixel has beenfound to be noise. A pixel is defined as noise if and only if this pixel isa maximum or minimum within the pixel window.</p><p>Use <code><a href="command-line-options.html#noise">-noise</a> <var>radius</var></code> tospecify the width of the neighborhood when reducing noise.  This is equivalentto using a <code><a href="command-line-options.html#statistic">-statistic</a> NonPeak</code> operation,which should be used in preference.</p><p>Use <a href="command-line-options.html#noise">+noise</a> followed by a noise <var>type</var> to add noise to an image. Choose from these noisetypes:</p><pre>GaussianImpulseLaplacianMultiplicativePoissonRandomUniform</pre><p>The amount of noise added can be controlled by the <code><ahref>-attenuate</ahref></code> setting. If unset the value isequivalent to 1.0, or a maximum noise addition.</p><p>Note that Random will replace the image with noise rather than add noise to the image. Use Uniform, if you wish to add random noise to the image.</p><p>To print a complete list of noises, use the <a href="command-line-options.html#list">-list noise</a> option.</p><p>Also see the <a href="command-line-options.html#evaluate">-evaluate</a> noise functions that allowsthe use of a controlling value to specify the amount of noise that should beadded to an image. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="normalize"></a>-normalize</h3></div><p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p><p>The intensity values are stretched to cover the entire range of possiblevalues. While doing so, black-out at most <var>2%</var> of the pixels andwhite-out at most <var>1%</var> of the pixels.</p><p>Note that as of ImageMagick 6.4.7-0, <a href="command-line-options.html#normalize">-normalize</a>is equivalent to <a href="command-line-options.html#contrast-stretch">-contrast-stretch 2%x1%</a>.(Before this version, it was equivalent to <a href="command-line-options.html#contrast-stretch">-contrast-stretch 2%x99%</a>).</p><p>All the channels are normalized in concert by the came amount so as topreserve color integrity, when the default <a href="command-line-options.html#channel">+channel</a>setting is in use.  Specifying any other <a href="command-line-options.html#channel">-channel</a>setting will normalize the RGB channels independently.</p><p>See  <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> for more details.Also see <a href="command-line-options.html#auto-level">-auto-level</a> for a 'perfect' normalizationthat is better suited to mathematically generated images. </p><p>This operator is under review for re-development. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="opaque"></a>-opaque <var>color</var></h3></div><p class="magick-description">change this color to the fill color within the image.</p><p>The <var>color</var> argument is defined using the formatdescribed under the <a href="command-line-options.html#fill">-fill</a> option.  The <a href="command-line-options.html#fuzz">-fuzz</a> setting can be used to match and replace colors similar to the onegiven.</p><p>Use <a href="command-line-options.html#opaque">+opaque</a> to paint any pixel that does not matchthe target color. </p><p>The <a href="command-line-options.html#transparent">-transparent</a>  operator is exactly the sameas <a href="command-line-options.html#opaque">-opaque</a> but replaces the matching color withtransparency rather than the current <a href="command-line-options.html#fill">-fill</a> color setting.To ensure that it can do this it also ensures that the image has an alphachannel enabled, as per "<code><a href="command-line-options.html#alpha">-alpha</a> set</code>", forthe new transparent colors, and does not require you to modify the <ahref>-channel to enable alpha channel handling. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="ordered-dither"></a>-ordered-dither <var>threshold_map</var>{,<var>level</var>...}</h3></div><p class="magick-description">dither the image using a pre-defined  ordered dither <var>threshold map</var> specified, and a uniform color map with thegiven number of <var>levels</var> per color channel.</p><p>You can choose from these standard threshold maps:</p><pre class="pre-scrollable">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)h3x4a       4x1   Halftone 4x4 (angled)h6x6a       6x1   Halftone 6x6 (angled)h8x8a       8x1   Halftone 8x8 (angled)h3x4o             Halftone 4x4 (orthogonal)h6x6o             Halftone 6x6 (orthogonal)h8x8o             Halftone 8x8 (orthogonal)h36x16o           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 <code>threshold</code> generated a simple 50% threshold of the image.This could be used with <var>level</var> to do the equivalent of <ahref>-posterize to reduce an image to basic primary colors.</ahref></p><p>The <code>checks</code> pattern produces a 3 level checkerboard  ditherpattern. That is a grayscale will become a pattern of solid black, solidwhite, and  mid-tone colors into a checkerboard pattern of black and white.</p><p>You can define your own <var>threshold map</var> for ordereddithering and halftoning your images, in either personal or system<code>thresholds.xml</code> 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="command-line-options.html#list">-list threshold</a> option.</p><p>Note that at this time the same threshold dithering map is used for allcolor channels, no attempt is made to offset or rotate the map for differentchannels is made, to create an offset printing effect. Also as the maps aresimple threshold levels, the halftone and circle maps will create incompletecircles along the edges of a colored area. Also all the effects are purelyon/off boolean effects, without anti-aliasing to make the circles smoothlooking. Large dots can be made to look better with a small amount of blurringafter being created. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="orient"></a>-orient <var>image orientation</var></h3></div><p class="magick-description">specify orientation of a digital camera image.</p><p>Choose from these orientations:</p><pre>bottom-left    right-topbottom-right   top-leftleft-bottom    top-rightleft-top       undefinedright-bottom</pre><p>To print a complete list of orientations, use the <a href="command-line-options.html#list">-listorientation</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="page"></a>-page <var>geometry</var><br>  -page <var>media</var>[<var>offset</var>][{<var>^!&lt;&gt;</var>}]<br>  +page  </h3></div><p class="magick-description">Set the size and location of an image on the larger virtual canvas.</p><p>See <a href="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 <var>media</var> (see below). Offsets can then be added as with other<var>geometry</var> arguments (e.g. <ahref>-page <code>Letter+43+43</code>).</ahref></p><p>Use <var>media</var> as shorthand to specify the dimensions (<var>width</var>x<var>height</var>) of the <var>PostScript</var> page in dots per inch or a TEXT page in pixels.The choices for a PostScript page are:</p><dl class="dl-horizontal"><dt> 11x17      </dt> <dd>  792 x 1224</dd> <dt> Ledger     </dt> <dd> 1224 x  792</dd> <dt> Legal      </dt> <dd>  612 x 1008</dd> <dt> Letter     </dt> <dd>  612 x  792</dd> <dt> LetterSmall</dt> <dd>  612 x  792</dd> <dt> ArchE      </dt> <dd> 2592 x 3456</dd> <dt> ArchD      </dt> <dd> 1728 x 2592</dd> <dt> ArchC      </dt> <dd> 1296 x 1728</dd> <dt> ArchB      </dt> <dd>  864 x 1296</dd> <dt> ArchA      </dt> <dd>  648 x  864</dd> <dt> A0         </dt> <dd> 2380 x 3368</dd> <dt> A1         </dt> <dd> 1684 x 2380</dd> <dt> A2         </dt> <dd> 1190 x 1684</dd> <dt> A3         </dt> <dd>  842 x 1190</dd> <dt> A4         </dt> <dd>  595 x  842</dd> <dt> A4Small    </dt> <dd>  595 x  842</dd> <dt> A5         </dt> <dd>  421 x  595</dd> <dt> A6         </dt> <dd>  297 x  421</dd> <dt> A7         </dt> <dd>  210 x  297</dd> <dt> A8         </dt> <dd>  148 x  210</dd> <dt> A9         </dt> <dd>  105 x  148</dd> <dt> A10        </dt> <dd>   74 x  105</dd> <dt> B0         </dt> <dd> 2836 x 4008</dd> <dt> B1         </dt> <dd> 2004 x 2836</dd> <dt> B2         </dt> <dd> 1418 x 2004</dd> <dt> B3         </dt> <dd> 1002 x 1418</dd> <dt> B4         </dt> <dd>  709 x 1002</dd> <dt> B5         </dt> <dd>  501 x  709</dd> <dt> C0         </dt> <dd> 2600 x 3677</dd> <dt> C1         </dt> <dd> 1837 x 2600</dd> <dt> C2         </dt> <dd> 1298 x 1837</dd> <dt> C3         </dt> <dd>  918 x 1298</dd> <dt> C4         </dt> <dd>  649 x  918</dd> <dt> C5         </dt> <dd>  459 x  649</dd> <dt> C6         </dt> <dd>  323 x  459</dd> <dt> Flsa       </dt> <dd>  612 x  936</dd> <dt> Flse       </dt> <dd>  612 x  936</dd> <dt> HalfLetter </dt> <dd>  396 x  612</dd> </dl><p>This option is also used to place subimages when writing to a multi-imageformat that supports offsets, such as GIF89 and MNG. When used for thispurpose the offsets are always measured from the top left corner of the canvasand are not affected by the <a href="command-line-options.html#gravity">-gravity</a> option. Toposition a GIF or MNG image, use <a href="command-line-options.html#page">-page</a><var>{+-}x{+-}y</var> (e.g.  -page +100+200). When writing to a MNGfile, a <a href="command-line-options.html#page">-page</a> option appearing ahead of the first image inthe sequence with nonzero width and height defines the width and height valuesthat are written in the <code>MHDR</code> chunk.  Otherwise, the MNG width andheight are computed from the bounding box that contains all images in thesequence. When writing a GIF89 file, only the bounding box method is used todetermine its dimensions.</p><p>For a PostScript page, the image is sized as in <ahref>-geometry but positioned relative to the <var>lowerleft-hand corner</var> of the page by {+-}<code>x</code><var>offset</var>{+-}<code>y</code> <var>offset</var>. Use <ahref>-page 612x792, for example, to center the image within thepage. If the image size exceeds the PostScript page, it is reduced to fit thepage. The default gravity for the <a href="command-line-options.html#page">-page</a> option is <var>NorthWest</var>, i.e., positive <code>x</code> and <code>y</code> <var>offset</var> are measured rightward and downward from the top leftcorner of the page, unless the <a href="command-line-options.html#gravity">-gravity</a> option ispresent with a value other than <var>NorthWest</var>.</ahref></ahref></p><p>The default page dimensions for a TEXT image is 612x792.</p><p>This option is used in concert with <a href="command-line-options.html#density">-density</a>.</p><p>Use <a href="command-line-options.html#page">+page</a> to remove the page settings for an image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="paint"></a>-paint <var>radius</var></h3></div><p class="magick-description">simulate an oil painting.</p><p>Each pixel is replaced by the most frequent color in a circularneighborhood whose width is specified with <var>radius</var>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="path"></a>-path <var>path</var></h3></div><p class="magick-description">write images to this path on disk.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="pause_animate_"></a>-pause <var>seconds</var></h3></div><p class="magick-description">Pause between animation loops</p><p>Pause for the specified number of seconds before repeating the animation.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="pause_import_"></a>-pause <var>seconds</var></h3></div><p class="magick-description">Pause between snapshots.</p><p>Pause for the specified number of seconds before taking the next snapshot.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="perceptible"></a>-perceptible <var>epsilon</var></h3></div><p class="magick-description">set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="ping"></a>-ping</h3></div><p class="magick-description">efficiently determine image characteristics.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="pointsize"></a>-pointsize <var>value</var></h3></div><p class="magick-description">pointsize of the PostScript, OPTION1, or TrueType font.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="polaroid"></a>-polaroid <var>angle</var></h3></div><p class="magick-description">simulate a Polaroid picture.</p><p>Use <code>+polaroid</code> to rotate the image at a random angle between -15 and +15 degrees.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="poly"></a>-poly <var>"wt,exp ..."</var></h3></div><p class="magick-description">combines multiple images according to a weighted sum of polynomials; one floating point weight (coefficient) and one floating point polynomial exponent (power) for each image expressed as comma separated pairs.</p><p> The weights should typically be fractions between -1 and 1. But the sum of weights should be 1 or at least between 0 and 1 to avoid clamping in non-hdri mode at black and white.</p><p>The exponents may be positive, negative or zero. A negative exponent is equivalent to 1 divided by the image raised to the corresponding positive exponent. A zero exponent always produces 1 scaled by quantumrange to white, i.e. wt*white, no matter what the image.</p><p>The format is: <var>output = wt1*image1^exp1 + wt2*image2^exp2 </var>...</p><p>Some simple uses are:</p><ul><li>A weighted sum of each image provided all weights add to unity and all exponents=1. If the the weights are all equal to 1/(number of images), then this is equivalent to <a href="command-line-options.html#profile">-evaluate-sequence</a> <var>mean</var>.</li><li>The sum of squares of two or more images, provided the weights are equal (and sum to 1 to avoid clamping) and the exponents equal 2.</li></ul><p>Note that one may add a constant color to the expression simply by using xc:somecolor for one of the images and specifying the desired weight and exponent equal to 0.</p><p>Similarly one may add white to the expression by simply using null: (or xc:white) for one of the images with the appropriate weight and exponent equal to 0.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="posterize"></a>-posterize <var>levels</var></h3></div><p class="magick-description">reduce the image to a limited number of color levels per channel.</p><p>Very low values of <var>levels</var>, e.g., 2, 3, 4, have the mostvisible effect.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="precision"></a>-precision <var>value</var></h3></div><p class="magick-description">set the maximum number of significant digits to be printed.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="preview"></a>-preview <var>type</var></h3></div><p class="magick-description">image preview type.</p><p>Use this option to affect the preview operation of an image (e.g.<code>convert file.png -preview Gamma Preview:gamma.png</code>). Choose fromthese previews:</p><pre class="pre-scrollable">AddNoiseBlurBrightnessCharcoalDespeckleDullEdgeDetectGammaGrayscaleHueImplodeJPEGOilPaintQuantizeRaiseReduceNoiseRollRotateSaturationSegmentShadeSharpenShearSolarizeSpiffSpreadSwirlThresholdWave</pre><p>To print a complete list of previews, use the <a href="command-line-options.html#list">-list preview</a> option.</p><p>The default preview is <code>JPEG</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="print"></a>-print <var>string</var></h3></div><p class="magick-description">interpret string and print to console.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="process"></a>-process <var>command</var></h3></div><p class="magick-description">process the image with a custom image filter.</p><p>The command arguments has the form <code>"module arg1 arg2 arg3 ...argN"</code> where <code>module</code> is the name of the module to invoke (e.g."Analyze") and arg1 arg2 arg3 ... argN are an arbitrary number of arguments topass to the process module.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="profile"></a>-profile <var>filename</var><br>  +profile <var>profile_name</var></h3></div><p class="magick-description">Manage ICM, IPTC, or generic profiles in an image.</p><p>Using <a href="command-line-options.html#profile">-profile</a> <var>filename</var> adds anICM (ICC color management), IPTC (newswire information), or a generic profileto the image.</p><p>Use <a href="command-line-options.html#profile">+profile <var>profile_name</var></a> toremove the indicated profile. ImageMagick uses standard filename globbing, sowildcard expressions may be used to remove more than one profile.  Here weremove all profiles from the image except for the XMP profile:  <code>+profile"!xmp,*"</code>. </p><p>Use <code>identify -verbose</code> to find out which profiles are in theimage file. Use <a href="command-line-options.html#strip">-strip</a> to remove all profiles (andcomments).</p><p>To extract a profile, the <a href="command-line-options.html#profile">-profile</a> option is notused. Instead, simply write the file to an image format such as <var>APP1, 8BIM, ICM,</var> or <var>IPTC</var>.</p><p>For example, to extract the Exif data (which is stored in JPEG files in the<var>APP1</var> profile), use.</p><pre>convert cockatoo.jpg profile.exif</pre><p>It is important to note that results may depend on whether or not theoriginal image already has an included profile. Also, keep in mind that <ahref>-profile is an "operator" (as opposed to a "setting") andtherefore a conversion is made each time it is encountered, in order, in thecommand-line. For instance, in the following example, if the original image isCMYK with profile, a CMYK-CMYK-RGB conversion results.</ahref></p><pre>convert CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff</pre><p>Furthermore, since ICC profiles are not necessarily symmetric, extraconversion steps can yield unwanted results.  CMYK profiles are often veryasymmetric since they involve 3−&gt;4 and 4−&gt;3 channel mapping.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="quality"></a>-quality <var>value</var></h3></div><p class="magick-description">JPEG/MIFF/PNG compression level.</p><p>For the JPEG and MPEG image formats, quality is 1 (lowest image quality andhighest compression) to 100 (best quality but least effective compression).The default is to use the estimated quality of your input image if it canbe determined, otherwise 92. When the quality is greater than 90, then thechroma channels are not downsampled.Use the <a href="command-line-options.html#sampling-factor">-sampling-factor</a> option to specify thefactors for chroma downsampling.</p><p>For the JPEG-2000 image format, quality is mapped using a non-linearequation to the compression ratio required by the Jasper library. Thisnon-linear equation is intended to loosely approximate the quality provided bythe JPEG v1 format. The default quality value 100, a request for non-lossycompression.  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 zlibcompression level (quality / 10) and filter-type (quality % 10).  The defaultPNG "quality" is 75, which means compression level 7 with adaptive PNGfiltering, unless the image has a color map, in which case it meanscompression level 7 with no PNG filtering.</p><p>For compression level 0 (quality value less than 10), the Huffman-onlystrategy is used, which is fastest but not necessarily the worstcompression.</p><p>If filter-type is 4 or less, the specified PNG filter-type is used forall scanlines:</p><dl class="dl-horizontal"><dt>0</dt><dd>none</dd><dt>1</dt><dd>sub</dd><dt>2</dt><dd>up</dd><dt>3</dt><dd>average</dd><dt>4</dt><dd>Paeth</dd></dl><p>If filter-type is 5, adaptive filtering is used when quality is greaterthan 50 and the image does not have a color map, otherwise no filtering isused.</p><p>If filter-type is 6, adaptive filteringwith <var>minimum-sum-of-absolute-values</var> is used.</p><p>Only if the output is MNG, if filter-type is 7, the LOCO colortransformation (intrapixel differencing) and adaptive filteringwith <var>minimum-sum-of-absolute-values</var> are used.</p><p>If the filter-type is 8 the zlib Z_RLE compression strategy (or theZ_HUFFMAN_ONLY strategy, when compression level is 0) is used withadaptive PNG filtering.</p><p>If the filter-type is 9 the zlib Z_RLE compression strategy (or theZ_HUFFMAN_ONLY strategy, when compression level is 0) is used withno PNG filtering.</p><p>The quality setting has no effect on the appearance or signature of PNGand MNG images, since the compression is always lossless.</p><p>Not all combinations of compression level, strategy, and PNG filter typecan be obtained using the -quality option.  For more precise control,you can use the PNG:compression-level=N, PNG:compression-strategy=N, andPNG:compression-filter=N defines, respectively, instead.See <a href="command-line-options.html#define">-define</a>. Values from the defines take precedenceover values from the -quality option.</p><p>For further information, seethe <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p><p>For the MIFF and TIFF image formats, quality/10 is the <a href="command-line-options.html#compress">Zip/BZip</a> 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 BPG image format, quality/2 is the actual BPG compression level (range from 0 to 51).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="quantize"></a>-quantize <var>colorspace</var></h3></div><p class="magick-description">reduce colors using this colorspace.</p><p>This setting defines the colorspace used to sort out and reduce the numberof colors needed by an image (for later dithering) by operators such as <ahref>-colors, Note that color reduction also happensautomatically when saving images to color-limited image file formats, such asGIF, and PNG8.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="quiet"></a>-quiet</h3></div><p class="magick-description">suppress all warning messages. Error messages are still reported.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="radial-blur"></a>-radial-blur  <var>angle</var></h3></div><p class="magick-description">Blur around the center of the image.</p><p>Note that this is actually a rotational blur rather than a radial and assuch actually mis-named. </p><p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine howpixels which are outside the image proper are blurred into the final result.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="raise"></a>-raise <var>thickness</var></h3></div><p class="magick-description">Lighten or darken image edges.</p><p>This will create a 3-D effect. Use <a href="command-line-options.html#raise">-raise</a> to createa raised effect, otherwise use <a href="command-line-options.html#raise">+raise</a>.  </p><p>Unlike the similar <a href="command-line-options.html#frame">-frame</a> option, <ahref>-raise does not alter the dimensions of the image.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="random-threshold"></a>-random-threshold <var>low</var>x<var>high</var></h3></div><p class="magick-description">Apply a random threshold to the image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="red-primary"></a>-red-primary <var>x,y</var></h3></div><p class="magick-description">Set the red chromaticity primary point.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="regard-warnings"></a>-regard-warnings</h3></div><p class="magick-description">Pay attention to warning messages.</p><p>This option causes some warnings in some image formats to be treatedas errors. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="remap"></a>-remap <var>filename</var></h3></div><p class="magick-description">Reduce the number of colors in an image to the colors used by this image.</p><p>If the <a href="command-line-options.html#dither">-dither</a> setting is enabled (the default) thenthe given colors are dithered over the image as necessary, otherwise the closestcolor (in RGB colorspace) is selected to replace that pixel in the image. </p><p>As a side effect of applying a <a href="command-line-options.html#remap">-remap</a> of colors across allimages in the current image sequence, all the images will have the same colortable.  That means that when saved to a file format such as GIF, it will usethat 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="command-line-options.html#remap">+remap</a> to reduce all images in the current imagesequence to use a common color map over all the images. This equivalent toappending all the images together (without extra background colors) and colorreducing those images using <a href="command-line-options.html#colors">-colors</a> with a 256 colorlimit, then <a href="command-line-options.html#remap">-remap</a> those colors over the original list ofimages. 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 <ahref>+remap should not perform any color reduction or dithering, asno color changes are needed. In that case, its only effect is to force the useof a global color table.  This recommended after using either <ahref>-colors or <a href="command-line-options.html#ordered-dither">-ordered-dither</a> toreduce the number of colors in an animated image sequence. </ahref></ahref></p><p>Note, the remap image colormap has at most 8-bits of precision. Deeper color maps are automagically coalesced with other colors to meet this requirement.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="region"></a>-region <var>geometry</var></h3></div><p class="magick-description">Set a region in which subsequent operations apply.</p><p>The <var>x</var> and <var>y</var> offsets are treatedin the same manner as in <a href="command-line-options.html#crop">-crop</a>.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="remote"></a>-remote</h3></div><p class="magick-description">perform a remote operation.</p><p>The only command recognized is the name of an image file to load.</p><p>If you have more than one <a href="display.html">display</a> applicationrunning simultaneously, use the <a href="command-line-options.html#window"> window</a> option tospecify which application to control.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="render"></a>-render</h3></div><p class="magick-description">render vector operations.</p><p>Use <a href="command-line-options.html#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;"><h3 class="magick-header"><a id="repage"></a>-repage <var>geometry</var></h3></div><p class="magick-description">Adjust the canvas and offset information of the image.</p><p>This option is like <a href="command-line-options.html#page">-page</a> but acts as an image operatorrather than a setting.  You can separately set the canvas size or the offsetof the image on that canvas by only providing those components. </p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><p>If a <code>!</code> flag is given the offset given is added to the existingoffset to move the image relative to its previous position. This useful foranimation sequences. </p><p>A given a canvas size of zero such as '<code>0x0</code>' forces it torecalculate the canvas size so the image (at its current offset) will appearcompletely on that canvas (unless it has a negative offset).</p><p>Use <a href="command-line-options.html#repage">+repage</a> to completely remove/reset the virtualcanvas meta-data from the images. </p><p>The <a href="command-line-options.html#set">-set</a> '<code>page</code>' option can be used todirectly assign virtual canvas meta-data. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="resample"></a>-resample <var>horizontal</var>x<var>vertical</var></h3></div><p class="magick-description">Resample image to specified horizontal and vertical resolution.</p><p>Resize the image so that its rendered size remains the same as the originalat the specified target resolution. For example, if a 300 DPI image renders at3 inches by 2 inches on a 300 DPI device, when the image has been resampled to72 DPI, it will render at 3 inches by 2 inches on a 72 DPI device.  Note thatonly a small number of image formats (e.g. JPEG, PNG, and TIFF) are capable ofstoring the image resolution. For formats which do not support an imageresolution, the original resolution of the image must be specified via <ahref>-density on the command line prior to specifying theresample resolution.</ahref></p><p>Note that Photoshop stores and obtains image resolution from a proprietaryembedded profile. If this profile exists in the image, then Photoshop willcontinue to treat the image using its former resolution, ignoring the imageresolution specified in the standard file header.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="resize"></a>-resize <var>geometry</var></h3></div><p class="magick-description">Resize an image.</p><p>See <a href="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, areignored, and the <a href="command-line-options.html#gravity">-gravity</a> option has no effect.</p><p>If the <a href="command-line-options.html#filter">-filter</a> optionor <code>-define filter:option=value</code> precedes the <ahref>-resize option, the image is resized with the specifiedfilter.</ahref></p><p>Many image processing algorithms assume your image is in a linear-lightcoding.  If your image is gamma-corrected, you can remove the nonlinear gammacorrection, apply the transform, then restore it like this:</p><pre>convert portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \  -quality 92 passport.jpg</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="respect-parentheses"></a>-respect-parentheses</h3></div><p class="magick-description">settings remain in effect until parenthesis boundary.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="reverse"></a>-reverse</h3></div><p class="magick-description">Reverse the order of images in the current image list.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="roll"></a>-roll {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3></div><p class="magick-description">roll an image vertically or horizontally by the amount given.</p><p>A negative <var>x</var> offset rolls the image right-to-left.A negative <var>y</var> offset rolls the image bottom-to-top.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="rotate"></a>-rotate <var>degrees</var>{<var>&lt;</var>}{<var>&gt;</var>}</h3></div><p class="magick-description">Apply Paeth image rotation (using shear operations) to the image.</p><p>Use <code>&gt;</code> to rotate the image only if its width exceeds theheight. <code>&lt;</code> rotates the image <var>only</var> if its width is lessthan the height. For example, if you specify <code>-rotate "-90&gt;"</code> andthe image size is 480x640, the image is not rotated. However, if the image is640x480, it is rotated by -90 degrees. If you use <code>&gt;</code> or<code>&lt;</code>, enclose it in quotation marks to prevent it from beingmisinterpreted as a file redirection.</p><p>Empty triangles in the corners, left over from rotating the image, arefilled with the <code>background</code> color. </p><p>See also the <a href="command-line-options.html#distort">-distort</a> operator and specifically the'<code>ScaleRotateTranslate</code>' distort method. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="sample"></a>-sample <var>geometry</var></h3></div><p class="magick-description">minify / magnify the image with pixel subsampling and pixel replication, respectively.</p><p>Change the image size simply by directly sampling the pixels originalfrom the image.  When magnifying, pixels are replicated in blocks.  Whenminifying, pixels are sub-sampled (i.e., some rows and columns are skippedover). </p><p>The results are thus equivalent to using <a href="command-line-options.html#resize">-resize</a> witha <a href="command-line-options.html#filter">-filter</a> setting of <code>point</code> (nearestneighbor), though <a href="command-line-options.html#sample">-sample</a> is a lot faster, as itavoids all the filter processing of the image. As such it completely ignoresthe current <a href="command-line-options.html#filter">-filter</a> setting. </p><p>The key feature of the <a href="command-line-options.html#sample">-sample</a> is that no new colorswill be added to the resulting image, though some colors may disappear. </p><p>See <a href="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, areignored, unlike <a href="command-line-options.html#resize">-resize</a>. </p><p>The actual sampling point is the middle of the sub-region being sampled.As such a single pixel sampling of an image will take the middle pixel, (ortop-left-middle if image has even dimensions).  However the <ahref>-define '<code>sample:offset</code>' can be set to modifythis position some other location within each sub-region being sampled, asa percentage offset.</ahref></p><p>By default this value is '<code>50</code>' for the midpoint, but could be setto '<code>0</code>' for top-left, '<code>100</code>' for bottom-right, or withseparate X and Y offsets such as '<code>0x50</code>' for left-middle edge ofsampling sub-region.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="sampling-factor"></a>-sampling-factor <var>horizontal-factor</var>x<var>vertical-factor</var></h3></div><p class="magick-description">sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p><p>This option specifies the sampling factors to be used by the JPEG encoderfor chroma downsampling. If this option is omitted, the JPEG library will useits own default values. When reading or writing the YUV format and whenwriting the M2V (MPEG-2) format, use <ahref>-sampling-factor 2x1 or <ahref>-sampling-factor 4:2:2 to specify the 4:2:2downsampling method.</ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="scale"></a>-scale <var>geometry</var></h3></div><p class="magick-description">minify / magnify the image with pixel block averaging and pixel replication, respectively.</p><p>Change the image size simply by replacing pixels by averaging pixelstogether when minifying, or replacing pixels when magnifying.  </p><p>The results are thus equivalent to using <a href="command-line-options.html#resize">-resize</a> witha <a href="command-line-options.html#filter">-filter</a> setting of <code>box</code>.  Though it is a lotfaster, as it avoids all the filter processing of the image. As such itcompletely ignores the current <a href="command-line-options.html#filter">-filter</a> setting. </p><p>If when shrinking (minifying) images the original image is some integermultiple of the new image size, the number of pixels averaged together toproduce the new pixel color is the same across the whole image. This isa special case known as 'binning' and is often used as a method of reducingnoise in image such as those generated by digital cameras, especially in lowlight conditions. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="scene"></a>-scene <var>value</var></h3></div><p class="magick-description">set scene number.</p><p>This option sets the scene number of an image or the first image in an image sequence.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="screen"></a>-screen</h3></div><p class="magick-description">specify the screen to capture.</p><p>This option indicates that the GetImage request used to obtain the imageshould be done on the root window, rather than directly on the specifiedwindow. In this way, you can obtain pieces of other windows that overlap thespecified window, and more importantly, you can capture menus or other popupsthat are independent windows but appear over the specified window.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="seed"></a>-seed</h3></div><p class="magick-description">seed a new sequence of pseudo-random numbers</p><div style="margin: auto;">  <h3 class="magick-header"><a id="segment"></a>-segment <var>cluster-threshold</var>x<var>smoothing-threshold</var></h3></div><p class="magick-description">segment the colors of an image.</p><p>Segment an image by analyzing the histograms of the color components andidentifying units that are homogeneous with the fuzzy c-means technique. Thisis part of the ImageMagick color quantization routines. </p><p>Specify <var>cluster threshold</var> as the number of pixels ineach cluster that must exceed the cluster threshold to be considered valid.<var>Smoothing threshold</var> eliminates noise in the secondderivative of the histogram. As the value is increased, you can expecta smoother second derivative.  The default is 1.5.</p><p>If the <a href="command-line-options.html#verbose">-verbose</a> setting is defined, a detailed reportof the color clusters is returned.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="selective-blur"></a>-selective-blur <var>radius</var><br>-selective-blur <var>radius</var>x<var>sigma</var>{<var>+threshold</var>}</h3></div><p class="magick-description">Selectively blur pixels within a contrast threshold.</p><p>Blurs those pixels that are less than or equal to the threshold incontrast. The threshold may be expressed as a fraction of <var>QuantumRange</var> or as a percentage.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="separate"></a>-separate</h3></div><p class="magick-description">separate an image channel into a grayscale image.  Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="sepia-tone"></a>-sepia-tone <var>threshold</var></h3></div><p class="magick-description">simulate a sepia-toned photo.</p><p>Specify <var>threshold</var> as the percent threshold of the intensity (0 - 99.9%).</p><p>This option applies a special effect to the image, similar to the effectachieved in a photo darkroom by sepia toning.  Threshold ranges from 0 to <var>QuantumRange</var> and is a measure of the extent of the sepiatoning.  A threshold of 80% is a good starting point for a reasonabletone.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="set"></a>-set <var>key value</var></h3>  <h3 class="magick-header">+set <var>key</var></h3></div><p class="magick-description">sets image attributes and properties for images in the current image sequence.</p><p>This will assign (or modify) specific settings attached to all the imagesin the current image sequence.  Using the <a href="command-line-options.html#set">+set</a> form of theoption will either remove, or reset that setting to a default state, asappropriate.  </p><p>For example, it will modify specific well known image meta-data'attributes' such as those normally overridden by: the options <ahref>-delay, <a href="command-line-options.html#dispose">-dispose</a>, and <ahref>-page, <a href="command-line-options.html#colorspace">-colorspace</a>; generallyassigned before the image is read in, by using a <var>key</var> ofthe same name. </ahref></ahref></p><p>If the given <var>key</var> 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="command-line-options.html#verbose">-verbose</a> information ("<code>info:</code>" output format) as "Properties".</p><p>This includes string 'properties' that are set by and assigned to imagesusing the options <a href="command-line-options.html#comment">-comment</a>, <a href="command-line-options.html#label">-label</a>, <a href="command-line-options.html#caption">-caption</a>. These options actually assigna global 'artifact' which are automatically assigned (and any <a href="escape.html">Format PercentEscapes</a> expanded) to images as they are read in.  For example:</p><pre>-&gt; convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.pngidentify -format %c rose.pngRose is a rose is a rose is a rose</pre><p>The set value can also make use of <a href="escape.html">Format and Print ImageProperties</a> in the defined value.  For example:</p><pre>-&gt; convert rose: -set origsize '%wx%h' -resize 50% \  -format 'Old size = %[origsize]  New size = %wx%h' info:Old size = 70x46  New size = 35x23</pre><p>Other well known 'properties' that are available include:'<code>date:create</code>' and '<code>date:modify</code>' and'<code>signature</code>'. </p><p>The <a href="command-line-options.html#repage">-repage</a> operator will also allow you to modifythe '<code>page</code>' attribute of an image for images already in memory (alsosee <a href="command-line-options.html#repage">-page</a>).  However it is designed to provide a finercontrol of the sub-parts of this 'attribute'. The <a href="command-line-options.html#set">-set page</a>option will only provide a direct, unmodified assignment of  '<code>page</code>'attribute. </p><p>This option can also associate a colorspace or profile with your image.For example,</p><pre>convert image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd</pre><p>Some 'properties' must be defined in a specific way to be used. Forexample only 'properties' prefixed with "<code>filename:</code>" can be used tomodify the output filename of an image. For example</p><pre>convert rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'</pre><p>If the setting value is prefixed with "<code>option:</code>" the setting willbe saved as a global "Artifact" exactly as if it was set using the <ahref>-define option. As such settings are global in scope, theycan be used to pass 'attributes' and 'properties' of one specific image,in a way that allows you to use them in a completely different image, even ifthe original image has long since been modified or destroyed. For example: </ahref></p><pre>convert rose:  -set option:rosesize '%wx%h' -delete 0 \  label:'%[rosesize]'   label_size_of_rose.gif"</pre><p>Note that <a href="escape.html">Format Percent Escapes</a> will only matcha 'artifact' if the given <var>key</var> does not match an existing'attribute' or 'property'.  </p><p>You can set the attributes of the image registry by prefixing the valuewith <code>registry:</code>.</p><p>The <a href="command-line-options.html#set">-set profile</a> option can also be used to injectpreviously-formatted ancillary chunks into the output PNG file, usingthe commandline option as shown below or by setting the profile via aprogramming interface:</p><pre>convert in.png -set profile PNG-chunk-x:&lt;filename&gt; out.png</pre><p>where <var>x</var> is a location flag and<var>filename</var> is a file containing the chunkname 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 notbe 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 chunksof the same type, then add a short unique string after the "x" to preventsubsequent profiles from overwriting the preceding ones, e.g.,</p><pre>convert in.png -set profile PNG-chunk-b01:file01 \   -profile PNG-chunk-b02:file02 out.png</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="shade"></a>-shade <var>azimuth</var>x<var>elevation</var></h3></div><p class="magick-description">shade the image using a distant light source.</p><p>Specify <var>azimuth</var> and <var>elevation</var> asthe position of the light source. Use <a href="command-line-options.html#shade">+shade</a> to returnthe shading results as a grayscale image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="shadow"></a>-shadow <var>percent-opacity</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3></div><p class="magick-description">simulate an image shadow.</p><div style="margin: auto;">  <h3 class="magick-header"><aid>-shared-memory</aid></h3></div><p class="magick-description">use shared memory.</p><p>This option specifies whether the utility should attempt to use sharedmemory for pixmaps. ImageMagick must be compiled with shared memory support,and the display must support the <var>MIT-SHM</var> extension.Otherwise, this option is ignored. The default is <code>True</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="sharpen"></a>-sharpen <var>radius</var><br>-sharpen <var>radius</var>x<var>sigma</var></h3></div><p class="magick-description">sharpen the image.</p><p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="shave"></a>-shave <var>geometry</var></h3></div><p class="magick-description">Shave pixels from the image edges.</p><p>The <var>size</var> portion of the <var>geometry</var>argument specifies the width of the region to be removed from both sides ofthe image and the height of the regions to be removed from top and bottom.Offsets are ignored.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="shear"></a>-shear <var>Xdegrees</var>[x<var>Ydegrees</var>]</h3></div><p class="magick-description">Shear the image along the x-axis and/or y-axis.</p><p>The shear angles may be positive, negative, or zero. When <var>Ydegrees</var> is omitted it defaults to 0. When both angles aregiven, the horizontal component of the shear is performed before the verticalcomponent.</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 amountof each is controlled by the respective shear angle. For horizontal shears,<var>Xdegrees</var> is measured clockwise relative to "up" (thenegative y-axis), sliding the top edge to the right when 0°&lt;<var>Xdegrees</var>&lt;90° and to the left when 90°&lt;<var>Xdegrees</var>&lt;180°.  For vertical shears <var>Ydegrees</var> is measured clockwise relative to "right" (thepositive x-axis), sliding the right edge down when 0°&lt;<var>Ydegrees</var>&lt;90° and up when 90°&lt;<var>Ydegrees</var>&lt;180°.</p><p>Empty triangles left over from shearing the image are filled with the colordefined by the <a href="command-line-options.html#fill">-background</a> option. The color is specifiedusing the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p><p>The horizontal shear is performed before the vertical part. This isimportant to note, since horizontal and vertical shears do not<var>commute</var>, i.e., the order matters in a sequence of shears. Forexample, the following two commands are not equivalent.</p><pre>convert logo: -shear 20x0 -shear 0x60 logo-sheared.pngconvert logo: -shear 0x60 -shear 20x0 logo-sheared.png</pre><p>The first of the two commands above is equivalent to the following, exceptfor the amount of empty space created; the command that follows generatesa smaller image, and so is a better choice in terms of time and space.</p><pre>convert logo: -shear 20x60 logo-sheared.png</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="sigmoidal-contrast"></a>-sigmoidal-contrast <var>contrast</var>x<var>mid-point</var></h3></div><p class="magick-description">increase the contrast without saturating highlights or shadows.</p><p>Increase the contrast of the image using a sigmoidal transfer functionwithout saturating highlights or shadows. <var>Contrast</var>indicates how much to increase the contrast. For example, 0 is none, 3 istypical and 20 is a lot.</p><p>The <var>mid-point</var> indicates where the maximum change'slope' in contrast should fall in the resultant image (0 is white; 50% ismiddle-gray; 100% is black). </p><p>By default the image contrast is increased, use <var>+sigmoidal-contrast</var> to decrease the contrast.</p><p>To achieve the equivalent of a sigmoidal brightness change (similar to a gamma adjustment), you would use <var>-sigmoidal-contrast{brightness}x0%</var> to increase brightness and <var>+sigmoidal-contrast {brightness}x0%</var> to decrease brightness.Note the use of '0' fo rthe mid-point of the sigmoidal curve. </p><p>Using a very high <var>contrast</var> will produce a sort of'smoothed thresholding' of the image.  Not as sharp (with high aliasingeffects) of a true threshold, but with tapered gray-levels around the threshold<var>mid-point</var>. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="silent"></a>-silent</h3></div><p class="magick-description">operate silently.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="similarity-threshold"></a>-similarity-threshold <var>value</var></h3></div><p class="magick-description">minimum RMSE for subimage match.</p><p>If this setting is used, then the search will stop as soon as it finds a match whose metric is less than or equal to the value. A partially filled second output image will result. Using a value of zero, will cause the search to stop at the first perfect match it finds. If this setting is left off, then the search will proceed to completion or as limited by <var>-dissimilarity-threshold</var>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="size"></a>-size <var>width</var>[x<var>height</var>][<var>+offset</var>]</h3></div><p class="magick-description">set the width and height of the image.</p><p>Use this option to specify the width and height of raw images whosedimensions are unknown such as <code>GRAY</code>, <code>RGB</code>, or<code>CMYK</code>. In addition to width and height, use <ahref>-size with an offset to skip any header information in theimage or tell the number of colors in a <code>MAP</code> image file, (e.g. -size640x512+256).</ahref></p><p>For Photo CD images, choose from these sizes:</p><pre>192x128384x256768x5121536x10243072x2048</pre><div style="margin: auto;">  <h3 class="magick-header"><a id="sketch"></a>-sketch <var>radius</var><br>-sketch <var>radius</var>x<var>sigma</var>+<var>angle</var></h3></div><p class="magick-description">simulate a pencil sketch.</p><p>Sketch with the given radius, standard deviation (sigma), and angle.   Theangle given is the angle toward which the image is sketched.  That is thedirection people would consider the object is coming from.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="smush"></a>-smush <var>offset</var></h3></div><p class="magick-description">smush an image sequence together.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="snaps"></a>-snaps <var>value</var></h3></div><p class="magick-description">Set the number of screen snapshots.</p><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;">  <h3 class="magick-header"><a id="solarize"></a>-solarize <var>threshold</var></h3></div><p class="magick-description">negate all pixels above the threshold level.</p><p>Specify <var>factor</var> as the percent threshold of the intensity (0 - 99.9%).</p><p>This option produces a <var>solarization</var> effect seen whenexposing a photographic film to light during the development process.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="sparse-color"></a>-sparse-color <var>method</var>  '<var>x</var>,<var>y</var> <var>color</var>  ...'</h3></div><p class="magick-description"> color the given image using the specified points of color, and filling the other intervening colors using the given methods. </p><dl class="dl-horizontal">    <dt>barycentric</dt>    <dd>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. </dd>    <dt>bilinear</dt>    <dd>Like barycentric but for 4 points. Less than 4 points        fall back to barycentric. </dd>    <dt>voronoi</dt>    <dd>Simply map each pixel to the to nearest color point        given. The result are polygonal 'cells' of solid color. </dd>    <dt>manhatten</dt>    <dd>Like voronoi, but resulting polygonal 'cells' are mapped to a fixed coordinate system.</dd>    <dt>shepards</dt>    <dd>Colors points biased on the ratio of inverse distance        squared. Generating spots of color in a sea of the average of        colors. </dd>    <dt>inverse</dt>    <dd>Colors points biased on the ratio of inverse distance.        This generates sharper points of color rather than rounded spots of        '<code>shepards</code>'  Generating spots of color in a sea of the        average of colors. </dd></dl><p>The points are placed according to the images location on the virtualcanvas (<a href="command-line-options.html#page">-page</a> or <a href="command-line-options.html#repage">-repage</a>offset), and do not actually have to exist on the given image, but may besome point beyond the edge of the image. All points are floating point values.</p><p>Only the color channels defined by the <a href="command-line-options.html#channel">-channel</a> aremodified, which means that by default matte/alpha transparency channel is noteffected. Typically transparency channel is turned off either before or afterthe operation. </p><p>Of course if some color points are transparent to generate a transparentgradient, then the image also requires transparency enabled to store thevalues. </p><p>All the above methods when given a single point of color will replace allthe colors in the image with the color given, regardless of the point. This islogical, and provides an alternative technique to recolor an image to somedefault value. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="splice"></a>-splice <var>geometry</var></h3></div><p class="magick-description">Splice the current background color into the image.</p><p>This will add rows and columns of the current <ahref>-background color into the given image according to thegiven  <a href="command-line-options.html#gravity">-gravity</a> geometry setting.  See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Essentially <a href="command-line-options.html#splice">-splice</a> will divide theimage into four quadrants, separating them by the inserted rows and columns.</ahref></p><p>If a dimension of geometry is zero no rows or columns will be added for thatdimension.  Similarly using a zero offset with the appropriate <ahref>-gravity setting will add rows and columns to the edges ofthe image, padding the image only along that one edge. Edge padding is what <ahref>-splice is most commonly used for. </ahref></ahref></p><p>If the exact same  <var>geometry</var> and <ahref>-gravity is later used with <a href="command-line-options.html#chop">-chop</a> theadded added all splices removed. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="spread"></a>-spread <var>amount</var></h3></div><p class="magick-description">displace image pixels by a random amount.</p><p>The argument <var>amount</var> defines the size of theneighborhood around each pixel from which to choose a candidate pixel toblend.</p><p>The lookup is controlled by the <a href="command-line-options.html#interpolate">-interpolate</a> setting.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="statistic"></a>-statistic <var>type</var> <var>geometry</var></h3></div><p class="magick-description">replace each pixel with corresponding statistic from the neighborhood.</p><p>Choose from these statistic types:</p><dl class="dl-horizontal"><dt>Gradient</dt><dd>maximum difference (max - min) value in neighborhood</dd><dt>Maximum</dt><dd>maximum value per channel in neighborhood</dd><dt>Minimum</dt><dd>minimum value per channel in neighborhood</dd><dt>Mean</dt><dd>average value per channel in neighborhood</dd><dt>Median</dt><dd>median value per channel in neighborhood</dd><dt>Mode</dt><dd>mode (most frequent) value per channel in neighborhood</dd><dt>Nonpeak</dt><dd>value just before or after the median value per channel in neighborhood</dd><dt>RMS</dt><dd>root mean square value per channel in neighborhood</dd><dt>StandardDeviation</dt><dd> standard deviation value per channel in neighborhood</dd></dl><div style="margin: auto;">  <h3 class="magick-header"><a id="stegano"></a>-stegano <var>offset</var></h3></div><p class="magick-description">hide watermark within an image.</p><p>Use an offset to start the image hiding some number of pixels from thebeginning of the image. Note this offset and the image size. You will needthis information to recover the steganographic image (e.g. display -size320x256+35 stegano:image.png).</p><div style="margin: auto;">  <h3 class="magick-header"><a id="stereo"></a>-stereo <var>+x</var>{<var>+y</var>}</h3></div><p class="magick-description">composite two images to create a red / cyan stereo anaglyph.</p><p>The left side of the stereo pair (second image) is saved as the red channel of the output image. The right side (first image) is saved as the green and blue channels. Red-green stereo glasses are required to properly view the stereo image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="storage-type"></a>-storage-type <var>type</var></h3></div><p class="magick-description">pixel storage type.  Here are the valid types:</p><dl class="dl-horizontal"><dt>char</dt><dd>unsigned characters</dd><dt>double</dt><dd>doubles</dd><dt>float</dt><dd>floats</dd><dt>integer</dt><dd>integers</dd><dt>long</dt><dd>longs</dd><dt>quantum</dt><dd>pixels in the native depth of your ImageMagick distribution</dd><dt>short</dt><dd>unsigned shorts</dd></dl><p>Float and double types are normalized from 0.0 to 1.0 otherwise the pixelsvalues range from 0 to the maximum value the storage type can support.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="stretch"></a>-stretch <var>fontStretch</var></h3></div><p class="magick-description">Set a type of stretch style for fonts.</p><p>This setting suggests a type of stretch that ImageMagick should try toapply to the currently selected font family. Select <var>fontStretch</var> from the following.</p><pre>AnyCondensedExpandedExtraCondensedExtraExpandedNormalSemiCondensedSemiExpandedUltraCondensedUltraExpanded</pre><p>To print a complete list of stretch types, use <a href="command-line-options.html#list">-liststretch</a>.</p><p>For other settings that affect fonts, see the options <ahref>-font, <a href="command-line-options.html#family">-family</a>, <ahref>-style, and <a href="command-line-options.html#weight">-weight</a>. </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="strip"></a>-strip</h3></div><p class="magick-description">strip the image of any profiles or comments.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="stroke"></a>-stroke <var>color</var></h3></div><p class="magick-description">color to use when stroking a graphic primitive.</p><p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p><p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="strokewidth"></a>-strokewidth <var>value</var></h3></div><p class="magick-description">set the stroke width.</p><p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="style"></a>-style <var>fontStyle</var></h3></div><p class="magick-description">Set a font style for text.</p><p>This setting suggests a font style that ImageMagick should try to apply tothe currently selected font family. Select <var>fontStyle</var> fromthe following.</p><pre>AnyItalicNormalOblique</pre><p>For other settings that affect fonts, see the options <ahref>-font, <a href="command-line-options.html#family">-family</a>, <ahref>-stretch, and <a href="command-line-options.html#weight">-weight</a>. </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="subimage-search"></a>-subimage-search</h3></div><p class="magick-description">search for subimage.</p><p>This option is required to have compare search for the best match locationof 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 willbe the "match score" image.</p><p>The "match-score" image is smaller containing a pixel for ever possibleposition of the top-left corner of the given sub-image. that is its size willbe the size of the larger_image - sub_image + 1.  The brightest location inthis image is the location s the locate on the best match that is alsoreported. Note that this may or may not be a perfect match, and the actualbrightness will reflect this. Other bright 'peaks' can be used to locate otherpossible matching locations. </p><p>Note that the search will try to compare the sub-image at every possiblelocation in the larger image, as such it can be very slow.  The smaller thesub-image the faster this search is. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="swap"></a>-swap <var>index,index</var></h3></div><p class="magick-description">Swap the positions of two images in the image sequence.</p><p>For example, <a href="command-line-options.html#swap">-swap 0,2</a> swaps the first and the thirdimages in the current image sequence. Use <a href="command-line-options.html#swap">+swap</a> to switchthe last two images in the sequence.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="swirl"></a>-swirl <var>degrees</var></h3></div><p class="magick-description">swirl image pixels about the center.</p><p><var>Degrees</var> defines the tightness of the swirl.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="synchronize"></a>-synchronize</h3></div><p class="magick-description">synchronize image to storage device.</p><p>Set to "true" to ensure all image data is fully flushed and synchronizedto disk. There is a performance penalty, but the benefits include ensuring avalid image file in the event of a system crash and early reporting if thereis not enough disk space for the image pixel cache.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="taint"></a>-taint</h3></div><p class="magick-description">Mark the image as modified.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="text-font"></a>-text-font <var>name</var></h3></div><p class="magick-description">font for writing fixed-width text.</p><p>Specifies the name of the preferred font to use in fixed (typewriter style)formatted text. The default is 14 point <var>Courier</var>.</p><p>You can tag a font to specify whether it is a PostScript, TrueType, orOPTION1 font. For example, <code>Courier.ttf</code> is a TrueType font and<code>x:fixed</code> is OPTION1.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="texture"></a>-texture <var>filename</var></h3></div><p class="magick-description">name of texture to tile onto the image background.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="threshold"></a>-threshold <var>value</var>{<var>%</var>}</h3></div><!-- {<var>green,blue,opacity</var>}<p>If the green or blue value is omitted, these channels use the same value asthe first one provided. If all three color values are the same, the result isa bi-level image. If the opacity threshold is omitted, OpaqueOpacity is usedand any partially transparent pixel becomes fully transparent.</p>--><p class="magick-description">Apply simultaneous black/white threshold to the image.</p><p>Any pixel values (more specifically, those channels set using <a href="command-line-options.html#channel">‑channel</a>) that exceed the specified threshold are reassigned themaximum 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 integervalue corresponding to the desired channel value. When given as an integer,the minimum attainable value is 0 (corresponding to black when all channelsare affected), but the maximum value (corresponding to white) is that of the<code>quantum depth</code> of the particular build of ImageMagick, and istherefore dependent on the installation. For that reason, a reasonablerecommendation for most applications is to specify the threshold values asa 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 redchannel. The green, blue, and alpha channels (if present) would be unchanged.</p><pre>convert in.png -channel red -threshold 50% out.png</pre><p>As (possibly) impractical but instructive examples, the following wouldgenerate an all-black and an all-white image with the same dimensions as theinput image.</p><pre>convert in.png -threshold 100% black.pngconvert in.png -threshold -1 white.png</pre><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="command-line-options.html#black-threshold">‑black‑threshold</a> and <a href="command-line-options.html#white-threshold">‑white‑threshold</a>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="thumbnail"></a>-thumbnail <var>geometry</var></h3></div><p class="magick-description">Create a thumbnail of the image.</p><p>This is similar to <a href="command-line-options.html#resize">-resize</a>, except it is optimizedfor speed and any image profile, other than a color profile, is removed toreduce the thumbnail size.  To strip the color profiles as well, add <ahref>-strip just before of after this option.</ahref></p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="tile"></a>-tile <var>filename</var></h3></div><p class="magick-description">Set the tile image used for filling a subsequent graphic primitive.</p><div style="margin: auto;">  <h3 class="magick-header">-tile <var>geometry</var></h3></div><p class="magick-description">Specify the layout of images.</p><p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p><div style="margin: auto;">  <h3 class="magick-header">-tile</h3></div><p class="magick-description">Specifies that a subsequent composite operation is repeated across and down image.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="tile-offset"></a>-tile-offset {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3></div><p class="magick-description">Specify the offset for tile images, relative to the background image it is tiled on.</p><p>This should be set before the tiling image is set by <a href="command-line-options.html#tile">-tile</a> or <a href="command-line-options.html#texture">-texture</a>, or directly applied forcreating a tiled canvas using <code>TILE:</code> or <code>PATTERN:</code> inputformats. </p><p>Internally ImageMagick does a <a href="command-line-options.html#roll">-roll</a> of the tile imageby the arguments given when the tile image is set. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="tint"></a>-tint <var>value</var></h3></div><p class="magick-description">Tint the image with the fill color.</p><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 suchas the various shades of grey.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="title"></a>-title <var>string</var></h3></div><p class="magick-description">Assign a title to displayed image.", "animate", "display", "montage</p><p>Use this option to assign a specific title to the image. This assigned tothe 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 describedunder the <a href="command-line-options.html#format">-format</a> option.</p><p>For example,</p><pre>-title "%m:%f %wx%h"</pre><p>produces an image title of <code>MIFF:bird.miff 512x480</code> for an imagetitled <code>bird.miff</code> and whose width is 512 and height is 480.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="transform"></a>-transform</h3></div><p class="magick-description">transform the image.</p><p>This option applies the transformation matrix from a previous <a href="command-line-options.html#affine">-affine</a> option.</p><pre>convert -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg</pre><p>This operator has been now been superseded by the  <ahref>-distort '<code>AffineProjection</code>' method. </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="transparent"></a>-transparent <var>color</var></h3></div><p class="magick-description">Make this color transparent within the image.</p><p>The <var>color</var> argument is defined using the formatdescribed under the <a href="command-line-options.html#fill">-fill</a> option. The <a href="command-line-options.html#fuzz">-fuzz</a> setting can be used to match and replace colors similar to the onegiven. </p><p>Use  <a href="command-line-options.html#transparent">+transparent</a> to invert the pixels matched.that is make all non-matching colors transparent. </p><p>The <a href="command-line-options.html#opaque">-opaque</a>  operator is exactly the same as <ahref>-transparent but replaces the matching color with thecurrent <a href="command-line-options.html#fill">-fill</a> color setting, rather than transparent.However the <a href="command-line-options.html#transparent">-transparent</a> operator also ensuresthat the image has an alpha channel enabled, as per "<code><a href="command-line-options.html#alpha">-alpha</a> set</code>", and does not require you to modify the <ahref>-channel to enable alpha channel handling. </ahref></ahref></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 <ahref>-transparent-color </ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="transparent-color"></a>-transparent-color <var>color</var></h3></div><p class="magick-description">Set the transparent color.</p><p>Sometimes this is used for saving to image formats such asGIF and PNG8 which uses this color to represent boolean transparency.  Thisdoes not make a color transparent, it only defines what color the transparentcolor is in the color palette of the saved image. Use <ahref>-transparent to make an opaque color transparent.</ahref></p><p>This option allows you to have both an opaque visible color, as well as atransparent color of the same color value without conflict.  That is, you canuse the same color for both the transparent and opaque color areas within animage.  This, in turn, frees to you to select a transparent color that isappropriate when an image is displayed by an application that does not handle atransparent color index, while allowing ImageMagick to correctly handle images of thistype. </p><p>The default transparent color is <code>#00000000</code>, which is fully transparent black.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="transpose"></a>-transpose</h3></div><p class="magick-description">Mirror the image along the top-left to bottom-right diagonal.</p><p> This option mathematically transposes the pixel array.  It is equivalent to the sequence <code>-flip -rotate 90</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="transverse"></a>-transverse</h3></div><p class="magick-description">Mirror the image along the images bottom-left top-right diagonal.  Equivalent to the operations <code>-flop -rotate 90</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="treedepth"></a>-treedepth <var>value</var></h3></div><p class="magick-description">tree depth for the color reduction algorithm.</p><p>Normally, this integer value is zero or one. A value of zero or one causesthe use of an optimal tree depth for the color reduction algorithm.</p><p>An optimal depth generally allows the best representation of the sourceimage with the fastest computational speed and the least amount of memory.However, the default depth is inappropriate for some images. To assure thebest representation, try values between 2 and 8 for this parameter.  Refer tothe <a href="quantize.html">color reduction algorithm</a> for more details.</p><p>The <a href="command-line-options.html#colors">-colors</a> or <a href="command-line-options.html#monochrome">-monochrome</a>option, or writing to an image format which requires color reduction, isrequired for this option to take effect.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="trim"></a>-trim</h3></div><p class="magick-description">trim an image.</p><p>This option removes any edges that are exactly the same color as the cornerpixels. Use <a href="command-line-options.html#fuzz">-fuzz</a> to make <a href="command-line-options.html#trim">-trim</a> removeedges that are nearly the same color as the corner pixels.</p><p>The page or virtual canvas information of the image is preserved allowingyou to extract the result of the <a href="command-line-options.html#trim">-trim</a> operation from theimage.  Use a <a href="command-line-options.html#repage">+repage</a> to remove the virtual canvas pageinformation if it is unwanted.</p><p>If the trimmed image 'disappears' an warning is produced, and a specialsingle pixel transparent 'missed' image is returned, in the same way as when a<a href="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p><div style="margin: auto;">  <h3 class="magick-header"><a id="type"></a>-type <var>type</var></h3></div><p class="magick-description">the image type.</p> <p>Choose from: <code>Bilevel</code>,<code>Grayscale</code>, <code>GrayscaleMatte</code>, <code>Palette</code>,<code>PaletteMatte</code>, <code>TrueColor</code>, <code>TrueColorMatte</code>,<code>ColorSeparation</code>, or <code>ColorSeparationMatte</code>.</p><p>Normally, when a format supports different subformats such as grayscale andtruecolor, the encoder will try to choose an efficient subformat. The <ahref>-type option can be used to override this behavior. Forexample, to prevent a JPEG from being written in grayscale format even thoughonly gray pixels are present, use.</ahref></p><pre>convert bird.png -type TrueColor bird.jpg</pre><p>Similarly, use <a href="command-line-options.html#type">-type TrueColorMatte</a> to force theencoder to write an alpha channel even though the image is opaque, if theoutput format supports transparency.</p><p>Use <a href="command-line-options.html#type">-type optimize</a> to ensure the image is written in the smallest possible file size.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="undercolor"></a>-undercolor <var>color</var></h3></div><p class="magick-description">set the color of the annotation bounding box.</p><p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p><p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="update"></a>-update <var>seconds</var></h3></div><p class="magick-description">detect when image file is modified and redisplay.</p><p>Suppose that while you are displaying an image the file that is currentlydisplayed is over-written.  <code>display</code> will automagically detect thatthe input file has been changed and update the displayed imageaccordingly.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="unique-colors"></a>-unique-colors</h3></div><p class="magick-description">discard all but one of any pixel color.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="units"></a>-units <var>type</var></h3></div><p class="magick-description">the units of image resolution.</p><p>Choose from: <code>Undefined</code>, <code>PixelsPerInch</code>, or<code>PixelsPerCentimeter</code>. This option is normally used in conjunctionwith the <a href="command-line-options.html#density">-density</a> option.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="unsharp"></a>-unsharp <var>radius</var><br>-unsharp <var>radius</var>x<var>sigma</var>{<var>+gain</var>}{<var>+threshold</var>}</h3></div><p class="magick-description">sharpen the image with an unsharp mask operator.</p><p>The <a href="command-line-options.html#unsharp">-unsharp</a> option sharpens an image. The image isconvolved with a Gaussian operator of the given radius and standard deviation(sigma). For reasonable results, radius should be larger than sigma. Usea radius of 0 to have the method select a suitable radius.</p><p>The parameters are:</p><dl class="dl-horizontal"><dt>radius</dt><dd>The radius of the Gaussian, in pixels,  not counting the center pixel (default 0).</dd><dt>sigma</dt><dd>The standard deviation of the Gaussian, in pixels (default 1.0).</dd><dt>gain</dt><dd>The fraction of the difference between the original and the blur image that is added back into the original (default 1.0).</dd><dt>threshold</dt><dd>The threshold, as a fraction of <var>QuantumRange</var>, needed to apply the difference amount (default 0.05).</dd></dl><div style="margin: auto;">  <h3 class="magick-header"><a id="verbose"></a>-verbose</h3></div><p class="magick-description">print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="version"></a>-version</h3></div><p class="magick-description">print ImageMagick version string and exit.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="view"></a>-view <var>string</var></h3></div><p class="magick-description">FlashPix viewing parameters.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="vignette"></a>-vignette <var>radius</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3></div><p class="magick-description">soften the edges of the image in vignette style.</p><p>The vignette effect rolloff is controlled by radiusxsigma. For nominal rolloff, this would be set to 0xsigma. A value of 0x0 will produce a circle/ellipse with no rolloff. The arguments x and y control the size of the circle. Larger values decrease the radii and smaller values increase the radii. Values of +0+0 will generate a circle/ellipse the same size as the image. The default values for x and y are 10% of the corresponding image dimension. Thus, the radii will be decreased by 10%, i.e., the diameters of the circle/ellipse will be 80% of the corresponding image dimension.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="virtual-pixel"></a>-virtual-pixel <var>method</var></h3></div><p class="magick-description">Specify contents of <var>virtual pixels</var>.</p><p>This option defines what color source should be used if and when a colorlookup completely 'misses' the source image. The color(s) that appear tosurround the source image.  Generally this color is derived from the sourceimage, but could also be set to a specify background color. </p><p>Choose from these methods:</p><dl class="dl-horizontal"><dt>background</dt><dd>the area surrounding the image is the background color</dd><dt>black</dt><dd>the area surrounding the image is black</dd><dt>checker-tile</dt><dd>alternate squares with image and background color</dd><dt>dither</dt><dd>non-random 32x32 dithered pattern</dd><dt>edge</dt><dd>extend the edge pixel toward infinity</dd><dt>gray</dt><dd>the area surrounding the image is gray</dd><dt>horizontal-tile</dt><dd>horizontally tile the image, background color above/below</dd><dt>horizontal-tile-edge</dt><dd>horizontally tile the image and replicate the side edge pixels</dd><dt>mirror</dt><dd>mirror tile the image</dd><dt>random</dt><dd>choose a random pixel from the image</dd><dt>tile</dt><dd>tile the image (default)</dd><dt>transparent</dt><dd>the area surrounding the image is transparent blackness</dd><dt>vertical-tile</dt><dd>vertically tile the image, sides are background color</dd><dt>vertical-tile-edge</dt><dd>vertically tile the image and replicate the side edge pixels</dd><dt>white</dt><dd>the area surrounding the image is white</dd></dl><p>The default value is "edge".</p><p>This most important for distortion operators such as <a href="command-line-options.html#distort">-distort</a>, <a href="command-line-options.html#implode">-implode</a>, and <a href="command-line-options.html#fx">-fx</a>.However it also effects operations that may access pixels just outside theimage proper, such as <a href="command-line-options.html#convolve">-convolve</a>, <ahref>-blur, and <a href="command-line-options.html#sharpen">-sharpen</a>. </ahref></p><p>To print a complete list of virtual pixel types, use the <ahref>-list virtual-pixel option.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="visual"></a>-visual <var>type</var></h3></div><p class="magick-description">Animate images using this X visual type.", 'animate', 'display'</p><p>Choose from these visual classes:</p><pre>StaticGray    TrueColorGrayScale     DirectColorStaticColor   defaultPseudoColor   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 mostsimultaneous colors on the default screen is chosen.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="watermark"></a>-watermark <var>brightness</var>x<var>saturation</var></h3></div><p class="magick-description">Watermark an image using the given percentages of brightness and saturation.</p><p>Take a grayscale image (with alpha mask) and modify the destination image'sbrightness according to watermark image's grayscale value and the<var>brightness</var> percentage.  The destinations color saturationattribute is just direct modified by the <var>saturation</var>percentage, which defaults to 100 percent (no color change). </p><div style="margin: auto;">  <h3 class="magick-header"><a id="wave"></a>-wave <var>amplitude</var><br>-wave <var>amplitude</var>x<var>wavelength</var></h3></div><p class="magick-description">Shear the columns of an image into a sine wave.</p><p>Specify <var>amplitude</var> and <var>wavelength</var>of the wave.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="weight"></a>-weight <var>fontWeight</var></h3></div><p class="magick-description">Set a font weight for text.</p><p>This setting suggests a font weight that ImageMagick should try to apply tothe currently selected font family. Use a positive integer for<var>fontWeight</var> or select from the following.</p><dl class="dl-horizontal"><dt>Thin </dt><dd>Same as <var>fontWeight</var> = 100.</dd><dt>ExtraLight </dt><dd>Same as <var>fontWeight</var> = 200.</dd><dt>Light </dt><dd>Same as <var>fontWeight</var> = 300.</dd><dt>Normal </dt><dd>Same as <var>fontWeight</var> = 400.</dd><dt>Medium </dt><dd>Same as <var>fontWeight</var> = 500.</dd><dt>DemiBold </dt><dd>Same as <var>fontWeight</var> = 600.</dd><dt>Bold </dt><dd>Same as <var>fontWeight</var> = 700.</dd><dt>ExtraBold </dt><dd>Same as <var>fontWeight</var> = 800.</dd><dt>Heavy </dt><dd>Same as <var>fontWeight</var> = 900.</dd></dl><br><p>To print a complete list of weight types, use <a href="command-line-options.html#list">-list weight</a>.</p><p>For other settings that affect fonts, see the options <ahref>-font, <a href="command-line-options.html#family">-family</a>, <ahref>-stretch, and <a href="command-line-options.html#style">-style</a>. </ahref></ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="white-point"></a>-white-point <var>x,y</var></h3></div><p class="magick-description">chromaticity white point.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="white-threshold"></a>-white-threshold <var>value</var>{<var>%</var>}</h3></div><p class="magick-description">Force to white all pixels above the threshold while leaving all pixels at or below the threshold unchanged.</p><p> The threshold value can be given as a percentage or as an absolute integervalue within [0, <var>QuantumRange</var>] corresponding to thedesired <a href="command-line-options.html#channel">‑channel</a> value. See <a href="command-line-options.html#threshold">‑threshold</a>for more details on thresholds and resulting values.  </p><div style="margin: auto;">  <h3 class="magick-header"><a id="window"></a>-window <var>id</var></h3></div><p class="magick-description">Make the image the background of a window.", 'animate', 'display'</p><p><var>id</var> can be a window id or name. Specify <code>root</code>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<code>backdrop</code> or <a href="command-line-options.html#geometry">-resize</a> are specified, theimage is surrounded by the background color. Refer to <code>X RESOURCES</code>for details.</p><p>The image will not display on the root window if the image has more uniquecolors than the target window colormap allows. Use <ahref>-colors to reduce the number of colors.</ahref></p><div style="margin: auto;">  <h3 class="magick-header"><a id="window-group"></a>-window-group</h3></div><p class="magick-description">specify the window group.</p><div style="margin: auto;">  <h3 class="magick-header"><a id="write"></a>-write <var>filename</var></h3></div><p class="magick-description">write an image sequence.</p><p>The image sequence preceding the <a href="command-line-options.html#write">-write</a> <var>filename</var> 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="command-line-options.html#write">+write</a> <var>filename</var> option.</p><p>Use <a href="command-line-options.html#compress">-compress</a> to specify the type of image compression.</p></div></div>  <footer class="magick-footer">
     <p><a href="support.html">Donate</a> •
      <a href="sitemap.html">Sitemap</a> •
     <a href="links.html">Related</a> •
@@ -7674,6 +56,7 @@
   </footer>
 </div><!-- /.container -->
 
+  <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
   <script src="http://nextgen.imagemagick.org/js/magick.html"></script>
 </div>
 </body>
