



<!DOCTYPE html>
<html lang="en">
<head>
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
    <title>ImageMagick: Command-line Options</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <meta name="application-name" content="ImageMagick"/>
  <meta name="description" content="ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves."/>
  <meta name="application-url" content="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="command-line, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
  <meta name="rating" content="GENERAL"/>
  <meta name="robots" content="INDEX, FOLLOW"/>
  <meta name="generator" content="ImageMagick Studio LLC"/>
  <meta name="author" content="ImageMagick Studio LLC"/>
  <meta name="revisit-after" content="2 DAYS"/>
  <meta name="resource-type" content="document"/>
  <meta name="copyright" content="Copyright (c) 1999-2015 ImageMagick Studio LLC"/>
  <meta name="distribution" content="Global"/>
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
  <link rel="icon" href="../image/wand.png"/>
  <link rel="shortcut icon" href="../image/wand.ico"/>
  <link rel="stylesheet" href="../css/magick.php"/>
</head>
<body>
<div class="main">
<div class="magick-masthead">
  <div class="container">
    <script async="async" src="http://pagead2.googlesyndication.com/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({});
    </script>
    <nav class="magick-nav">
      <a class="magick-nav-item " href="../index.php">Home</a>
      <a class="magick-nav-item " href="binary-releases.php">Download</a>
      <a class="magick-nav-item " href="command-line-tools.php">Tools</a>
      <a class="magick-nav-item " href="command-line-processing.php">Command-line</a>
      <a class="magick-nav-item " href="resources.php">Resources</a>
      <a class="magick-nav-item " href="api.php">Develop</a>
      <a class="magick-nav-item " href="search.php">Search</a>
      <a class="magick-nav-item pull-right" href="http://www.imagemagick.org/discourse-server/">Community</a>
    </nav>
  </div>
</div>
<div class="container">
<div class="magick-header">
<p class="text-center"><a href="command-line-options.php#adaptive-blur">&#x2011;adaptive&#x2011;blur</a>  • <a href="command-line-options.php#adaptive-resize">&#x2011;adaptive&#x2011;resize</a>  • <a href="command-line-options.php#adaptive-sharpen">&#x2011;adaptive&#x2011;sharpen</a>  • <a href="command-line-options.php#adjoin">&#x2011;adjoin</a>  • <a href="command-line-options.php#affine">&#x2011;affine</a>  • <a href="command-line-options.php#alpha">&#x2011;alpha</a>  • <a href="command-line-options.php#annotate">&#x2011;annotate</a>  • <a href="command-line-options.php#antialias">&#x2011;antialias</a>  • <a href="command-line-options.php#append">&#x2011;append</a>  • <a href="command-line-options.php#attenuate">&#x2011;attenuate</a>  • <a href="command-line-options.php#authenticate">&#x2011;authenticate</a>  • <a href="command-line-options.php#auto-gamma">&#x2011;auto&#x2011;gamma</a>  • <a href="command-line-options.php#auto-level">&#x2011;auto&#x2011;level</a>  • <a href="command-line-options.php#auto-orient">&#x2011;auto&#x2011;orient</a>  • <a href="command-line-options.php#backdrop">&#x2011;backdrop</a>  • <a href="command-line-options.php#background">&#x2011;background</a>  • <a href="command-line-options.php#bench">&#x2011;bench</a>  • <a href="command-line-options.php#bias">&#x2011;bias</a>  • <a href="command-line-options.php#black-point-compensation">&#x2011;black&#x2011;point&#x2011;compensation</a>  • <a href="command-line-options.php#black-threshold">&#x2011;black&#x2011;threshold</a>  • <a href="command-line-options.php#blend">&#x2011;blend</a>  • <a href="command-line-options.php#blue-primary">&#x2011;blue&#x2011;primary</a>  • <a href="command-line-options.php#blue-shift">&#x2011;blue&#x2011;shift</a>  • <a href="command-line-options.php#blur">&#x2011;blur</a>  • <a href="command-line-options.php#border">&#x2011;border</a>  • <a href="command-line-options.php#bordercolor">&#x2011;bordercolor</a>  • <a href="command-line-options.php#borderwidth">&#x2011;borderwidth</a>  • <a href="command-line-options.php#brightness-contrast">&#x2011;brightness&#x2011;contrast</a>  • <a href="command-line-options.php#cache">&#x2011;cache</a>  • <a href="command-line-options.php#canny">&#x2011;canny</a>  • <a href="command-line-options.php#caption">&#x2011;caption</a>  • <a href="command-line-options.php#cdl">&#x2011;cdl</a>  • <a href="command-line-options.php#channel">&#x2011;channel</a>  • <a href="command-line-options.php#charcoal">&#x2011;charcoal</a>  • <a href="command-line-options.php#chop">&#x2011;chop</a>  • <a href="command-line-options.php#clamp">&#x2011;clamp</a>  • <a href="command-line-options.php#clip">&#x2011;clip</a>  • <a href="command-line-options.php#clip-mask">&#x2011;clip&#x2011;mask</a>  • <a href="command-line-options.php#clip-path">&#x2011;clip&#x2011;path</a>  • <a href="command-line-options.php#clone">&#x2011;clone</a>  • <a href="command-line-options.php#clut">&#x2011;clut</a>  • <a href="command-line-options.php#coalesce">&#x2011;coalesce</a>  • <a href="command-line-options.php#colorize">&#x2011;colorize</a>  • <a href="command-line-options.php#colormap">&#x2011;colormap</a>  • <a href="command-line-options.php#color-matrix">&#x2011;color&#x2011;matrix</a>  • <a href="command-line-options.php#colors">&#x2011;colors</a>  • <a href="command-line-options.php#colorspace">&#x2011;colorspace</a>  • <a href="command-line-options.php#combine">&#x2011;combine</a>  • <a href="command-line-options.php#comment">&#x2011;comment</a>  • <a href="command-line-options.php#compare">&#x2011;compare</a>  • <a href="command-line-options.php#complex">&#x2011;complex</a>  • <a href="command-line-options.php#compose">&#x2011;compose</a>  • <a href="command-line-options.php#composite">&#x2011;composite</a>  • <a href="command-line-options.php#compress">&#x2011;compress</a>  • <a href="command-line-options.php#connected-components">&#x2011;connected&#x2011;components</a>  • <a href="command-line-options.php#contrast">&#x2011;contrast</a>  • <a href="command-line-options.php#contrast-stretch">&#x2011;contrast&#x2011;stretch</a>  • <a href="command-line-options.php#convolve">&#x2011;convolve</a>  • <a href="command-line-options.php#copy">&#x2011;copy</a>  • <a href="command-line-options.php#crop">&#x2011;crop</a>  • <a href="command-line-options.php#cycle">&#x2011;cycle</a>  • <a href="command-line-options.php#debug">&#x2011;debug</a>  • <a href="command-line-options.php#decipher">&#x2011;decipher</a>  • <a href="command-line-options.php#deconstruct">&#x2011;deconstruct</a>  • <a href="command-line-options.php#define">&#x2011;define</a>  • <a href="command-line-options.php#delay">&#x2011;delay</a>  • <a href="command-line-options.php#delete">&#x2011;delete</a>  • <a href="command-line-options.php#density">&#x2011;density</a>  • <a href="command-line-options.php#depth">&#x2011;depth</a>  • <a href="command-line-options.php#descend">&#x2011;descend</a>  • <a href="command-line-options.php#deskew">&#x2011;deskew</a>  • <a href="command-line-options.php#despeckle">&#x2011;despeckle</a>  • <a href="command-line-options.php#direction">&#x2011;direction</a>  • <a href="command-line-options.php#displace">&#x2011;displace</a>  • <a href="command-line-options.php#display">&#x2011;display</a>  • <a href="command-line-options.php#dispose">&#x2011;dispose</a>  • <a href="command-line-options.php#dissimilarity-threshold">&#x2011;dissimilarity&#x2011;threshold</a>  • <a href="command-line-options.php#dissolve">&#x2011;dissolve</a>  • <a href="command-line-options.php#distort">&#x2011;distort</a>  • <a href="command-line-options.php#distribute-cache">&#x2011;distribute&#x2011;cache</a>  • <a href="command-line-options.php#dither">&#x2011;dither</a>  • <a href="command-line-options.php#draw">&#x2011;draw</a>  • <a href="command-line-options.php#duplicate">&#x2011;duplicate</a>  • <a href="command-line-options.php#edge">&#x2011;edge</a>  • <a href="command-line-options.php#emboss">&#x2011;emboss</a>  • <a href="command-line-options.php#encipher">&#x2011;encipher</a>  • <a href="command-line-options.php#encoding">&#x2011;encoding</a>  • <a href="command-line-options.php#endian">&#x2011;endian</a>  • <a href="command-line-options.php#enhance">&#x2011;enhance</a>  • <a href="command-line-options.php#equalize">&#x2011;equalize</a>  • <a href="command-line-options.php#evaluate">&#x2011;evaluate</a>  • <a href="command-line-options.php#evaluate-sequence">&#x2011;evaluate&#x2011;sequence</a>  • <a href="command-line-options.php#extent">&#x2011;extent</a>  • <a href="command-line-options.php#extract">&#x2011;extract</a>  • <a href="command-line-options.php#family">&#x2011;family</a>  • <a href="command-line-options.php#features">&#x2011;features</a>  • <a href="command-line-options.php#fft">&#x2011;fft</a>  • <a href="command-line-options.php#fill">&#x2011;fill</a>  • <a href="command-line-options.php#filter">&#x2011;filter</a>  • <a href="command-line-options.php#flatten">&#x2011;flatten</a>  • <a href="command-line-options.php#flip">&#x2011;flip</a>  • <a href="command-line-options.php#floodfill">&#x2011;floodfill</a>  • <a href="command-line-options.php#flop">&#x2011;flop</a>  • <a href="command-line-options.php#font">&#x2011;font</a>  • <a href="command-line-options.php#foreground">&#x2011;foreground</a>  • <a href="command-line-options.php#format">&#x2011;format</a>  • <a href="command-line-options.php#format_identify_">&#x2011;format[identify]</a>  • <a href="command-line-options.php#frame">&#x2011;frame</a>  • <a href="command-line-options.php#frame_import_">&#x2011;frame[import]</a>  • <a href="command-line-options.php#function">&#x2011;function</a>  • <a href="command-line-options.php#fuzz">&#x2011;fuzz</a>  • <a href="command-line-options.php#fx">&#x2011;fx</a>  • <a href="command-line-options.php#gamma">&#x2011;gamma</a>  • <a href="command-line-options.php#gaussian-blur">&#x2011;gaussian&#x2011;blur</a>  • <a href="command-line-options.php#geometry">&#x2011;geometry</a>  • <a href="command-line-options.php#gravity">&#x2011;gravity</a>  • <a href="command-line-options.php#grayscale">&#x2011;grayscale</a>  • <a href="command-line-options.php#green-primary">&#x2011;green&#x2011;primary</a>  • <a href="command-line-options.php#hald-clut">&#x2011;hald&#x2011;clut</a>  • <a href="command-line-options.php#help">&#x2011;help</a>  • <a href="command-line-options.php#highlight-color">&#x2011;highlight&#x2011;color</a>  • <a href="command-line-options.php#hough-lines">&#x2011;hough&#x2011;lines</a>  • <a href="command-line-options.php#iconGeometry">&#x2011;iconGeometry</a>  • <a href="command-line-options.php#iconic">&#x2011;iconic</a>  • <a href="command-line-options.php#identify">&#x2011;identify</a>  • <a href="command-line-options.php#ift">&#x2011;ift</a>  • <a href="command-line-options.php#immutable">&#x2011;immutable</a>  • <a href="command-line-options.php#implode">&#x2011;implode</a>  • <a href="command-line-options.php#insert">&#x2011;insert</a>  • <a href="command-line-options.php#intensity">&#x2011;intensity</a>  • <a href="command-line-options.php#intent">&#x2011;intent</a>  • <a href="command-line-options.php#interlace">&#x2011;interlace</a>  • <a href="command-line-options.php#interpolate">&#x2011;interpolate</a>  • <a href="command-line-options.php#interline-spacing">&#x2011;interline&#x2011;spacing</a>  • <a href="command-line-options.php#interword-spacing">&#x2011;interword&#x2011;spacing</a>  • <a href="command-line-options.php#kerning">&#x2011;kerning</a>  • <a href="command-line-options.php#kuwahara">&#x2011;kuwahara</a>  • <a href="command-line-options.php#label">&#x2011;label</a>  • <a href="command-line-options.php#lat">&#x2011;lat</a>  • <a href="command-line-options.php#layers">&#x2011;layers</a>  • <a href="command-line-options.php#level">&#x2011;level</a>  • <a href="command-line-options.php#level-colors">&#x2011;level&#x2011;colors</a>  • <a href="command-line-options.php#limit">&#x2011;limit</a>  • <a href="command-line-options.php#linear-stretch">&#x2011;linear&#x2011;stretch</a>  • <a href="command-line-options.php#linewidth">&#x2011;linewidth</a>  • <a href="command-line-options.php#liquid-rescale">&#x2011;liquid&#x2011;rescale</a>  • <a href="command-line-options.php#list">&#x2011;list</a>  • <a href="command-line-options.php#log">&#x2011;log</a>  • <a href="command-line-options.php#loop">&#x2011;loop</a>  • <a href="command-line-options.php#lowlight-color">&#x2011;lowlight&#x2011;color</a>  • <a href="command-line-options.php#magnify">&#x2011;magnify</a>  • <a href="command-line-options.php#map">&#x2011;map</a>  • <a href="command-line-options.php#map_stream_">&#x2011;map[stream]</a>  • <a href="command-line-options.php#mask">&#x2011;mask</a>  • <a href="command-line-options.php#mattecolor">&#x2011;mattecolor</a>  • <a href="command-line-options.php#median">&#x2011;median</a>  • <a href="command-line-options.php#mean-shift">&#x2011;mean&#x2011;shift</a>  • <a href="command-line-options.php#metric">&#x2011;metric</a>  • <a href="command-line-options.php#mode">&#x2011;mode</a>  • <a href="command-line-options.php#modulate">&#x2011;modulate</a>  • <a href="command-line-options.php#moments">&#x2011;moments</a>  • <a href="command-line-options.php#monitor">&#x2011;monitor</a>  • <a href="command-line-options.php#monochrome">&#x2011;monochrome</a>  • <a href="command-line-options.php#morph">&#x2011;morph</a>  • <a href="command-line-options.php#morphology">&#x2011;morphology</a>  • <a href="command-line-options.php#mosaic">&#x2011;mosaic</a>  • <a href="command-line-options.php#motion-blur">&#x2011;motion&#x2011;blur</a>  • <a href="command-line-options.php#name">&#x2011;name</a>  • <a href="command-line-options.php#negate">&#x2011;negate</a>  • <a href="command-line-options.php#noise">&#x2011;noise</a>  • <a href="command-line-options.php#normalize">&#x2011;normalize</a>  • <a href="command-line-options.php#opaque">&#x2011;opaque</a>  • <a href="command-line-options.php#ordered-dither">&#x2011;ordered&#x2011;dither</a>  • <a href="command-line-options.php#orient">&#x2011;orient</a>  • <a href="command-line-options.php#page">&#x2011;page</a>  • <a href="command-line-options.php#paint">&#x2011;paint</a>  • <a href="command-line-options.php#path">&#x2011;path</a>  • <a href="command-line-options.php#pause_animate_">&#x2011;pause[animate]</a>  • <a href="command-line-options.php#pause_import_">&#x2011;pause[import]</a>  • <a href="command-line-options.php#perceptible">&#x2011;perceptible</a>  • <a href="command-line-options.php#ping">&#x2011;ping</a>  • <a href="command-line-options.php#pointsize">&#x2011;pointsize</a>  • <a href="command-line-options.php#polaroid">&#x2011;polaroid</a>  • <a href="command-line-options.php#poly">&#x2011;poly</a>  • <a href="command-line-options.php#posterize">&#x2011;posterize</a>  • <a href="command-line-options.php#precision">&#x2011;precision</a>  • <a href="command-line-options.php#preview">&#x2011;preview</a>  • <a href="command-line-options.php#print">&#x2011;print</a>  • <a href="command-line-options.php#process">&#x2011;process</a>  • <a href="command-line-options.php#profile">&#x2011;profile</a>  • <a href="command-line-options.php#quality">&#x2011;quality</a>  • <a href="command-line-options.php#quantize">&#x2011;quantize</a>  • <a href="command-line-options.php#quiet">&#x2011;quiet</a>  • <a href="command-line-options.php#radial-blur">&#x2011;radial&#x2011;blur</a>  • <a href="command-line-options.php#raise">&#x2011;raise</a>  • <a href="command-line-options.php#random-threshold">&#x2011;random&#x2011;threshold</a>  • <a href="command-line-options.php#red-primary">&#x2011;red&#x2011;primary</a>  • <a href="command-line-options.php#regard-warnings">&#x2011;regard&#x2011;warnings</a>  • <a href="command-line-options.php#region">&#x2011;region</a>  • <a href="command-line-options.php#remap">&#x2011;remap</a>  • <a href="command-line-options.php#remote">&#x2011;remote</a>  • <a href="command-line-options.php#render">&#x2011;render</a>  • <a href="command-line-options.php#repage">&#x2011;repage</a>  • <a href="command-line-options.php#resample">&#x2011;resample</a>  • <a href="command-line-options.php#resize">&#x2011;resize</a>  • <a href="command-line-options.php#respect-parentheses">&#x2011;respect&#x2011;parentheses</a>  • <a href="command-line-options.php#reverse">&#x2011;reverse</a>  • <a href="command-line-options.php#roll">&#x2011;roll</a>  • <a href="command-line-options.php#rotate">&#x2011;rotate</a>  • <a href="command-line-options.php#sample">&#x2011;sample</a>  • <a href="command-line-options.php#sampling-factor">&#x2011;sampling&#x2011;factor</a>  • <a href="command-line-options.php#scale">&#x2011;scale</a>  • <a href="command-line-options.php#scene">&#x2011;scene</a>  • <a href="command-line-options.php#screen">&#x2011;screen</a>  • <a href="command-line-options.php#seed">&#x2011;seed</a>  • <a href="command-line-options.php#segment">&#x2011;segment</a>  • <a href="command-line-options.php#selective-blur">&#x2011;selective&#x2011;blur</a>  • <a href="command-line-options.php#separate">&#x2011;separate</a>  • <a href="command-line-options.php#sepia-tone">&#x2011;sepia&#x2011;tone</a>  • <a href="command-line-options.php#set">&#x2011;set</a>  • <a href="command-line-options.php#shade">&#x2011;shade</a>  • <a href="command-line-options.php#shadow">&#x2011;shadow</a>  • <a href="command-line-options.php#shared-memory">&#x2011;shared&#x2011;memory</a>  • <a href="command-line-options.php#sharpen">&#x2011;sharpen</a>  • <a href="command-line-options.php#shave">&#x2011;shave</a>  • <a href="command-line-options.php#shear">&#x2011;shear</a>  • <a href="command-line-options.php#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a>  • <a href="command-line-options.php#silent">&#x2011;silent</a>  • <a href="command-line-options.php#similarity-threshold">&#x2011;similarity&#x2011;threshold</a>  • <a href="command-line-options.php#size">&#x2011;size</a>  • <a href="command-line-options.php#sketch">&#x2011;sketch</a>  • <a href="command-line-options.php#smush">&#x2011;smush</a>  • <a href="command-line-options.php#snaps">&#x2011;snaps</a>  • <a href="command-line-options.php#solarize">&#x2011;solarize</a>  • <a href="command-line-options.php#sparse-color">&#x2011;sparse&#x2011;color</a>  • <a href="command-line-options.php#splice">&#x2011;splice</a>  • <a href="command-line-options.php#spread">&#x2011;spread</a>  • <a href="command-line-options.php#statistic">&#x2011;statistic</a>  • <a href="command-line-options.php#stegano">&#x2011;stegano</a>  • <a href="command-line-options.php#stereo">&#x2011;stereo</a>  • <a href="command-line-options.php#storage-type">&#x2011;storage&#x2011;type</a>  • <a href="command-line-options.php#stretch">&#x2011;stretch</a>  • <a href="command-line-options.php#strip">&#x2011;strip</a>  • <a href="command-line-options.php#stroke">&#x2011;stroke</a>  • <a href="command-line-options.php#strokewidth">&#x2011;strokewidth</a>  • <a href="command-line-options.php#style">&#x2011;style</a>  • <a href="command-line-options.php#subimage-search">&#x2011;subimage&#x2011;search</a>  • <a href="command-line-options.php#swap">&#x2011;swap</a>  • <a href="command-line-options.php#swirl">&#x2011;swirl</a>  • <a href="command-line-options.php#synchronize">&#x2011;synchronize</a>  • <a href="command-line-options.php#taint">&#x2011;taint</a>  • <a href="command-line-options.php#text-font">&#x2011;text&#x2011;font</a>  • <a href="command-line-options.php#texture">&#x2011;texture</a>  • <a href="command-line-options.php#threshold">&#x2011;threshold</a>  • <a href="command-line-options.php#thumbnail">&#x2011;thumbnail</a>  • <a href="command-line-options.php#tile">&#x2011;tile</a>  • <a href="command-line-options.php#tile-offset">&#x2011;tile&#x2011;offset</a>  • <a href="command-line-options.php#tint">&#x2011;tint</a>  • <a href="command-line-options.php#title">&#x2011;title</a>  • <a href="command-line-options.php#transform">&#x2011;transform</a>  • <a href="command-line-options.php#transparent">&#x2011;transparent</a>  • <a href="command-line-options.php#transparent-color">&#x2011;transparent&#x2011;color</a>  • <a href="command-line-options.php#transpose">&#x2011;transpose</a>  • <a href="command-line-options.php#transverse">&#x2011;transverse</a>  • <a href="command-line-options.php#treedepth">&#x2011;treedepth</a>  • <a href="command-line-options.php#trim">&#x2011;trim</a>  • <a href="command-line-options.php#type">&#x2011;type</a>  • <a href="command-line-options.php#undercolor">&#x2011;undercolor</a>  • <a href="command-line-options.php#unique-colors">&#x2011;unique&#x2011;colors</a>  • <a href="command-line-options.php#units">&#x2011;units</a>  • <a href="command-line-options.php#unsharp">&#x2011;unsharp</a>  • <a href="command-line-options.php#update">&#x2011;update</a>  • <a href="command-line-options.php#verbose">&#x2011;verbose</a>  • <a href="command-line-options.php#version">&#x2011;version</a>  • <a href="command-line-options.php#view">&#x2011;view</a>  • <a href="command-line-options.php#vignette">&#x2011;vignette</a>  • <a href="command-line-options.php#virtual-pixel">&#x2011;virtual&#x2011;pixel</a>  • <a href="command-line-options.php#visual">&#x2011;visual</a>  • <a href="command-line-options.php#watermark">&#x2011;watermark</a>  • <a href="command-line-options.php#wave">&#x2011;wave</a>  • <a href="command-line-options.php#weight">&#x2011;weight</a>  • <a href="command-line-options.php#white-point">&#x2011;white&#x2011;point</a>  • <a href="command-line-options.php#white-threshold">&#x2011;white&#x2011;threshold</a>  • <a href="command-line-options.php#window">&#x2011;window</a>  • <a href="command-line-options.php#window-group">&#x2011;window&#x2011;group</a>  • <a href="command-line-options.php#write">&#x2011;write</a>  </p>

<p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="command-line-tools.php">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.php">convert</a> and <a href="mogrify.php">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.php#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <a href="command-line-options.php#adaptive-resize">-adaptive-resize</a>
option defaults to data-dependent triangulation.  Use the <a
href="command-line-options.php#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.php#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.php#scene">-scene</a> number before the suffix, in order to
make distinct names for each image. </p>

<p>Use <a href="command-line-options.php#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.php#adjoin">+adjoin</a> and are used to specify
where the <a href="command-line-options.php#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.php#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.php#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.php#draw">-draw</a> or <a href="command-line-options.php#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="../image/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.php#transform">-transform</a>, and the <a
href="command-line-options.php#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.php#affine" >-affine</a>
transformations can be accomplished by instead by a single <a href="command-line-options.php#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 grayscale 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
       grayscale intensity of the image, into the alpha channel, converting
       a grayscale 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.php#alpha" >-alpha</a> Off</code>", the <code>
>-matte</code> operation was the same as "<code><a href="command-line-options.php#alpha" >-alpha</a>
Set</code>" and not "<code><a href="command-line-options.php#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.php#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.php#gravity" >-gravity</a> setting and defaults to the upper left corner of the image.</p>

<p>Using <a href="command-line-options.php#annotate">-annotate</a> <var>degrees</var>
or <a href="command-line-options.php#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="../image/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.php#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.php#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.php#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.php#background">-background</a> color setting, and their
position relative to each other can be controlled by the current <a
href="command-line-options.php#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.php#encipher">-encipher</a>
and <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#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.php#normalize">-normalize</a>, <a
href="command-line-options.php#contrast-stretch" >-contrast-stretch</a>, and <a href="command-line-options.php#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.php#auto-level"
>-auto-level</a> is the perfect or ideal version these operators. </p>

<p>It uses the <a href="command-line-options.php#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.php#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.php#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.php#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.php#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>
-> 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.php#convolve">&#x2011;convolve</a>  so that
positive and negative results are relative to the specified bias value. </p>

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

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

<p>See the discussion on HDRI implementations of ImageMagick on the page <a
href="high-dynamic-range.php" >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.php#channel">&#x2011;channel</a> value. See <a href="command-line-options.php#threshold">&#x2011;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="../image/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.php#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.php#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.php#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.php#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.php#bordercolor">-bordercolor</a> setting.</p>

<p>The <a href="command-line-options.php#border">-border</a> operation is affected by the current <a
href="command-line-options.php#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.php#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.php#bordercolor">-bordercolor</a> setting.</p>
<p>See also the <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#set">-set</a> caption</code>". </p>

<p>The caption can contain special format characters listed in the <a
href="escape.php">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.php#annotate">-annotate</a> or <a href="command-line-options.php#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.php#channel">-channel</a>
setting) completely independently from each other. </p>

<p>For example for operators such as <a href="command-line-options.php#auto-level">-auto-level</a> and
<a href="command-line-options.php#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.php#morphology">-morphology</a> '<code>Convolve</code>' method
and the <a href="command-line-options.php#compose">-compose</a> mathematical methods, also understands
the '<code>Sync</code>' flag to modify the behavior 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.php#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.php#list">-list
channel</a>.</p>

<p>By default, ImageMagick sets <a href="command-line-options.php#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.php#channel" >+channel</a> will reset the value back to this default. </p>

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

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

<p>Warning, some operators behave differently when the <a href="command-line-options.php#channel"
>+channel</a> default setting is in effect, verses ANY user defined <a
href="command-line-options.php#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.php#threshold">-threshold</a> will by default grayscale
the image before thresholding, if no <a href="command-line-options.php#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.php#blur">-blur</a>, <a
href="command-line-options.php#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.php#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.php#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.php#channel" >-channel</a> setting tells
the operator to apply the operation using alpha channels. The <a
href="command-line-options.php#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.php#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.php#gravity">-gravity</a> setting, if present.</p>

<p>The <a href="command-line-options.php#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.php#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.php#shave" >-shave</a> which removes equal numbers of pixels from opposite
sides of the image.  </p>

<p>Using <a href="command-line-options.php#chop">-chop</a> effectively undoes the results of a <a
href="command-line-options.php#splice">-splice</a> that was given the same <var>geometry</var> and <a href="command-line-options.php#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.php#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.php#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.php#region" >-region</a>, or using the negative of the
mask (third) image in a three image <a href="command-line-options.php#composite" >-composite</a>,
operation. </p>

<p>Use <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#channel">-channel</a>
setting will have their values replaced. In particular, since the default <a
href="command-line-options.php#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.php#channel">-channel</a> setting is modified. When the alpha channel is
set, it is treated by the <a href="command-line-options.php#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.php#alpha" >-alpha</a> is turned 'off') but the <a
href="command-line-options.php#channel">-channel</a> setting includes alpha replacement, then it is
assumed that image represents a grayscale gradient which is used for the
replacement alpha values.  That is you can use a grayscale CLUT image to
adjust a existing images alpha channel, or you can color a grayscale image
using colors form CLUT containing the desired colors, including transparency.
</p>

<p>See also <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php">
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.php#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.php#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.php#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.php#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.php#set">-set</a> comment</code>". </p>

<p>The comment can contain special format characters listed in the <a
href="escape.php">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.php#annotate">-annotate</a> or <a href="command-line-options.php#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.php#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.php">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.php#composite">-compare</a>,
<a href="command-line-options.php#composite">-composite</a>,
<a href="command-line-options.php#layers">-layers</a> composite,
<a href="command-line-options.php#flatten">-flatten</a>,
<a href="command-line-options.php#mosaic">-mosaic</a>,
<a href="command-line-options.php#layers">-layers</a> merge,
<a href="command-line-options.php#border">-border</a>,
<a href="command-line-options.php#frame">-frame</a>,
and <a href="command-line-options.php#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.php#compose">-compose</a> setting. The location
of the 'source' or 'overlay' image is controlled according to <a
href="command-line-options.php#gravity" >-gravity</a>, and <a href="command-line-options.php#geometry" >-geometry</a>
settings. </p>

<p>If a third image is given this is treated as a grayscale 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.php#compose">-compose</a> method requires extra numerical
arguments or flags these can be provided by setting the  <a
href="command-line-options.php#set">-set</a> '<code>option:compose:args</code>'
appropriately for the compose method. </p>

<p>Some <a href="command-line-options.php#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.php#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.php#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.php#list">-list
compress</a>.</p>

<p>Specify <a href="command-line-options.php#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.php#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.php#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"><a href="connected-components.php">connected-components</a> labeling detects connected regions in an image, choose from 4 or 8 way connectivity.</p>

<p>Use <code><a href="command-line-options.php#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.php#contrast">-contrast</a> to enhance
the image or <a href="command-line-options.php#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.php#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.php#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 same amount so as to
preserve color integrity, when the default <a href="command-line-options.php#channel" >+channel</a>
setting is in use.  Specifying any other <a href="command-line-options.php#channel" >-channel</a>
setting will normalize the RGB channels independently.</p>

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

<p>When using an ImageMagick with the HDRI compile-time setting, <a href="command-line-options.php#bias">&#x2011;bias</a> is not needed, as ImageMagick is able to store/handle any
negative results without clipping to the color value range (0..QuantumRange).
See the discussion on HDRI implementations of ImageMagick on the page <a
href="high-dynamic-range.php">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.php#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.php#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.php#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.php#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.php#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.php#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.php#list">-list
debug</a>.</p>

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

<p>Use <a href="command-line-options.php#debug">+debug</a> to turn off all logging.</p>

<p>Debugging may also be set using the <code>MAGICK_DEBUG</code> <a href="resources.php#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.php#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.php#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.php#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.php#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.php#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.php#define">+define key</a> to remove definitions
previously created.  Use <a href="command-line-options.php#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.php#set" >-set "option:<var>key</var>" "<var>value</var>"</a> option, which also allows the use of <a href="escape.php" >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.php">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.php#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/script/compose.php"
    >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>connected-components:area-threshold=<var>value</var></td>
    <td>Merges any region with area smaller than <var>value</var> into its surrounding region or largest neighbor.</td>
  </tr>

  <tr>
    <td>connected-components:keep=<var>list-of-ids</var></td>
    <td>Command and/or hyphenated list of id values to keep in the output. Supported in Imagemagick 6.9.3-0.</td>
  </tr>

  <tr>
    <td>connected-components:mean-color=<var>true</var></td>
    <td>Changes the output image from id values to mean color values. Supported in Imagemagick 6.9.2-8.</td>
  </tr>

  <tr>
    <td>connected-components:remove=<var>list-of-ids</var></td>
    <td>Command and/or hyphenated list of id values to remove from the output. Supported in Imagemagick 6.9.2-9.</td>
  </tr>

  <tr>
    <td>connected-components:verbose=<var>true</var></td>
    <td>Lists id, bounding box, centroid, area, mean color for each region.</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.php#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.php#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.php#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.php#resize">-resize</a>.
    See <a href="command-line-options.php#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.php#fft">+-fft</a> and <a href="command-line-options.php#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>&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 also will be respected 
    starting with version 6.9.2-5. Between 6.9.1-0 and 6.9.2-4, add -quality 
    100 in order for the jpeg:extent to work properly. Prior to 6.9.1-0, the 
    -quality setting was ignored.</td>
  </tr>

  <tr>
    <td>jpeg:fancy-upsampling=<var>on|off</var></td>
    <td>&nbsp</td>
  </tr>

  <tr>
    <td>jpeg:optimize-coding=<var>on|off</var></td>
    <td>&nbsp</td>
  </tr>

  <tr>
    <td>jpeg:q-table=<var>table</var></td>
    <td>&nbsp</td>
  </tr>

  <tr>
    <td>jpeg:sampling-factor=<var>sampling-factor-string</var></td>
    <td>&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>&nbsp</td>
  </tr>

  <tr>
    <td>json:locate</td>
    <td>&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.php#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.php#morphology" >-morphology</a> kernel.</td>
  </tr>

  <tr>
    <td>pcl:fit-to-page=<var>true</var></td>

  <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>&nbsp</td>
  </tr>

  <tr>
    <td>pdf:use-cropbox=<var>true</var></td>
    <td>&nbsp</td>
  </tr>

  <tr>
    <td>pdf:use-trimbox=<var>true</var></td>
    <td>&nbsp</td>
  </tr>

  <tr>
    <td>png:bit-depth=<var>value</var></td>
    <td>&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.php#depth">-depth</a>,
    <a href="command-line-options.php#colors">-colors</a>, or <a href="command-line-options.php#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.php">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>
    <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.php#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->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>psd:alpha-unblend=off</td>
     <td>Disables new automatic un-blending of transparency with the base image 
     for the flattened layer 0 before adding the alpha channel to the output  
     image. This define must be placed before the input psd image. (Available 
     as of IM 6.9.2.5). The automatic un-blending is new to IM 6.9.2.5 and 
     prevents the transparency from being applied twice in the output 
     image.</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.php#depth">-depth</a> 16 is
    included, the result is a single precision floating point format.
    If <a href="command-line-options.php#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.php#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.php#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>&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>&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.php#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.php#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.php#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.php#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.php#list">-list dispose</a>.</p>

<p>Use <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#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.php#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><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></p>

       The resulting image is always resized to best fit the resulting image,
       (as if using <a href="command-line-options.php#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.php#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.php#displace" >-displace</a>) for source image color look-up using
       the <a href="command-line-options.php#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.php#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.php#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.php#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.php#distort" >-distort</a> will use the current <a
href="command-line-options.php#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.php#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.php#repage" >+repage</a>, to remove if it
is unwanted. </p>

<p>Setting <a href="command-line-options.php#verbose" >-verbose</a> setting, will cause <a
href="command-line-options.php#distort" >-distort</a> to attempt to output the internal coefficients,
and the <a href="command-line-options.php#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.php#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.php#define" >-define</a>
distort:scale=<var>scale_factor</var></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.php#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.php#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.php#colors">-colors</a>, <a
href="command-line-options.php#monochrome">-monochrome</a>, <a href="command-line-options.php#remap ">-remap</a>, and <a
href="command-line-options.php#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.php#random-threshold">-random-threshold</a>
to generate purely random dither. Or use <a
href="command-line-options.php#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.php#gravity">-gravity</a> command-line option, except that it is limited in
scope to the <a href="command-line-options.php#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.php#fill">-fill</a> setting.  For unfilled shapes, use <a
href="command-line-options.php#fill">-fill none</a>.  You can optionally control the stroke (the
"outline" of a shape) with the <a href="command-line-options.php#stroke">-stroke</a> and <a
href="command-line-options.php#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.php#stroke">-stroke</a> or <a
href="command-line-options.php#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.php#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.php">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.php#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.php#region">-region</a> option precedes the <a href="command-line-options.php#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.php#affine">-affine</a>
option. Transformations are cumulative within the <a href="command-line-options.php#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.php#affine">-affine</a> option. If another
<a href="command-line-options.php#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.php#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.php#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.php#fill">-fill</a>, <a href="command-line-options.php#font">-font</a>, and <a href="command-line-options.php#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.php#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.php" >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.php#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.php#list">-list endian</a> option.</p>

<p>Use <a href="command-line-options.php#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.php#function" >-function</a> operator for some
multi-parameter functions. See the <a href="command-line-options.php#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.php#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.php#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.php#evaluate">-evaluate</a> operators, use
<a href="command-line-options.php#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.php#level" >-level</a> or the <a href="command-line-options.php#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.php#level" >-level</a> treats transparency as
'matte' values (0 = opaque), while <a href="command-line-options.php#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.php#-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.php#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.php#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.php#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.php#evaluate-sequence">-evaluate-sequence</a> operators, use <a
href="command-line-options.php#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.php#gravity">-gravity</a> setting.  To
specify how to compose the image with the background, use <a href="command-line-options.php#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.php#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.php#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.php#font">-font</a>, <a href="command-line-options.php#stretch">-stretch</a>, <a
href="command-line-options.php#style">-style</a>, and <a href="command-line-options.php#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 (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 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.php#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.php#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.php#contrast-stretch">-contrast-stretch</a> 0 or <a
href="command-line-options.php#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.php#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.php#fft">-fft</a>.</p>

<p>Use <a href="command-line-options.php#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.php#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.php" >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.php#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.php" >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.php#draw">-draw</a> for further details.</p>

<p>To print a complete list of color names, use the <a href="command-line-options.php#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.php#resize">-resize</a> and <a href="command-line-options.php#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.php#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.php#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.php#define" >-define</a> and <a
href="command-line-options.php#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>
    <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:  > 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.php#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.php#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.php#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.php#fuzz" >-fuzz</a>), then no
action will be taken. </p>

<p>This operator works more like the <a href="command-line-options.php#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.php#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.php#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.php#family">-family</a>, <a href="command-line-options.php#stretch">-stretch</a>, <a
href="command-line-options.php#style">-style</a>, and <a href="command-line-options.php#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.php#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.php">format</a> you specify.
For a list of image format types supported by ImageMagick, use <a
href="command-line-options.php#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.php#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.php">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.php#mattecolor"
>-mattecolor</a> command line option. </p>

<p>See <a href="command-line-processing.php#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.php#frame">-frame</a> option is affected by the current <a
href="command-line-options.php#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.php#bordercolor">-bordercolor</a> setting, and then
draws the frame of four distinct colors close to the current <a
href="command-line-options.php#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.php#bordercolor">-bordercolor</a> setting.</p>

<p>The image composition is not
affected by the <a href="command-line-options.php#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.php#channel">-channel</a> in the image. See <a
href="command-line-options.php#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.php#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.php#function">-function</a> operators,
use <a href="command-line-options.php#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.php#evaluate">-evaluate</a> operator. The <a
href="command-line-options.php#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.php#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>
  </tr>
</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.php#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.php#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.php">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.php#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.php#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="../image/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.php#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.php#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.php#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.php#list">-list gravity</a> to get a complete list of <a
href="command-line-options.php#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.php#draw">-draw</a> for more details about graphic primitives.  Only the
text primitive of <a href="command-line-options.php#draw">-draw</a> is affected by the <a
href="command-line-options.php#gravity">-gravity</a> option.</p>

<p>The <a href="command-line-options.php#gravity">-gravity</a> option is also used in concert with the
<a href="command-line-options.php#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.php#crop">-crop</a> option. </p>

<p>If a <a href="command-line-options.php#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.php#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.php#region">-region</a>
is (−40,+20). The argument to <a href="command-line-options.php#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.php#gravity">-gravity</a> affects the
region itself, which is <var>centered</var> at the pixel
coordinate (60,70). (See <a href="command-line-processing.php#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.php">composite</a>, <a
href="command-line-options.php#gravity">-gravity</a> gives the direction that the image gravitates
within the composite.</p>

<p>When used as an option to <a href="montage.php">montage</a>, <a
href="command-line-options.php#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.php#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.php#intensity" >-intensity</a> method, 
it does not use or set the <a href="command-line-options.php#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.php#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.php#clut" >-clut</a> which provides color value replacement
of the individual color channels, usually involving a simpler grayscale
image. E.g:  grayscale 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.php#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.php#fill" >-fill</a></code> to specify the color of the lines. The default is black.</p>

<p>Use <code><a href="command-line-options.php#stroke" >-stroke</a></code> and <code><a href="command-line-options.php#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.php#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.php#geometry">-geometry</a> option, using X11 style to
handle negative offsets.</p>

<p>See <a href="command-line-processing.php#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.php">MIFF</a> for
a description of the image class.</p>

<p>If <a href="command-line-options.php#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.php">color
reduction algorithm</a> for a description of these values.</p>

<p>If <a href="command-line-options.php#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.php#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.php#fft">-fft</a> or <a
href="command-line-options.php#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.php#ift">-ift</a>.</p>

<p>Use <a href="command-line-options.php#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.php#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 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, 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.php#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.php#fuzz" >-fuzz</a> factor color compare setting.  </p>

<p>See also <a href="command-line-options.php#grayscale" >-grayscale</a> which applies one of the above
grayscaling formula directly to an image without setting the <a
href="command-line-options.php#intensity" >-intensity</a> setting.</p>

<p>The <a href="command-line-options.php#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 possible pixel intensity setting methods, use <a href="command-line-options.php#list">-list intensity</a>.</p>

<p>Operators affected by the <a href="command-line-options.php#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.php#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.php#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.php#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.php#filter">-filter</a> settings</dd>
</dl>

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

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

<p>See also <a href="command-line-options.php#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.php#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.php">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.php#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.php#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.php#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.php#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.php#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.php#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.php#geometry" >-geometry</a> offset is adjusted according
        to <a href="command-line-options.php#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.php#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.php#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.php#background" >-background</a> color,
        and <a href="command-line-options.php#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.php#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.php#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.php#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.php#list">-list layers</a>.</p>

<p>The operators <a href="command-line-options.php#coalesce" >-coalesce</a>, <a href="command-line-options.php#deconstruct"
>-deconstruct</a>, <a href="command-line-options.php#flatten" >-flatten</a>, and <a href="command-line-options.php#mosaic"
>-mosaic</a> are only aliases for the above methods and may be depreciated in
the future.  Also see  <a href="command-line-options.php#page" >-page</a>,  <a href="command-line-options.php#repage"
>-repage</a> operators, the <a href="command-line-options.php#compose" >-compose</a> setting, and the
GIF <a href="command-line-options.php#dispose" >-dispose</a> and  <a href="command-line-options.php#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.php#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.php#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.php#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.php#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 grayscale 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.php#list">-list resource</a> to list the current limits. For example, our system shows these limits:</p>

<pre>
-> 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.php#limit">&#x2011;limit</a> settings
and whether the system honors a resource request. If the total size of
allocated pixel storage in the given pool reaches the corresponding limit, the
request is passed to the next pool. Additionally, requests that exceed the
<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.php#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.php#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.php#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.php#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.php#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.php#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.php#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.php#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.php#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.php#mask">+mask</a> to remove the mask from images.</p>

<p>Also see <a href="command-line-options.php#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.php#frame">-frame</a> option.</p>

<p>The color is specified using the format described under the <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#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.php#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.php#list" >-list</a> option with a '<code>Mode</code>' argument
for a list of <a href="command-line-options.php#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.php#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.php#modulate">-modulate 120,90</a>.</p>

<p>Use <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#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.php#statistic" >-statistic</a> NonPeak</code> operation,
which should be used in preference.</p>

<p>Use <a href="command-line-options.php#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 controlled by the <code><a
href="command-line-options.php#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.php#list">-list noise</a> option.</p>

<p>Also see the <a href="command-line-options.php#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.php#normalize" >-normalize</a>
is equivalent to <a href="command-line-options.php#contrast-stretch" >-contrast-stretch 2%x1%</a>.
(Before this version, it was equivalent to <a href="command-line-options.php#contrast-stretch"
>-contrast-stretch 2%x99%</a>).</p>

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

<p>See  <a href="command-line-options.php#contrast-stretch" >-contrast-stretch</a> for more details.
Also see <a href="command-line-options.php#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.php#fill" >-fill</a> option.  The <a href="command-line-options.php#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.php#opaque">+opaque</a> to paint any pixel that does not match
the target color. </p>

<p>The <a href="command-line-options.php#transparent">-transparent</a>  operator is exactly the same
as <a href="command-line-options.php#opaque" >-opaque</a> but replaces the matching color with
transparency rather than the current <a href="command-line-options.php#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.php#alpha" >-alpha</a> set</code>", for
the new transparent colors, and does not require you to modify the <a
href="command-line-options.php#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.php#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.php" >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.php#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.php#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.php#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.php#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.php#gravity">-gravity</a> option. To
position a GIF or MNG image, use <a href="command-line-options.php#page">-page</a><var>{+-}x{+-}y</var> (e.g.  -page +100+200). When writing to a MNG
file, a <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#density">-density</a>.</p>

<p>Use <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#strip">-strip</a> to remove all profiles (and
comments).</p>

<p>To extract a profile, the <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#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.php#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.php#raise">-raise</a> to create
a raised effect, otherwise use <a href="command-line-options.php#raise">+raise</a>.  </p>

<p>Unlike the similar <a href="command-line-options.php#frame">-frame</a> option, <a
href="command-line-options.php#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.php#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.php#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.php#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.php#colors">-colors</a> with a 256 color
limit, then <a href="command-line-options.php#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.php#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.php#colors">-colors</a> or <a href="command-line-options.php#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.php#crop">-crop</a>.</p>

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

<p>Use <code>+region</code> to remove any previously set regions.</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.php">display</a> application
running simultaneously, use the <a href="command-line-options.php#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.php#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.php#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.php#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.php#repage">+repage</a> to completely remove/reset the virtual
canvas meta-data from the images. </p>

<p>The <a href="command-line-options.php#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.php#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.php#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.php#gravity">-gravity</a> option has no effect.</p>

<p>If the <a href="command-line-options.php#filter">-filter</a> option
or <code>-define filter:option=value</code> precedes the <a
href="command-line-options.php#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.php#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.php#resize">-resize</a> with
a <a href="command-line-options.php#filter">-filter</a> setting of <code>point</code> (nearest
neighbor), though <a href="command-line-options.php#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.php#filter">-filter</a> setting. </p>

<p>The key feature of the <a href="command-line-options.php#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.php#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.php#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.php#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.php#sampling-factor">-sampling-factor 2x1</a> or <a
href="command-line-options.php#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.php#resize">-resize</a> with
a <a href="command-line-options.php#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.php#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.php#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.php#channel">-channel</a>.</p>

<div style="margin: auto;">
  <h3 class="magick-header"><a id="sepia-tone"></a>-sepia-tone <var>percent-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.php#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.php#delay" >-delay</a>, <a href="command-line-options.php#dispose" >-dispose</a>, and <a
href="command-line-options.php#page" >-page</a>, <a href="command-line-options.php#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.php#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.php#comment" >-comment</a>, <a href="command-line-options.php#label"
>-label</a>, <a href="command-line-options.php#caption" >-caption</a>. These options actually assign
a global 'artifact' which are automatically assigned (and any <a href="escape.php" >Format Percent
Escapes</a> expanded) to images as they are read in.  For example:</p>

<pre>
-> 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.php" >Format and Print Image
Properties</a> in the defined value.  For example:</p>

<pre>
-> 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.php#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.php#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.php#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.php#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.php" >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.php#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.php#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.php#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.php#fill">-background</a> option. The color is specified
using the format described under the <a href="command-line-options.php#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.php#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>percent-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 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 virtual
canvas (<a href="command-line-options.php#page" >-page</a> or <a href="command-line-options.php#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.php#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.php#background">-background</a> color into the given image according to the
given  <a href="command-line-options.php#gravity">-gravity</a> geometry setting.  See <a href="command-line-processing.php#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Essentially <a href="command-line-options.php#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.php#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.php#splice">-splice</a> is most commonly used for. </p>

<p>If the exact same  <var>geometry</var> and <a
href="command-line-options.php#gravity">-gravity</a> is later used with <a href="command-line-options.php#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.php#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.php#list">-list
stretch</a>.</p>

<p>For other settings that affect fonts, see the options <a
href="command-line-options.php#font">-font</a>, <a href="command-line-options.php#family">-family</a>, <a
href="command-line-options.php#style">-style</a>, and <a href="command-line-options.php#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.php#fill">-fill</a> option.</p>

<p>See <a href="command-line-options.php#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.php#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.php#font">-font</a>, <a href="command-line-options.php#family">-family</a>, <a
href="command-line-options.php#stretch">-stretch</a>, and <a href="command-line-options.php#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.php#swap">-swap 0,2</a> swaps the first and the third
images in the current image sequence. Use <a href="command-line-options.php#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.php#channel">&#x2011;channel</a>) that exceed the specified threshold are reassigned the
maximum channel value, while all other values are assigned the minimum.</p>

<p> The threshold value can be given as a percentage or as an absolute integer
value corresponding to the desired channel value. When given as an integer,
the minimum attainable value is 0 (corresponding to black when all channels
are affected), but the maximum value (corresponding to white) is that of the
<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.php#black-threshold">&#x2011;black&#x2011;threshold</a> and <a href="command-line-options.php#white-threshold">&#x2011;white&#x2011;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.php#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.php#strip">-strip</a> just before of after this option.</p>

<p>See <a href="command-line-processing.php#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.php#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.php#tile"
>-tile</a> or <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#fill">-fill</a> option. The <a href="command-line-options.php#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.php#transparent" >+transparent</a> to invert the pixels matched.
that is make all non-matching colors transparent. </p>

<p>The <a href="command-line-options.php#opaque">-opaque</a>  operator is exactly the same as <a
href="command-line-options.php#transparent" >-transparent</a> but replaces the matching color with the
current <a href="command-line-options.php#fill">-fill</a> color setting, rather than transparent.
However the <a href="command-line-options.php#transparent" >-transparent</a> operator also ensures
that the image has an alpha channel enabled, as per "<code><a href="command-line-options.php#alpha"
>-alpha</a> set</code>", and does not require you to modify the <a
href="command-line-options.php#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.php#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.php#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.php"
>color reduction algorithm</a> for more details.</p>

<p>The <a href="command-line-options.php#colors">-colors</a> or <a href="command-line-options.php#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.php#fuzz">-fuzz</a> to make <a href="command-line-options.php#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.php#trim">-trim</a> operation from the
image.  Use a <a href="command-line-options.php#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.php#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.php#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.php#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.php#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.php#fill">-fill</a> option.</p>

<p>See <a href="command-line-options.php#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.php#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.php#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.php#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.php#distort"
>-distort</a>, <a href="command-line-options.php#implode" >-implode</a>, and <a href="command-line-options.php#fx" >-fx</a>.
However it also effects operations that may access pixels just outside the
image proper, such as <a href="command-line-options.php#convolve">-convolve</a>, <a
href="command-line-options.php#blur">-blur</a>, and <a href="command-line-options.php#sharpen">-sharpen</a>. </p>

<p>To print a complete list of virtual pixel types, use the <a
href="command-line-options.php#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.php#list">-list weight</a>.</p>

<p>For other settings that affect fonts, see the options <a
href="command-line-options.php#font">-font</a>, <a href="command-line-options.php#family">-family</a>, <a
href="command-line-options.php#stretch">-stretch</a>, and <a href="command-line-options.php#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.php#channel">&#x2011;channel</a> value. See <a href="command-line-options.php#threshold">&#x2011;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.php#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.php#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.php#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.php#write">+write</a> <var>filename</var> option.</p>

<p>Use <a href="command-line-options.php#compress">-compress</a> to specify the type of image compression.</p>
</div>
</div>



  <footer class="magick-footer">
    <p><a href="support.php">Donate</a> •
     <a href="sitemap.php">Sitemap</a> •
    <a href="links.php">Related</a> •
    <a href="architecture.php">Architecture</a>
</p>
    <p><a href="command-line-options.php#">Back to top</a> •
    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="contact.php">Contact Us</a></p>
        <p><small>©  1999-2016 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://nextgen.imagemagick.org/js/magick.php"></script>
</div>
</body>
</html>
