blob: f3bc6fb9dc66bb2a9f40a4d3025320b0af13edea [file] [log] [blame]
Cristy594d2772015-11-15 10:47:42 -05001
2
3
4
cristy29dc8652015-05-12 16:26:21 +00005<!DOCTYPE html>
cristyd2432012015-05-04 23:15:15 +00006<html lang="en">
cristyad41c0c2012-10-31 00:49:28 +00007<head>
Cristy912a9222016-06-17 15:37:28 -04008 <meta charset="utf-8" />
Cristy3b0b58d2016-11-06 07:40:23 -05009 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
10 <meta http-equiv="x-ua-compatible" content="ie=edge" />
Cristy6549abb2016-11-10 08:25:55 -050011 <title>Command-line Options @ ImageMagick</title>
Cristy594d2772015-11-15 10:47:42 -050012 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
13 <meta name="application-name" content="ImageMagick"/>
14 <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."/>
Cristy364a72f2016-11-04 22:38:41 -040015 <meta name="application-url" content="https://www.imagemagick.org"/>
Cristy594d2772015-11-15 10:47:42 -050016 <meta name="generator" content="PHP"/>
17 <meta name="keywords" content="command-line, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
18 <meta name="rating" content="GENERAL"/>
19 <meta name="robots" content="INDEX, FOLLOW"/>
20 <meta name="generator" content="ImageMagick Studio LLC"/>
21 <meta name="author" content="ImageMagick Studio LLC"/>
22 <meta name="revisit-after" content="2 DAYS"/>
23 <meta name="resource-type" content="document"/>
Cristyfe36f992016-12-29 20:24:13 -050024 <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC"/>
Cristy594d2772015-11-15 10:47:42 -050025 <meta name="distribution" content="Global"/>
26 <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
Cristy912a9222016-06-17 15:37:28 -040027 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
Cristy49380402017-06-29 11:24:55 -040028 <link rel="canonical" href="https://www.imagemagick.org/script/command-line-options.html" />
29 <link rel="icon" href="../images/wand.png" />
30 <link rel="shortcut icon" href="../images/wand.ico" />
Cristybc232422016-11-22 07:46:18 -050031 <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700" />
Cristy49380402017-06-29 11:24:55 -040032 <link rel="stylesheet" href="css/magick.css" />
cristyad41c0c2012-10-31 00:49:28 +000033</head>
cristyd2432012015-05-04 23:15:15 +000034<body>
cristyd2432012015-05-04 23:15:15 +000035<div class="magick-masthead">
36 <div class="container">
Cristy6549abb2016-11-10 08:25:55 -050037 <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle"
Cristy594d2772015-11-15 10:47:42 -050038 style="display:block"
39 data-ad-client="ca-pub-3129977114552745"
40 data-ad-slot="6345125851"
41 data-ad-format="auto"></ins>
cristy29f2c972015-07-28 13:37:46 +000042 <script>
Cristy542697a2015-10-12 20:10:32 -040043 (adsbygoogle = window.adsbygoogle || []).push({});
cristyd2432012015-05-04 23:15:15 +000044 </script>
Cristy49380402017-06-29 11:24:55 -040045 <nav class="nav magick-nav">
46 <a class="nav-link " href="../index.html">Home</a>
47 <a class="nav-link " href="download.html">Download</a>
48 <a class="nav-link " href="command-line-tools.html">Tools</a>
49 <a class="nav-link " href="command-line-processing.html">Command-line</a>
50 <a class="nav-link " href="resources.html">Resources</a>
51 <a class="nav-link " href="develop.html">Develop</a>
52 <a class="nav-link " href="https://www.imagemagick.org/script/search.php">Search</a>
53 <a class="nav-link float-right" href="https://www.imagemagick.org/discourse-server/">Community</a>
cristyd2432012015-05-04 23:15:15 +000054 </nav>
55 </div>
56</div>
57<div class="container">
Cristy49380402017-06-29 11:24:55 -040058<div class="magick-main">
Cristy882d9f42015-10-29 16:48:39 -040059<div class="magick-header">
Cristyb7f455a2017-03-03 19:30:34 -050060<p class="text-center"><a href="command-line-options.html#adaptive-blur">&#x2011;adaptive&#x2011;blur</a><a href="command-line-options.html#adaptive-resize">&#x2011;adaptive&#x2011;resize</a><a href="command-line-options.html#adaptive-sharpen">&#x2011;adaptive&#x2011;sharpen</a><a href="command-line-options.html#adjoin">&#x2011;adjoin</a><a href="command-line-options.html#affine">&#x2011;affine</a><a href="command-line-options.html#alpha">&#x2011;alpha</a><a href="command-line-options.html#annotate">&#x2011;annotate</a><a href="command-line-options.html#antialias">&#x2011;antialias</a><a href="command-line-options.html#append">&#x2011;append</a><a href="command-line-options.html#attenuate">&#x2011;attenuate</a><a href="command-line-options.html#authenticate">&#x2011;authenticate</a><a href="command-line-options.html#auto-gamma">&#x2011;auto&#x2011;gamma</a><a href="command-line-options.html#auto-level">&#x2011;auto&#x2011;level</a><a href="command-line-options.html#auto-orient">&#x2011;auto&#x2011;orient</a><a href="command-line-options.html#backdrop">&#x2011;backdrop</a><a href="command-line-options.html#background">&#x2011;background</a><a href="command-line-options.html#bench">&#x2011;bench</a><a href="command-line-options.html#bias">&#x2011;bias</a><a href="command-line-options.html#black-point-compensation">&#x2011;black&#x2011;point&#x2011;compensation</a><a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a><a href="command-line-options.html#blend">&#x2011;blend</a><a href="command-line-options.html#blue-primary">&#x2011;blue&#x2011;primary</a><a href="command-line-options.html#blue-shift">&#x2011;blue&#x2011;shift</a><a href="command-line-options.html#blur">&#x2011;blur</a><a href="command-line-options.html#border">&#x2011;border</a><a href="command-line-options.html#bordercolor">&#x2011;bordercolor</a><a href="command-line-options.html#borderwidth">&#x2011;borderwidth</a><a href="command-line-options.html#brightness-contrast">&#x2011;brightness&#x2011;contrast</a><a href="command-line-options.html#cache">&#x2011;cache</a><a href="command-line-options.html#canny">&#x2011;canny</a><a href="command-line-options.html#caption">&#x2011;caption</a><a href="command-line-options.html#cdl">&#x2011;cdl</a><a href="command-line-options.html#channel">&#x2011;channel</a><a href="command-line-options.html#charcoal">&#x2011;charcoal</a><a href="command-line-options.html#channel-fx">&#x2011;channel&#x2011;fx</a><a href="command-line-options.html#chop">&#x2011;chop</a><a href="command-line-options.html#clamp">&#x2011;clamp</a><a href="command-line-options.html#clip">&#x2011;clip</a><a href="command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a><a href="command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a><a href="command-line-options.html#clone">&#x2011;clone</a><a href="command-line-options.html#clut">&#x2011;clut</a><a href="command-line-options.html#coalesce">&#x2011;coalesce</a><a href="command-line-options.html#colorize">&#x2011;colorize</a><a href="command-line-options.html#colormap">&#x2011;colormap</a><a href="command-line-options.html#color-matrix">&#x2011;color&#x2011;matrix</a><a href="command-line-options.html#colors">&#x2011;colors</a><a href="command-line-options.html#colorspace">&#x2011;colorspace</a><a href="command-line-options.html#combine">&#x2011;combine</a><a href="command-line-options.html#comment">&#x2011;comment</a><a href="command-line-options.html#compare">&#x2011;compare</a><a href="command-line-options.html#complex">&#x2011;complex</a><a href="command-line-options.html#compose">&#x2011;compose</a><a href="command-line-options.html#composite">&#x2011;composite</a><a href="command-line-options.html#compress">&#x2011;compress</a><a href="command-line-options.html#connected-components">&#x2011;connected&#x2011;components</a><a href="command-line-options.html#contrast">&#x2011;contrast</a><a href="command-line-options.html#contrast-stretch">&#x2011;contrast&#x2011;stretch</a><a href="command-line-options.html#convolve">&#x2011;convolve</a><a href="command-line-options.html#copy">&#x2011;copy</a><a href="command-line-options.html#crop">&#x2011;crop</a><a href="command-line-options.html#cycle">&#x2011;cycle</a><a href="command-line-options.html#debug">&#x2011;debug</a><a href="command-line-options.html#decipher">&#x2011;decipher</a><a href="command-line-options.html#deconstruct">&#x2011;deconstruct</a><a href="command-line-options.html#define">&#x2011;define</a><a href="command-line-options.html#delay">&#x2011;delay</a><a href="command-line-options.html#delete">&#x2011;delete</a><a href="command-line-options.html#density">&#x2011;density</a><a href="command-line-options.html#depth">&#x2011;depth</a><a href="command-line-options.html#descend">&#x2011;descend</a><a href="command-line-options.html#deskew">&#x2011;deskew</a><a href="command-line-options.html#despeckle">&#x2011;despeckle</a><a href="command-line-options.html#direction">&#x2011;direction</a><a href="command-line-options.html#displace">&#x2011;displace</a><a href="command-line-options.html#display">&#x2011;display</a><a href="command-line-options.html#dispose">&#x2011;dispose</a><a href="command-line-options.html#dissimilarity-threshold">&#x2011;dissimilarity&#x2011;threshold</a><a href="command-line-options.html#dissolve">&#x2011;dissolve</a><a href="command-line-options.html#distort">&#x2011;distort</a><a href="command-line-options.html#distribute-cache">&#x2011;distribute&#x2011;cache</a><a href="command-line-options.html#dither">&#x2011;dither</a><a href="command-line-options.html#draw">&#x2011;draw</a><a href="command-line-options.html#duplicate">&#x2011;duplicate</a><a href="command-line-options.html#edge">&#x2011;edge</a><a href="command-line-options.html#emboss">&#x2011;emboss</a><a href="command-line-options.html#encipher">&#x2011;encipher</a><a href="command-line-options.html#encoding">&#x2011;encoding</a><a href="command-line-options.html#endian">&#x2011;endian</a><a href="command-line-options.html#enhance">&#x2011;enhance</a><a href="command-line-options.html#equalize">&#x2011;equalize</a><a href="command-line-options.html#evaluate">&#x2011;evaluate</a><a href="command-line-options.html#evaluate-sequence">&#x2011;evaluate&#x2011;sequence</a><a href="command-line-options.html#extent">&#x2011;extent</a><a href="command-line-options.html#extract">&#x2011;extract</a><a href="command-line-options.html#family">&#x2011;family</a><a href="command-line-options.html#features">&#x2011;features</a><a href="command-line-options.html#fft">&#x2011;fft</a><a href="command-line-options.html#fill">&#x2011;fill</a><a href="command-line-options.html#filter">&#x2011;filter</a><a href="command-line-options.html#flatten">&#x2011;flatten</a><a href="command-line-options.html#flip">&#x2011;flip</a><a href="command-line-options.html#floodfill">&#x2011;floodfill</a><a href="command-line-options.html#flop">&#x2011;flop</a><a href="command-line-options.html#font">&#x2011;font</a><a href="command-line-options.html#foreground">&#x2011;foreground</a><a href="command-line-options.html#format">&#x2011;format</a><a href="command-line-options.html#format_identify_">&#x2011;format[identify]</a><a href="command-line-options.html#frame">&#x2011;frame</a><a href="command-line-options.html#frame_import_">&#x2011;frame[import]</a><a href="command-line-options.html#function">&#x2011;function</a><a href="command-line-options.html#fuzz">&#x2011;fuzz</a><a href="command-line-options.html#fx">&#x2011;fx</a><a href="command-line-options.html#gamma">&#x2011;gamma</a><a href="command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a><a href="command-line-options.html#geometry">&#x2011;geometry</a><a href="command-line-options.html#gravity">&#x2011;gravity</a><a href="command-line-options.html#grayscale">&#x2011;grayscale</a><a href="command-line-options.html#green-primary">&#x2011;green&#x2011;primary</a><a href="command-line-options.html#hald-clut">&#x2011;hald&#x2011;clut</a><a href="command-line-options.html#help">&#x2011;help</a><a href="command-line-options.html#highlight-color">&#x2011;highlight&#x2011;color</a><a href="command-line-options.html#hough-lines">&#x2011;hough&#x2011;lines</a><a href="command-line-options.html#iconGeometry">&#x2011;iconGeometry</a><a href="command-line-options.html#iconic">&#x2011;iconic</a><a href="command-line-options.html#identify">&#x2011;identify</a><a href="command-line-options.html#ift">&#x2011;ift</a><a href="command-line-options.html#immutable">&#x2011;immutable</a><a href="command-line-options.html#implode">&#x2011;implode</a><a href="command-line-options.html#insert">&#x2011;insert</a><a href="command-line-options.html#intensity">&#x2011;intensity</a><a href="command-line-options.html#intent">&#x2011;intent</a><a href="command-line-options.html#interlace">&#x2011;interlace</a><a href="command-line-options.html#interpolate">&#x2011;interpolate</a><a href="command-line-options.html#interline-spacing">&#x2011;interline&#x2011;spacing</a><a href="command-line-options.html#interword-spacing">&#x2011;interword&#x2011;spacing</a><a href="command-line-options.html#kerning">&#x2011;kerning</a><a href="command-line-options.html#kuwahara">&#x2011;kuwahara</a><a href="command-line-options.html#label">&#x2011;label</a><a href="command-line-options.html#lat">&#x2011;lat</a><a href="command-line-options.html#layers">&#x2011;layers</a><a href="command-line-options.html#level">&#x2011;level</a><a href="command-line-options.html#level-colors">&#x2011;level&#x2011;colors</a><a href="command-line-options.html#limit">&#x2011;limit</a><a href="command-line-options.html#linear-stretch">&#x2011;linear&#x2011;stretch</a><a href="command-line-options.html#linewidth">&#x2011;linewidth</a><a href="command-line-options.html#liquid-rescale">&#x2011;liquid&#x2011;rescale</a><a href="command-line-options.html#list">&#x2011;list</a><a href="command-line-options.html#log">&#x2011;log</a><a href="command-line-options.html#loop">&#x2011;loop</a><a href="command-line-options.html#lowlight-color">&#x2011;lowlight&#x2011;color</a><a href="command-line-options.html#magnify">&#x2011;magnify</a><a href="command-line-options.html#map">&#x2011;map</a><a href="command-line-options.html#map_stream_">&#x2011;map[stream]</a><a href="command-line-options.html#mattecolor">&#x2011;mattecolor</a><a href="command-line-options.html#median">&#x2011;median</a><a href="command-line-options.html#mean-shift">&#x2011;mean&#x2011;shift</a><a href="command-line-options.html#metric">&#x2011;metric</a><a href="command-line-options.html#mode">&#x2011;mode</a><a href="command-line-options.html#modulate">&#x2011;modulate</a><a href="command-line-options.html#moments">&#x2011;moments</a><a href="command-line-options.html#monitor">&#x2011;monitor</a><a href="command-line-options.html#monochrome">&#x2011;monochrome</a><a href="command-line-options.html#morph">&#x2011;morph</a><a href="command-line-options.html#morphology">&#x2011;morphology</a><a href="command-line-options.html#mosaic">&#x2011;mosaic</a><a href="command-line-options.html#motion-blur">&#x2011;motion&#x2011;blur</a><a href="command-line-options.html#name">&#x2011;name</a><a href="command-line-options.html#negate">&#x2011;negate</a><a href="command-line-options.html#noise">&#x2011;noise</a><a href="command-line-options.html#normalize">&#x2011;normalize</a><a href="command-line-options.html#opaque">&#x2011;opaque</a><a href="command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a><a href="command-line-options.html#orient">&#x2011;orient</a><a href="command-line-options.html#page">&#x2011;page</a><a href="command-line-options.html#paint">&#x2011;paint</a><a href="command-line-options.html#path">&#x2011;path</a><a href="command-line-options.html#pause_animate_">&#x2011;pause[animate]</a><a href="command-line-options.html#pause_import_">&#x2011;pause[import]</a><a href="command-line-options.html#perceptible">&#x2011;perceptible</a><a href="command-line-options.html#ping">&#x2011;ping</a><a href="command-line-options.html#pointsize">&#x2011;pointsize</a><a href="command-line-options.html#polaroid">&#x2011;polaroid</a><a href="command-line-options.html#poly">&#x2011;poly</a><a href="command-line-options.html#posterize">&#x2011;posterize</a><a href="command-line-options.html#precision">&#x2011;precision</a><a href="command-line-options.html#preview">&#x2011;preview</a><a href="command-line-options.html#print">&#x2011;print</a><a href="command-line-options.html#process">&#x2011;process</a><a href="command-line-options.html#profile">&#x2011;profile</a><a href="command-line-options.html#quality">&#x2011;quality</a><a href="command-line-options.html#quantize">&#x2011;quantize</a><a href="command-line-options.html#quiet">&#x2011;quiet</a><a href="command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a><a href="command-line-options.html#raise">&#x2011;raise</a><a href="command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a><a href="command-line-options.html#read-mask">&#x2011;read&#x2011;mask</a><a href="command-line-options.html#red-primary">&#x2011;red&#x2011;primary</a><a href="command-line-options.html#regard-warnings">&#x2011;regard&#x2011;warnings</a><a href="command-line-options.html#region">&#x2011;region</a><a href="command-line-options.html#remap">&#x2011;remap</a><a href="command-line-options.html#remote">&#x2011;remote</a><a href="command-line-options.html#render">&#x2011;render</a><a href="command-line-options.html#repage">&#x2011;repage</a><a href="command-line-options.html#resample">&#x2011;resample</a><a href="command-line-options.html#resize">&#x2011;resize</a><a href="command-line-options.html#respect-parentheses">&#x2011;respect&#x2011;parentheses</a><a href="command-line-options.html#reverse">&#x2011;reverse</a><a href="command-line-options.html#roll">&#x2011;roll</a><a href="command-line-options.html#rotate">&#x2011;rotate</a><a href="command-line-options.html#sample">&#x2011;sample</a><a href="command-line-options.html#sampling-factor">&#x2011;sampling&#x2011;factor</a><a href="command-line-options.html#scale">&#x2011;scale</a><a href="command-line-options.html#scene">&#x2011;scene</a><a href="command-line-options.html#screen">&#x2011;screen</a><a href="command-line-options.html#seed">&#x2011;seed</a><a href="command-line-options.html#segment">&#x2011;segment</a><a href="command-line-options.html#selective-blur">&#x2011;selective&#x2011;blur</a><a href="command-line-options.html#separate">&#x2011;separate</a><a href="command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a><a href="command-line-options.html#set">&#x2011;set</a><a href="command-line-options.html#shade">&#x2011;shade</a><a href="command-line-options.html#shadow">&#x2011;shadow</a><a href="command-line-options.html#shared-memory">&#x2011;shared&#x2011;memory</a><a href="command-line-options.html#sharpen">&#x2011;sharpen</a><a href="command-line-options.html#shave">&#x2011;shave</a><a href="command-line-options.html#shear">&#x2011;shear</a><a href="command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a><a href="command-line-options.html#silent">&#x2011;silent</a><a href="command-line-options.html#similarity-threshold">&#x2011;similarity&#x2011;threshold</a><a href="command-line-options.html#size">&#x2011;size</a><a href="command-line-options.html#sketch">&#x2011;sketch</a><a href="command-line-options.html#smush">&#x2011;smush</a><a href="command-line-options.html#snaps">&#x2011;snaps</a><a href="command-line-options.html#solarize">&#x2011;solarize</a><a href="command-line-options.html#sparse-color">&#x2011;sparse&#x2011;color</a><a href="command-line-options.html#splice">&#x2011;splice</a><a href="command-line-options.html#spread">&#x2011;spread</a><a href="command-line-options.html#statistic">&#x2011;statistic</a><a href="command-line-options.html#stegano">&#x2011;stegano</a><a href="command-line-options.html#stereo">&#x2011;stereo</a><a href="command-line-options.html#storage-type">&#x2011;storage&#x2011;type</a><a href="command-line-options.html#stretch">&#x2011;stretch</a><a href="command-line-options.html#strip">&#x2011;strip</a><a href="command-line-options.html#stroke">&#x2011;stroke</a><a href="command-line-options.html#strokewidth">&#x2011;strokewidth</a><a href="command-line-options.html#style">&#x2011;style</a><a href="command-line-options.html#subimage-search">&#x2011;subimage&#x2011;search</a><a href="command-line-options.html#swap">&#x2011;swap</a><a href="command-line-options.html#swirl">&#x2011;swirl</a><a href="command-line-options.html#synchronize">&#x2011;synchronize</a><a href="command-line-options.html#taint">&#x2011;taint</a><a href="command-line-options.html#text-font">&#x2011;text&#x2011;font</a><a href="command-line-options.html#texture">&#x2011;texture</a><a href="command-line-options.html#threshold">&#x2011;threshold</a><a href="command-line-options.html#thumbnail">&#x2011;thumbnail</a><a href="command-line-options.html#tile">&#x2011;tile</a><a href="command-line-options.html#tile-offset">&#x2011;tile&#x2011;offset</a><a href="command-line-options.html#tint">&#x2011;tint</a><a href="command-line-options.html#title">&#x2011;title</a><a href="command-line-options.html#transform">&#x2011;transform</a><a href="command-line-options.html#transparent">&#x2011;transparent</a><a href="command-line-options.html#transparent-color">&#x2011;transparent&#x2011;color</a><a href="command-line-options.html#transpose">&#x2011;transpose</a><a href="command-line-options.html#transverse">&#x2011;transverse</a><a href="command-line-options.html#treedepth">&#x2011;treedepth</a><a href="command-line-options.html#trim">&#x2011;trim</a><a href="command-line-options.html#type">&#x2011;type</a><a href="command-line-options.html#undercolor">&#x2011;undercolor</a><a href="command-line-options.html#unique-colors">&#x2011;unique&#x2011;colors</a><a href="command-line-options.html#units">&#x2011;units</a><a href="command-line-options.html#unsharp">&#x2011;unsharp</a><a href="command-line-options.html#update">&#x2011;update</a><a href="command-line-options.html#verbose">&#x2011;verbose</a><a href="command-line-options.html#version">&#x2011;version</a><a href="command-line-options.html#view">&#x2011;view</a><a href="command-line-options.html#vignette">&#x2011;vignette</a><a href="command-line-options.html#virtual-pixel">&#x2011;virtual&#x2011;pixel</a><a href="command-line-options.html#visual">&#x2011;visual</a><a href="command-line-options.html#watermark">&#x2011;watermark</a><a href="command-line-options.html#wave">&#x2011;wave</a><a href="command-line-options.html#wavelet-denoise">&#x2011;wavelet&#x2011;denoise</a><a href="command-line-options.html#weight">&#x2011;weight</a><a href="command-line-options.html#white-point">&#x2011;white&#x2011;point</a><a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a><a href="command-line-options.html#window">&#x2011;window</a><a href="command-line-options.html#window-group">&#x2011;window&#x2011;group</a><a href="command-line-options.html#write">&#x2011;write</a><a href="command-line-options.html#write-mask">&#x2011;write&#x2011;mask</a> </p>
Cristy882d9f42015-10-29 16:48:39 -040061<p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="command-line-tools.html">command-line tools</a>. If you want a description of a particular option, click on the option name in the navigation bar above and you will go right to it. Unless otherwise noted, each option is recognized by the commands: <a href="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p>
62
63<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -040064 <h3><a id="adaptive-blur"></a>-adaptive-blur <var>radius</var>[x<var>sigma</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -040065</div>
66
67<p class="magick-description">Adaptively blur pixels, with decreasing effect near edges.</p>
68
69<p>A Gaussian operator of the given radius and standard deviation (<var>sigma</var>) is used. If <var>sigma</var> is not given it
70defaults to 1.</p>
71
72<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -040073 <h3><a id="adaptive-resize"></a>-adaptive-resize <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -040074</div>
75
76<p class="magick-description">Resize the image using data-dependent triangulation.</p>
77
78<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <a href="command-line-options.html#adaptive-resize">-adaptive-resize</a>
Cristy594d2772015-11-15 10:47:42 -050079option defaults to data-dependent triangulation. Use the <a
80href="command-line-options.html#filter">-filter</a> to choose a different resampling algorithm.
81Offsets, if present in the geometry string, are ignored, and the <a
82href="command-line-options.html#gravity">-gravity</a> option has no effect.</p>
Cristy882d9f42015-10-29 16:48:39 -040083
84<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -040085 <h3><a id="adaptive-sharpen"></a>-adaptive-sharpen <var>radius</var>[x<var>sigma</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -040086</div>
87
88<p class="magick-description">Adaptively sharpen pixels, with increasing effect near edges.</p>
89
90<p>A Gaussian operator of the given radius and standard deviation
91(<var>sigma</var>) is used. If <var>sigma</var> is not given it
92defaults to 1.</p>
93
94<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -040095 <h3><a id="adjoin"></a>-adjoin</h3>
Cristy882d9f42015-10-29 16:48:39 -040096</div>
97
98<p class="magick-description">Join images into a single multi-image file.</p>
99
100<p>This option is enabled by default. An attempt is made to save all images of
101an image sequence into the given output file. However, some formats, such as
102JPEG and PNG, do not support more than one image per file, and in that case
103ImageMagick is forced to write each image as a separate file. As such, if
104more than one image needs to be written, the filename given is modified by
105adding a <a href="command-line-options.html#scene">-scene</a> number before the suffix, in order to
106make distinct names for each image. </p>
107
108<p>Use <a href="command-line-options.html#adjoin">+adjoin</a> to force each image to be written to
109separate files, whether or not the file format allows multiple images per file
110(for example, GIF, MIFF, and TIFF). </p>
111
112<p>Including a C-style integer format string in the output filename will
113automagically enable <a href="command-line-options.html#adjoin">+adjoin</a> and are used to specify
114where the <a href="command-line-options.html#scene">-scene</a> number is placed in the filenames. These
115strings, such as '<code>%d</code>' or '<code>%03d</code>', are familiar to those
116who have used the standard <code>printf()</code>' C-library function. As an
117example, the command</p>
118
Cristy49380402017-06-29 11:24:55 -0400119<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400120convert logo: rose: -morph 15 my%02dmorph.jpg
Cristy49380402017-06-29 11:24:55 -0400121</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400122
123<p>will create a sequence of 17 images (the two given plus 15 more created by
124<a href="command-line-options.html#morph">-morph</a>), named: my00morph.jpg, my01morph.jpg,
125my02morph.jpg, ..., my16morph.jpg. </p>
126
127<p>In summary, ImageMagick tries to write all images to one file, but will
128save to multiple files, if any of the following conditions exist...</p>
129<ol>
130<li>the output image's file format does not allow multi-image files,</li>
131<li>the <a href="command-line-options.html#adjoin">+adjoin</a> option is given, or</li>
132<li>a printf() integer format string (eg: "%d") is present in the output
133 filename.</li>
134</ol>
135
136
137<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400138 <h3><a id="affine"></a>-affine
Cristy882d9f42015-10-29 16:48:39 -0400139 <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>
140</div>
141
142<p class="magick-description">Set the drawing transformation matrix for combined rotating and scaling.</p>
143
Cristy594d2772015-11-15 10:47:42 -0500144<p>This option sets a transformation matrix, for use by subsequent <a
145href="command-line-options.html#draw">-draw</a> or <a href="command-line-options.html#transform">-transform</a> options. </p>
Cristy882d9f42015-10-29 16:48:39 -0400146
147<p>The matrix entries are entered as comma-separated numeric values either in
148quotes or without spaces. </p>
149
150<p>Internally, the transformation matrix has 3x3 elements, but three of them
151are omitted from the input because they are constant. The new (transformed)
152coordinates (<var>x'</var>, <var>y'</var>) of a pixel at
153position (<var>x</var>, <var>y</var>) in the original
154image are calculated using the following matrix equation.</p>
155
Cristy594d2772015-11-15 10:47:42 -0500156<p class="text-center"><img class="img-thumbnail" alt="affine transformation" src="../images/affine.png"/> </p>
Cristy882d9f42015-10-29 16:48:39 -0400157
158<p> The size of the resulting image is that of the smallest rectangle that
159contains the transformed source image. The parameters
160<var>t<sub>x</sub></var> and <var>t<sub>y</sub></var>
161subsequently shift the image pixels so that those that are moved out of the
162image area are cut off.</p>
163
164<p>The transformation matrix complies with the left-handed pixel coordinate
165system: positive <var>x</var> and <var>y</var> directions
166are rightward and downward, resp.; positive rotation is clockwise.</p>
167
168<p> If the translation coefficients <var>t<sub>x</sub></var> and
169<var>t<sub>y</sub></var> are omitted they default to 0,0. Therefore,
170four parameters suffice for rotation and scaling without translation.</p>
171
172<p>Scaling by the factors <var>s<sub>x</sub></var> and
173<var>s<sub>y</sub></var> in the <var>x</var> and <var>y</var> directions,
174respectively, is accomplished with the following.</p>
175
Cristy594d2772015-11-15 10:47:42 -0500176<p>See <a href="command-line-options.html#transform">-transform</a>, and the <a
177href="command-line-options.html#distort">-distort</a> method '<code>Affineprojection</code> for more
Cristy882d9f42015-10-29 16:48:39 -0400178information </p>
179
180
Cristy49380402017-06-29 11:24:55 -0400181<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400182-affine <var>s<sub>x</sub></var>,0,0,<var>s<sub>y</sub></var>
Cristy49380402017-06-29 11:24:55 -0400183</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400184
185<p>Translation by a displacement (<var>t<sub>x</sub></var>, <var>t<sub>y</sub></var>) is accomplished like so:</p>
186
Cristy49380402017-06-29 11:24:55 -0400187<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400188-affine 1,0,0,1,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var>
Cristy49380402017-06-29 11:24:55 -0400189</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400190
191<p>Rotate clockwise about the origin (the upper left-hand corner) by an angle
192<var>a</var> by letting <var>c</var> = cos(<var>a</var>), <var>s</var>
193= sin(<var>a</var>), and using the following.</p>
194
Cristy49380402017-06-29 11:24:55 -0400195<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400196-affine <var>c</var>,<var>s</var>,-<var>s</var>,<var>c</var>
Cristy49380402017-06-29 11:24:55 -0400197</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400198
Cristy594d2772015-11-15 10:47:42 -0500199<p>The cumulative effect of a sequence of <a href="command-line-options.html#affine" >-affine</a>
200transformations can be accomplished by instead by a single <a href="command-line-options.html#affine"
201>-affine</a> operation using the matrix equal to the product of the matrices
Cristy882d9f42015-10-29 16:48:39 -0400202of the individual transformations.</p>
203
204<p>An attempt is made to detect near-singular transformation matrices. If the
205matrix determinant has a sufficiently small absolute value it is rejected.</p>
206
207<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400208 <h3><a id="alpha"></a>-alpha <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400209</div>
210
211<p class="magick-description">Gives control of the alpha/matte channel of an image.</p>
212
213<p>Used to set a flag on an image indicating whether or not to use existing alpha
214channel 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>
215
Cristy49380402017-06-29 11:24:55 -0400216<dl class="row">
217 <dt class="col-md-4">Activate</dt>
218 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400219 Enable the image's transparency channel. Note normally Set
220 should be used instead of this, unless you specifically need to
221 preserve existing (but specifically turned Off) transparency
222 channel. </dd>
223
Cristy49380402017-06-29 11:24:55 -0400224 <dt class="col-md-4">Associate</dt>
225 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400226 associate the alpha channel with the image.</dd>
227
Cristy49380402017-06-29 11:24:55 -0400228 <dt class="col-md-4">Deactivate</dt>
229 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400230 Disables the image's transparency channel. Does not delete or change the
231 existing data, just turns off the use of that data.</dd>
232
Cristy49380402017-06-29 11:24:55 -0400233 <dt class="col-md-4">Disassociate</dt>
234 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400235 disassociate the alpha channel from the image.</dd>
236
Cristy49380402017-06-29 11:24:55 -0400237 <dt class="col-md-4">Set</dt>
238 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400239 Activates the alpha/matte channel. If it was previously turned off
240 then it also resets the channel to opaque. If the image already had
241 the alpha channel turned on, it will have no effect.</dd>
242
Cristy49380402017-06-29 11:24:55 -0400243 <dt class="col-md-4">Opaque</dt>
244 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400245 Enables the alpha/matte channel and forces it to be fully opaque.
246 </dd>
247
Cristy49380402017-06-29 11:24:55 -0400248 <dt class="col-md-4">Transparent</dt>
249 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400250 Activates the alpha/matte channel and forces it to be fully
251 transparent. This effectively creates a fully transparent image the
252 same size as the original and with all its original RGB data still
253 intact, but fully transparent. </dd>
254
Cristy49380402017-06-29 11:24:55 -0400255 <dt class="col-md-4">Extract</dt>
256 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400257 Copies the alpha channel values into all the color channels and turns
258 'Off' the the image's transparency, so as to generate
Cristy769d8892016-01-19 18:11:14 -0500259 a grayscale mask of the image's shape. The alpha channel data is left
Cristy882d9f42015-10-29 16:48:39 -0400260 intact just deactivated. This is the inverse of 'Copy'.
261 </dd>
262
Cristy49380402017-06-29 11:24:55 -0400263 <dt class="col-md-4">Copy</dt>
264 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400265 Turns 'On' the alpha/matte channel, then copies the
Cristy769d8892016-01-19 18:11:14 -0500266 grayscale intensity of the image, into the alpha channel, converting
267 a grayscale mask into a transparent shaped mask ready to be colored
Cristy882d9f42015-10-29 16:48:39 -0400268 appropriately. The color channels are not modified. </dd>
269
Cristy49380402017-06-29 11:24:55 -0400270 <dt class="col-md-4">Shape</dt>
271 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400272 As per 'Copy' but also colors the resulting shape mask with
273 the current background color. That is the RGB color channels is
274 replaced, with appropriate alpha shape.
275 </dd>
276
Cristy49380402017-06-29 11:24:55 -0400277 <dt class="col-md-4">Remove</dt>
278 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400279 Composite the image over the background color.
280 </dd>
281
Cristy49380402017-06-29 11:24:55 -0400282 <dt class="col-md-4">Background</dt>
283 <dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -0400284 Set any fully-transparent pixel to the background color, while leaving
285 it fully-transparent. This can make some image file formats, such as
286 PNG, smaller as the RGB values of transparent pixels are more uniform,
287 and thus can compress better.
288 </dd>
289</dl>
290
291<p>Note that while the obsolete <code>+matte</code> operation was the
Cristy594d2772015-11-15 10:47:42 -0500292same as "<code><a href="command-line-options.html#alpha" >-alpha</a> Off</code>", the <code>
293>-matte</code> operation was the same as "<code><a href="command-line-options.html#alpha" >-alpha</a>
294Set</code>" and not "<code><a href="command-line-options.html#alpha" >-alpha</a> On</code>". </p>
Cristy882d9f42015-10-29 16:48:39 -0400295
Cristyf650f4f2016-04-01 10:53:07 -0400296<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400297 <h3><a id="annotate"></a>
Cristy594d2772015-11-15 10:47:42 -0500298 -annotate <var>degrees</var> <var>text</var><br />
299 -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>
Cristy882d9f42015-10-29 16:48:39 -0400300</div>
301
302<p class="magick-description">Annotate an image with text</p>
303
304<p>This is a convenience for annotating an image with text. For more precise
305control over text annotations, use <a href="command-line-options.html#draw">-draw</a>.</p>
306
307
308<p>The values <var>Xdegrees</var> and <var>Ydegrees</var>
Cristy594d2772015-11-15 10:47:42 -0500309control the shears applied to the text, while <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are offsets that give the location of the text relative any <a href="command-line-options.html#gravity" >-gravity</a> setting and defaults to the upper left corner of the image.</p>
Cristy882d9f42015-10-29 16:48:39 -0400310
311<p>Using <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>
312or <a href="command-line-options.html#annotate">-annotate</a> <var>degrees</var>x<var>degrees</var> produces an unsheared rotation of the text. The
313direction of the rotation is positive, which means a clockwise rotation if <var>degrees</var> is positive. (This conforms to the usual mathematical
314convention once it is realized that the positive <var>y</var>–direction is
315conventionally considered to be <var>downward</var> for images.)</p>
316
317<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
318equation.</p>
319
Cristy594d2772015-11-15 10:47:42 -0500320<p class="text-center"><img class="img-thumbnail" alt="annotate transformation" src="../images/annotate.png"/></p>
Cristy882d9f42015-10-29 16:48:39 -0400321
322<p>If <var>t<sub>x</sub></var> and <var>t<sub>y</sub></var> are omitted, they default to 0. This makes the
323bottom-left of the text becomes the upper-left corner of the image, which is
Cristy594d2772015-11-15 10:47:42 -0500324probably undesirable. Adding a <a href="command-line-options.html#gravity" >-gravity</a> option in this
Cristy882d9f42015-10-29 16:48:39 -0400325case leads to nice results.</p>
326
327<p>Text is any UTF-8 encoded character sequence. If <var>text</var>
328is of the form '@mytext.txt', the text is read from the file
329<code>mytext.txt</code>. Text in a file is taken literally; no embedded
330formatting characters are recognized.</p>
331
332<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400333 <h3><a id="antialias"></a>-antialias</h3>
Cristy882d9f42015-10-29 16:48:39 -0400334</div>
335
336<p class="magick-description">Enable/Disable of the rendering of anti-aliasing pixels when drawing fonts and lines.</p>
337
338<p>By default, objects (e.g. text, lines, polygons, etc.) are antialiased when
339drawn. Use <a href="command-line-options.html#antialias">+antialias</a> to disable the addition of
340antialiasing edge pixels. This will then reduce the number of colors added to
341an image to just the colors being directly drawn. That is, no mixed colors
342are added when drawing such objects. </p>
343
344<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400345 <h3><a id="append"></a>-append</h3>
Cristy882d9f42015-10-29 16:48:39 -0400346</div>
347
348<p class="magick-description">Join current images vertically or horizontally.</p>
349
350<p>This option creates a single longer image, by joining all the current
351images in sequence top-to-bottom. Use <a href="command-line-options.html#append">+append</a> to
352stack images left-to-right. </p>
353
354<p>If they are not of the same width, narrower images are padded with the
355current <a href="command-line-options.html#background">-background</a> color setting, and their
Cristy594d2772015-11-15 10:47:42 -0500356position relative to each other can be controlled by the current <a
357href="command-line-options.html#gravity">-gravity</a> setting. </p>
Cristy882d9f42015-10-29 16:48:39 -0400358
359
360<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400361 <h3><a id="attenuate"></a>-attenuate <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400362</div>
363
364<p class="magick-description">Lessen (or intensify) when adding noise to an image.</p>
365
366<p>If unset the value is equivalent to 1.0, or a maximum noise addition</p>
367
368<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400369 <h3><a id="authenticate"></a>-authenticate <var>password</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400370</div>
371
372<p class="magick-description">Decrypt a PDF with a password.</p>
373
374<p>Use this option to supply a <var>password</var> for decrypting
375a PDF that has been encrypted using Microsoft Crypto API (MSC API). The
376encrypting using the MSC API is not supported.</p>
377
378<p>For a different encryption method, see <a href="command-line-options.html#encipher">-encipher</a>
379and <a href="command-line-options.html#decipher">-decipher</a>. </p>
380
381
382<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400383 <h3><a id="auto-gamma"></a>-auto-gamma</h3>
Cristy882d9f42015-10-29 16:48:39 -0400384</div>
385
386<p class="magick-description">Automagically adjust gamma level of image.</p>
387
Cristy594d2772015-11-15 10:47:42 -0500388<p>This calculates the mean values of an image, then applies a calculated <a
389href="command-line-options.html#gamma" >-gamma</a> adjustment so that is the mean color exists in the
Cristy882d9f42015-10-29 16:48:39 -0400390image it will get a have a value of 50%. </p>
391
392<p>This means that any solid 'gray' image becomes 50% gray. </p>
393
394<p>This works well for real-life images with little or no extreme dark and
395light areas, but tend to fail for images with large amounts of bright sky or
396dark shadows. It also does not work well for diagrams or cartoon like images.
397</p>
398
Cristy594d2772015-11-15 10:47:42 -0500399<p>It uses the <a href="command-line-options.html#channel" >-channel</a> setting, (including the
Cristy882d9f42015-10-29 16:48:39 -0400400'<var>sync</var>' flag for channel synchronization), to determine which color
Cristy594d2772015-11-15 10:47:42 -0500401values is used and modified. As the default <a href="command-line-options.html#channel"
402>-channel</a> setting is '<var>RGB,sync</var>', channels are modified
Cristy882d9f42015-10-29 16:48:39 -0400403together by the same gamma value, preserving colors. </p>
404
405
406
407<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400408 <h3><a id="auto-level"></a>-auto-level</h3>
Cristy882d9f42015-10-29 16:48:39 -0400409</div>
410
411<p class="magick-description">Automagically adjust color levels of image.</p>
412
413<p>This is a 'perfect' image normalization operator. It finds the exact
Cristy594d2772015-11-15 10:47:42 -0500414minimum and maximum color values in the image and then applies a <a
415href="command-line-options.html#level" >-level</a> operator to stretch the values to the full range of
Cristy882d9f42015-10-29 16:48:39 -0400416values. </p>
417
418<p>The operator is not typically used for real-life images, image scans, or
419JPEG format images, as a single 'out-rider' pixel can set a bad min/max values
Cristy594d2772015-11-15 10:47:42 -0500420for the <a href="command-line-options.html#level" >-level</a> operation. On the other hand it is the
Cristy882d9f42015-10-29 16:48:39 -0400421right operator to use for color stretching gradient images being used to
422generate Color lookup tables, distortion maps, or other 'mathematically'
423defined images. </p>
424
Cristy594d2772015-11-15 10:47:42 -0500425<p>The operator is very similar to the <a href="command-line-options.html#normalize">-normalize</a>, <a
426href="command-line-options.html#contrast-stretch" >-contrast-stretch</a>, and <a href="command-line-options.html#linear-stretch"
427>-linear-stretch</a> operators, but without 'histogram binning' or 'clipping'
428problems that these operators may have. That is <a href="command-line-options.html#auto-level"
429>-auto-level</a> is the perfect or ideal version these operators. </p>
Cristy882d9f42015-10-29 16:48:39 -0400430
Cristy594d2772015-11-15 10:47:42 -0500431<p>It uses the <a href="command-line-options.html#channel" >-channel</a> setting, (including the
Cristy882d9f42015-10-29 16:48:39 -0400432special '<var>sync</var>' flag for channel synchronization), to determine
Cristy594d2772015-11-15 10:47:42 -0500433which color values are used and modified. As the default <a
434href="command-line-options.html#channel" >+channel</a> setting is '<var>RGB,sync</var>', the
Cristy882d9f42015-10-29 16:48:39 -0400435'<var>sync</var>' ensures that the color channels will are modified
436together by the same gamma value, preserving colors, and ignoring
437transparency. </p>
438
439
440<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400441 <h3><a id="auto-orient"></a>-auto-orient</h3>
Cristy882d9f42015-10-29 16:48:39 -0400442</div>
443
444<p class="magick-description">adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
445
446<p>This operator reads and resets the EXIF image profile setting 'Orientation'
447and then performs the appropriate 90 degree rotation on the image to orient
448the image, for correct viewing. </p>
449
450<p>This EXIF profile setting is usually set using a gravity sensor in digital
451camera, however photos taken directly downward or upward may not have an
452appropriate value. Also images that have been orientation 'corrected' without
453reseting this setting, may be 'corrected' again resulting in a incorrect
Cristy594d2772015-11-15 10:47:42 -0500454result. If the EXIF profile was previously stripped, the <a
455href="command-line-options.html#auto-orient" >-auto-orient</a> operator will do nothing. </p>
Cristy882d9f42015-10-29 16:48:39 -0400456
457
458<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400459 <h3><a id="average"></a>-average</h3>
Cristy882d9f42015-10-29 16:48:39 -0400460</div>
461
462<p class="magick-description">Average a set of images.</p>
463
464<p>An error results if the images are not identically sized.</p>
465
466
467<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400468 <h3><a id="backdrop"></a>-backdrop</h3>
Cristy882d9f42015-10-29 16:48:39 -0400469</div>
470
471<p class="magick-description">Display the image centered on a backdrop.</p>
472
473<p>This backdrop covers the entire workstation screen and is useful for hiding
474other X window activity while viewing the image. The color of the backdrop is
475specified as the background color. The color is specified using the format
476described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
477
478<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400479 <h3><a id="background"></a>-background <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400480</div>
481
482<p class="magick-description">Set the background color.</p>
483
Cristy594d2772015-11-15 10:47:42 -0500484<p>The color is specified using the format described under the <a
485href="command-line-options.html#fill">-fill</a> option. The default background color (if none is
Cristy882d9f42015-10-29 16:48:39 -0400486specified or found in the image) is white.</p>
487
488<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400489 <h3><a id="bench"></a>-bench <var>iterations</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400490</div>
491
492<p class="magick-description">Measure performance.</p>
493
494<p>Repeat the entire command for the given number of <var>iterations</var> and report the user-time and elapsed time. For instance,
495consider the following command and its output. Modify the benchmark with the
496-duration to run the benchmark for a fixed number of seconds and -concurrent
497to run the benchmark in parallel (requires the OpenMP feature).</p>
498
Cristy49380402017-06-29 11:24:55 -0400499<pre><code>
Cristye09ed312016-03-06 08:07:39 -0500500-> convert logo: -resize 200% -bench 5 logo.png
501Performance[1]: 5i 1.344ips 1.000e 3.710u 0:03.720
502Performance[2]: 5i 1.634ips 0.549e 3.890u 0:03.060
503Performance[3]: 5i 2.174ips 0.618e 3.190u 0:02.300
504Performance[4]: 5i 1.678ips 0.555e 3.810u 0:02.980
Cristy882d9f42015-10-29 16:48:39 -0400505Performance[4]: 5i 0.875657ips 6.880u 0:05.710
Cristy49380402017-06-29 11:24:55 -0400506</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400507
Cristye09ed312016-03-06 08:07:39 -0500508<p>In this example, 5 iterations were completed at 2.174 iterations per
509second, using 3 threads and 3.190 seconds of the user allotted time, for
510a total elapsed time of 2.300 seconds.</p>
Cristy882d9f42015-10-29 16:48:39 -0400511
512<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400513 <h3><a id="bias"></a>-bias <var>value</var>{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -0400514</div>
515
516<p class="magick-description">Add bias when convolving an image.</p>
517
Cristy594d2772015-11-15 10:47:42 -0500518<p>This option shifts the output of <a href="command-line-options.html#convolve">&#x2011;convolve</a> so that
Cristy882d9f42015-10-29 16:48:39 -0400519positive and negative results are relative to the specified bias value. </p>
520
521<p>This is important for non-HDRI compilations of ImageMagick when dealing
522with convolutions that contain negative as well as positive values. This is
523especially the case with convolutions involving high pass filters or edge
524detection. Without an output bias, the negative values are clipped at
525zero.</p>
526
Cristy594d2772015-11-15 10:47:42 -0500527<p>When using an ImageMagick with the HDRI compile-time setting, <a href="command-line-options.html#bias">&#x2011;bias</a> is not needed, as ImageMagick is able to store/handle any
Cristy882d9f42015-10-29 16:48:39 -0400528negative results without clipping to the color value range
529(0..QuantumRange).</p>
530
Cristy594d2772015-11-15 10:47:42 -0500531<p>See the discussion on HDRI implementations of ImageMagick on the page <a
532href="high-dynamic-range.html" >High Dynamic-Range Images</a>. For more
533about HDRI go the ImageMagick <a
Cristy364a72f2016-11-04 22:38:41 -0400534href="https://www.imagemagick.org/Usage/basics/#hdri" >Usage</a> pages or this
Cristy594d2772015-11-15 10:47:42 -0500535<a
536href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>
Cristy882d9f42015-10-29 16:48:39 -0400537entry. </p>
538
539<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400540 <h3><a id="black-point-compensation"></a>-black-point-compensation</h3>
Cristy882d9f42015-10-29 16:48:39 -0400541</div>
542
543<p class="magick-description">Use black point compensation.</p>
544
545<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400546 <h3><a id="black-threshold"></a>-black-threshold <var>value</var>{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -0400547</div>
548
549<p class="magick-description">Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.</p>
550
551<p> The threshold value can be given as a percentage or as an absolute integer
552value within [0, <var>QuantumRange</var>] corresponding to the
Cristy594d2772015-11-15 10:47:42 -0500553desired <a href="command-line-options.html#channel">&#x2011;channel</a> value. See <a href="command-line-options.html#threshold">&#x2011;threshold</a>for more details on thresholds and resulting values. </p>
Cristy882d9f42015-10-29 16:48:39 -0400554
555
556<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400557 <h3><a id="blend"></a>-blend <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400558</div>
559
560<p class="magick-description">blend an image into another by the given absolute value or percent.</p>
561
562<p>Blend will average the images together ('plus') according to the
563percentages given and each pixels transparency. If only a single percentage
564value is given it sets the weight of the composite or 'source' image, while
565the background image is weighted by the exact opposite amount. That is a
566<code>-blend 30%</code> merges 30% of the 'source' image with 70% of the
567'destination' image. Thus it is equivalent to <code>-blend 30x70%</code>.</p>
568
569
570<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400571 <h3><a id="blue-primary"></a>-blue-primary <var>x</var>,<var>y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400572</div>
573
574<p class="magick-description">Set the blue chromaticity primary point.</p>
575
576<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400577 <h3><a id="blue-shift"></a>-blue-shift <var>factor</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400578</div>
579
580<p class="magick-description">simulate a scene at nighttime in the moonlight. Start with a factor of 1.5</p>
581
582<div style="margin: auto;">
583
584<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400585 <h3><a id="blur"></a>-blur <var>radius</var><br />-blur <var>radius</var>x<var>sigma</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400586</div>
587
588<p class="magick-description">Reduce image noise and reduce detail levels.</p>
589
590<p>Convolve the image with a Gaussian or normal distribution using the given
Cristy594d2772015-11-15 10:47:42 -0500591<var >Sigma</var> value. The formula is:</p>
Cristy882d9f42015-10-29 16:48:39 -0400592
Cristy594d2772015-11-15 10:47:42 -0500593<p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"/></p>
Cristy882d9f42015-10-29 16:48:39 -0400594
Cristy594d2772015-11-15 10:47:42 -0500595<p>The <var >Sigma</var> value is the important argument, and
Cristy882d9f42015-10-29 16:48:39 -0400596determines the actual amount of blurring that will take place. </p>
597
Cristy594d2772015-11-15 10:47:42 -0500598<p>The <var >Radius</var> is only used to determine the size of the
Cristy882d9f42015-10-29 16:48:39 -0400599array which will hold the calculated Gaussian distribution. It should be an
600integer. If not given, or set to zero, IM will calculate the largest possible
601radius that will provide meaningful results for the Gaussian distribution.
602</p>
603
Cristy594d2772015-11-15 10:47:42 -0500604<p>The larger the <var >Radius</var> the slower the
605operation is. However too small a <var >Radius</var>, and sever
606aliasing effects may result. As a guideline, <var >Radius</var>
607should be at least twice the <var >Sigma</var> value, though three
Cristy882d9f42015-10-29 16:48:39 -0400608times will produce a more accurate result. </p>
609
610<p>This option differs from <a href="command-line-options.html#gaussian-blur">-gaussian-blur</a> simply
611by taking advantage of the separability properties of the distribution. Here
612we apply a single-dimensional Gaussian matrix in the horizontal direction,
613then repeat the process in the vertical direction.</p>
614
615<p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine how
616pixels which are outside the image proper are blurred into the final result.
617</p>
618
619
620<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400621 <h3><a id="border"></a>-border <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400622</div>
623
624<p class="magick-description">Surround the image with a border of color. </p>
625
626<p>Set the width and height using the <var>size</var> portion of the
627<var>geometry</var> argument. See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets are
628ignored. </p>
629
630<p>As of IM 6.7.8-8, the <var>geometry</var> arguments behave as follows:</p>
631
Cristy49380402017-06-29 11:24:55 -0400632<dl class="row">
633<dt class="col-md-4"><var>value</var></dt>
634<dd class="col-md-8">value is added to both left/right and top/bottom</dd>
635<dt class="col-md-4"><var>value-x</var><kbd>x</kbd></dt>
636<dd class="col-md-8">value-x is added only to left/right and top/bottom are unchanged</dd>
637<dt class="col-md-4"><kbd>x</kbd><var>value-y</var></dt>
638<dd class="col-md-8">value-y is added only to top/bottom and left/right are unchanged</dd>
639<dt class="col-md-4"><var>value-x</var><kbd>x</kbd><var>value-y</var></dt>
640<dd class="col-md-8">value-x is added to left/right and value-y added to top/bottom</dd>
641<dt class="col-md-4"><var>value-x</var><kbd>x</kbd>0</dt>
642<dd class="col-md-8">value-x is added only to left/right and top/bottom are unchanged</dd>
643<dt class="col-md-4">0<kbd>x</kbd><var>value-y</var></dt>
644<dd class="col-md-8">value-y is added only to top/bottom and left/right are unchanged</dd>
645<dt class="col-md-4"><var>value</var>%</dt>
646<dd class="col-md-8">value % of width is added to left/right and value % of height is added to top/bottom</dd>
647<dt class="col-md-4"><var>value-x</var><kbd>x</kbd>%</dt>
648<dd class="col-md-8">value-x % of width is added to left/right and to top/bottom</dd>
649<dt class="col-md-4">x<var>value-y</var>%</dt>
650<dd class="col-md-8">value-y % of height is added to top/bottom and to left/right</dd>
651<dt class="col-md-4"><var>value-x</var>%<kbd>x</kbd><var>value-y</var>%</dt>
652<dd class="col-md-8">value-x % of width is added to left/right and value-y % of height is added to top/bottom</dd>
653<dt class="col-md-4"><var>value-x</var>%<kbd>x</kbd>0%</dt>
654<dd class="col-md-8">value-x % of width is added to left/right and top/bottom are unchanged</dd>
655<dt class="col-md-4">0%<kbd>x</kbd><var>value-y</var>%</dt>
656<dd class="col-md-8">value-y % of height is added to top/bottom and left/right are unchanged</dd>
Cristy882d9f42015-10-29 16:48:39 -0400657</dl>
658
Cristy594d2772015-11-15 10:47:42 -0500659<p>Set the border color by preceding with the <a
660href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
Cristy882d9f42015-10-29 16:48:39 -0400661
Cristy594d2772015-11-15 10:47:42 -0500662<p>The <a href="command-line-options.html#border">-border</a> operation is affected by the current <a
663href="command-line-options.html#compose">-compose</a> setting and assumes that this is using the default
Cristy882d9f42015-10-29 16:48:39 -0400664'<code>Over</code>' composition method. It generates an image of the appropriate
665size colors by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> before
666overlaying the original image in the center of this net image. This means that
667with the default compose method of '<code>Over</code>' any transparent parts may
668be replaced by the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
669<p>See also the <a href="command-line-options.html#frame">-frame</a> option, which has more
670functionality.</p>
671
672<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400673 <h3><a id="bordercolor"></a>-bordercolor <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400674</div>
675
676<p class="magick-description">Set the border color.</p>
677
678<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
679
680<p>The default border color is <code>#DFDFDF</code>, <span style="background-color: #dfdfdf;">this shade of gray</span>.</p>
681
682<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400683 <h3><a id="borderwidth"></a>-borderwidth <var>geometry</var> </h3>
Cristy882d9f42015-10-29 16:48:39 -0400684</div>
685
686<p class="magick-description">Set the border width.</p>
687
688<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400689 <h3><a id="brightness-contrast"></a>-brightness-contrast <var>brightness</var><br />-brightness-contrast <var>brightness</var>{x<var>contrast</var>}{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -0400690</div>
691
692<p class="magick-description">Adjust the brightness and/or contrast of the image.</p>
693
694<p>Brightness and Contrast values apply changes to the input image. They are
695not absolute settings. A brightness or contrast value of zero means no change.
696The range of values is -100 to +100 on each. Positive values increase the
697brightness or contrast and negative values decrease the brightness or contrast.
698To control only contrast, set the brightness=0. To control only brightness,
699set contrast=0 or just leave it off.</p>
700
701<p>You may also use <a href="command-line-options.html#fill">-channel</a> to control which channels to
702apply the brightness and/or contrast change. The default is to apply the same
703transformation to all channels.</p>
704
705<p>Brightness and Contrast arguments are converted to offset and slope of a
706linear transform and applied
707using <a href="command-line-options.html#fill">-function polynomial "slope,offset"</a>.</p>
708
709<p>The slope varies from 0 at contrast=-100 to almost vertical at
710contrast=+100. For brightness=0 and contrast=-100, the result are totally
711midgray. For brightness=0 and contrast=+100, the result will approach but
712not quite reach a threshold at midgray; that is the linear transformation
713is a very steep vertical line at mid gray.</p>
714
715<p>Negative slopes, i.e. negating the image, are not possible with this
716function. All achievable slopes are zero or positive.</p>
717
718<p>The offset varies from -0.5 at brightness=-100 to 0 at brightness=0 to +0.5
719at brightness=+100. Thus, when contrast=0 and brightness=100, the result is
720totally white. Similarly, when contrast=0 and brightness=-100, the result is
721totally black.</p>
722
723<p>As the range of values for the arguments are -100 to +100, adding the '%'
724symbol is no different than leaving it off.</p>
725
726<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400727 <h3><a id="cache"></a>-cache <var>threshold</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400728</div>
729
Cristy594d2772015-11-15 10:47:42 -0500730<p class="magick-description">(This option has been replaced by the <a href='command-line-options.html#limit'>-limit</a> option).</p>
Cristy882d9f42015-10-29 16:48:39 -0400731
732<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400733 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -0400734</div>
735
736<p class="magick-description">Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.</p>
737
738<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>
739
740<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400741 <h3><a id="caption"></a>-caption <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400742</div>
743
744<p class="magick-description">Assign a caption to an image.</p>
745
746<p>This option sets the caption meta-data of an image read in after this
747option has been given. To modify a caption of images already in memory use
748"<code><a href="command-line-options.html#set">-set</a> caption</code>". </p>
749
Cristy594d2772015-11-15 10:47:42 -0500750<p>The caption can contain special format characters listed in the <a
751href="escape.html">Format and
Cristy882d9f42015-10-29 16:48:39 -0400752Print Image Properties</a>. These attributes are expanded when the caption
753is finally assigned to the individual images. </p>
754
755<p>If the first character of <var>string</var> is <var>@</var>, the image caption is read from a file titled by the
756remaining characters in the string. Comments read in from a file are literal;
757no embedded formatting characters are recognized.</p>
758
759<p>Caption meta-data is not visible on the image itself. To do that use the
760<a href="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> options
761instead.</p>
762
763<p>For example,</p>
764
Cristy49380402017-06-29 11:24:55 -0400765<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400766-caption "%m:%f %wx%h" bird.miff
Cristy49380402017-06-29 11:24:55 -0400767</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400768
769<p>produces an image caption of <code>MIFF:bird.miff 512x480</code> (assuming
770that the image <code>bird.miff</code> has a width of 512 and a height of
771480.</p>
772
773
774<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400775 <h3><a id="cdl"></a>-cdl <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400776</div>
777
778<p class="magick-description">color correct with a color decision list.</p>
779
780<p>Here is an example color correction collection:</p>
781
Cristy49380402017-06-29 11:24:55 -0400782<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400783&lt;?xml version="1.0" encoding="UTF-8"?&gt;
784&lt;ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2"&gt;
785 &lt;ColorCorrection id="cc06668"&gt;
786 &lt;SOPNode&gt;
787 &lt;Slope&gt; 0.9 1.2 0.5 &lt;/Slope&gt;
788 &lt;Offset&gt; 0.4 -0.5 0.6 &lt;/Offset&gt;
789 &lt;Power&gt; 1.0 0.8 1.5 &lt;/Power&gt;
790 &lt;/SOPNode&gt;
791 &lt;SATNode&gt;
792 &lt;Saturation&gt; 0.85 &lt;/Saturation&gt;
793 &lt;/SATNode&gt;
794 &lt;/ColorCorrection&gt;
795&lt;/ColorCorrectionCollection&gt;
Cristy49380402017-06-29 11:24:55 -0400796</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400797
798<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400799 <h3><a id="channel"></a>-channel <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400800</div>
801
802<p class="magick-description">Specify those image color channels to which subsequent operators are limited.</p>
803
804<p>Choose from: <code>Red</code>, <code>Green</code>, <code>Blue</code>,
805<code>Alpha</code>, <code>Gray</code>, <code>Cyan</code>, <code>Magenta</code>,
806<code>Yellow</code>, <code>Black</code>, <code>Opacity</code>,
807<code>Index</code>, <code>RGB</code>, <code>RGBA</code>, <code>CMYK</code>, or
808<code>CMYKA</code>.</p>
809
810<p>The channels above can also be specified as a comma-separated list or can be
811abbreviated as a concatenation of the letters '<code>R</code>', '<code>G</code>',
812'<code>B</code>', '<code>A</code>', '<code>O</code>', '<code>C</code>',
813'<code>M</code>', '<code>Y</code>', '<code>K</code>'.
814
815For example, to only select the <code>Red</code> and <code>Blue</code> channels
816you can either use </p>
Cristy49380402017-06-29 11:24:55 -0400817<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400818-channel Red,Blue
Cristy49380402017-06-29 11:24:55 -0400819</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400820<p>or you can use the short hand form</p>
Cristy49380402017-06-29 11:24:55 -0400821<pre><code>
Cristy882d9f42015-10-29 16:48:39 -0400822-channel RB
Cristy49380402017-06-29 11:24:55 -0400823</code></pre>
Cristy882d9f42015-10-29 16:48:39 -0400824
825<p>All the channels that are present in an image can be specified using the
826special channel type <code>All</code>. Not all operators are 'channel capable',
827but generally any operators that are generally 'grey-scale' image operators,
828will understand this setting. See individual operator documentation. </p>
829
Cristy594d2772015-11-15 10:47:42 -0500830<br/>
Cristy882d9f42015-10-29 16:48:39 -0400831
832<p>On top of the normal channel selection an extra flag can be specified,
833'<code>Sync</code>'. This is turned on by default and if set means that
834operators that understand this flag should perform: cross-channel
835synchronization of the channels. If not specified, then most grey-scale
836operators will apply their image processing operations to each individual
837channel (as specified by the rest of the <a href="command-line-options.html#channel">-channel</a>
838setting) completely independently from each other. </p>
839
840<p>For example for operators such as <a href="command-line-options.html#auto-level">-auto-level</a> and
841<a href="command-line-options.html#auto-gamma">-auto-gamma</a> the color channels are modified
842together in exactly the same way so that colors will remain in-sync. Without
843it being set, then each channel is modified separately and
844independently, which may produce color distortion. </p>
845
846<p>The <a href="command-line-options.html#morphology">-morphology</a> '<code>Convolve</code>' method
847and the <a href="command-line-options.html#compose">-compose</a> mathematical methods, also understands
848the '<code>Sync</code>' flag to modify the behavior of pixel colors according
849to the alpha channel (if present). That is to say it will modify the image
850processing with the understanding that fully-transparent colors should not
851contribute to the final result. </p>
852
853<p>Basically, by default, operators work with color channels in synchronous, and
854treats transparency as special, unless the <a href="command-line-options.html#channel">-channel</a>
855setting is modified so as to remove the effect of the '<code>Sync</code>' flag.
856How each operator does this depends on that operators current implementation.
857Not all operators understands this flag at this time, but that is changing.
858</p>
859
860<p>To print a complete list of channel types, use <a href="command-line-options.html#list">-list
861channel</a>.</p>
862
863<p>By default, ImageMagick sets <a href="command-line-options.html#channel">-channel</a> to the value
864'<code>RGBK,sync</code>', which specifies that operators act on all color
865channels except the transparency channel, and that all the color channels are
866to be modified in exactly the same way, with an understanding of transparency
Cristy594d2772015-11-15 10:47:42 -0500867(depending on the operation being applied). The 'plus' form <a
868href="command-line-options.html#channel" >+channel</a> will reset the value back to this default. </p>
Cristy882d9f42015-10-29 16:48:39 -0400869
Cristy594d2772015-11-15 10:47:42 -0500870<p>Options that are affected by the <a href="command-line-options.html#channel" >-channel</a> setting
Cristy882d9f42015-10-29 16:48:39 -0400871include the following.
872
873<a href="command-line-options.html#auto-gamma">-auto-gamma</a>,
874<a href="command-line-options.html#auto-level">-auto-level</a>,
875<a href="command-line-options.html#black-threshold">-black-threshold</a>,
876<a href="command-line-options.html#blur">-blur</a>,
877<a href="command-line-options.html#clamp">-clamp</a>,
878<a href="command-line-options.html#clut">-clut</a>,
879<a href="command-line-options.html#combine">-combine</a>,
880<a href="command-line-options.html#composite">-composite</a> (Mathematical compose methods only),
881<a href="command-line-options.html#convolve">-convolve</a>,
882<a href="command-line-options.html#contrast-stretch">-contrast-stretch</a>,
883<a href="command-line-options.html#evaluate">-evaluate</a>,
884<a href="command-line-options.html#function">-function</a>,
885<a href="command-line-options.html#fx">-fx</a>,
886<a href="command-line-options.html#gaussian-blur">-gaussian-blur</a>,
887<a href="command-line-options.html#hald-clut">-hald-clut</a>,
888<a href="command-line-options.html#motion-blur">-motion-blur</a>,
889<a href="command-line-options.html#morphology">-morphology</a>,
890<a href="command-line-options.html#negate">-negate</a>,
891<a href="command-line-options.html#normalize">-normalize</a>,
892<a href="command-line-options.html#ordered-dither">-ordered-dither</a>,
893<a href="command-line-options.html#radial-blur">-radial-blur</a>,
894<a href="command-line-options.html#random-threshold">-random-threshold</a>,
895<a href="command-line-options.html#separate">-separate</a>,
896<a href="command-line-options.html#threshold">-threshold</a>, and
897<a href="command-line-options.html#white-threshold">-white-threshold</a>.
898</p>
899
Cristy594d2772015-11-15 10:47:42 -0500900<p>Warning, some operators behave differently when the <a href="command-line-options.html#channel"
901>+channel</a> default setting is in effect, verses ANY user defined <a
902href="command-line-options.html#channel" >-channel</a> setting (including the equivalent of the
Cristy882d9f42015-10-29 16:48:39 -0400903default). These operators have yet to be made to understand the newer 'Sync'
904flag. </p>
905
Cristy769d8892016-01-19 18:11:14 -0500906<p>For example <a href="command-line-options.html#threshold">-threshold</a> will by default grayscale
Cristy594d2772015-11-15 10:47:42 -0500907the image before thresholding, if no <a href="command-line-options.html#channel" >-channel</a> setting
Cristy882d9f42015-10-29 16:48:39 -0400908has been defined. This is not 'Sync flag controlled, yet. </p>
909
Cristy594d2772015-11-15 10:47:42 -0500910<p>Also some operators such as <a href="command-line-options.html#blur">-blur</a>, <a
911href="command-line-options.html#gaussian-blur">-gaussian-blur</a>, will modify their handling of the
912color channels if the '<code>alpha</code>' channel is also enabled by <a
913href="command-line-options.html#channel" >-channel</a>. Generally this done to ensure that
Cristy882d9f42015-10-29 16:48:39 -0400914fully-transparent colors are treated as being fully-transparent, and thus any
915underlying 'hidden' color has no effect on the final results. Typically
916resulting in 'halo' effects. The newer <a href="command-line-options.html#morphology">-morphology</a>
917convolution equivalents however does have a understanding of the 'Sync' flag
918and will thus handle transparency correctly by default. </p>
919
920<p>As a alpha channel is optional within images, some operators will read the
921color channels of an image as a greyscale alpha mask, when the image has no
Cristy594d2772015-11-15 10:47:42 -0500922alpha channel present, and the <a href="command-line-options.html#channel" >-channel</a> setting tells
923the operator to apply the operation using alpha channels. The <a
924href="command-line-options.html#clut">-clut</a> operator is a good example of this. </p>
Cristy882d9f42015-10-29 16:48:39 -0400925
Cristyd474b372017-02-14 12:19:13 -0500926<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400927 <h3><a id="channel-fx"></a>-channel-fx <var>expression</var></h3>
Cristyd474b372017-02-14 12:19:13 -0500928</div>
Cristy882d9f42015-10-29 16:48:39 -0400929
Cristyd474b372017-02-14 12:19:13 -0500930<p class="magick-description">exchange, extract, or copy one or more image channels.</p>
931
932<p>The expression consists of one or more channels, either mnemonic or numeric (e.g. red or 0, green or 1, etc.), separated by certain operation symbols as follows:</p>
933
Cristy49380402017-06-29 11:24:55 -0400934<pre><code>
Cristyd474b372017-02-14 12:19:13 -0500935&lt;=&gt; exchange two channels (e.g. red&lt;=&gt;blue)
936=&gt; copy one channel to another channel (e.g. red=&gt;green)
937= assign a constant value to a channel (e.g. red=50%)
938, write new image with channels in the specified order (e.g. red, green)
939; add a new output image for the next set of channel operations (e.g. red; green; blue)
940| move to the next input image for the source of channel data (e.g. | gray=>alpha)
Cristy49380402017-06-29 11:24:55 -0400941</code></pre>
Cristyd474b372017-02-14 12:19:13 -0500942
943<p>For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:</p>
944
Cristy49380402017-06-29 11:24:55 -0400945<pre><code>
Cristyd474b372017-02-14 12:19:13 -0500946-channel-fx "red; green; blue"
Cristy49380402017-06-29 11:24:55 -0400947</code></pre>
Cristyd474b372017-02-14 12:19:13 -0500948
949<p>A channel without an operation symbol implies separate (i.e, semicolon).</p>
950
951<p>Here we take an sRGB image and a grayscale image and inject the grayscale image into the alpha channel:</p>
Cristy49380402017-06-29 11:24:55 -0400952<pre><code>
Cristyd474b372017-02-14 12:19:13 -0500953convert wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png
Cristy49380402017-06-29 11:24:55 -0400954</code></pre>
Cristyd474b372017-02-14 12:19:13 -0500955<p>Use a similar command to define a read mask:</p>
Cristy49380402017-06-29 11:24:55 -0400956<pre><code>
Cristyd474b372017-02-14 12:19:13 -0500957convert wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png
Cristy49380402017-06-29 11:24:55 -0400958</code></pre>
Cristyd474b372017-02-14 12:19:13 -0500959
960<p>Add <code>-debug pixel</code> prior to the <code>-channel-fx</code> option to track the channel morphology.</p>
Cristy882d9f42015-10-29 16:48:39 -0400961
962<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400963 <h3><a id="charcoal"></a>-charcoal <var>factor</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400964</div>
965
966<p class="magick-description">Simulate a charcoal drawing.</p>
967
Cristyd474b372017-02-14 12:19:13 -0500968
Cristy882d9f42015-10-29 16:48:39 -0400969<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400970 <h3><a id="chop"></a>-chop <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -0400971</div>
972
973<p class="magick-description">Remove pixels from the interior of an image.</p>
974
975<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>width</var>
976and <var>height</var> given in the of the <var>size</var>
977portion of the <var>geometry</var> argument give the number of
978columns and rows to remove. The <var>offset</var> portion of
979the <var>geometry</var> argument is influenced by
980a <a href="command-line-options.html#gravity">-gravity</a> setting, if present.</p>
981
982<p>The <a href="command-line-options.html#chop">-chop</a> option removes entire rows and columns,
983and moves the remaining corner blocks leftward and upward to close the gaps.</p>
984
985<p>While it can remove internal rows and columns of pixels, it is more
986typically used with as <a href="command-line-options.html#gravity">-gravity</a> setting and zero
Cristy594d2772015-11-15 10:47:42 -0500987offsets so as to remove a single edge from an image. Compare this to <a
988href="command-line-options.html#shave" >-shave</a> which removes equal numbers of pixels from opposite
Cristy882d9f42015-10-29 16:48:39 -0400989sides of the image. </p>
990
Cristy594d2772015-11-15 10:47:42 -0500991<p>Using <a href="command-line-options.html#chop">-chop</a> effectively undoes the results of a <a
992href="command-line-options.html#splice">-splice</a> that was given the same <var>geometry</var> and <a href="command-line-options.html#gravity">-gravity</a> settings. </p>
Cristy882d9f42015-10-29 16:48:39 -0400993
994<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -0400995 <h3><a id="clamp"></a>-clamp</h3>
Cristy882d9f42015-10-29 16:48:39 -0400996</div>
997
998<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>
999
1000<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001001 <h3><a id="clip"></a>-clip</h3>
Cristy882d9f42015-10-29 16:48:39 -04001002</div>
1003
1004<p class="magick-description">Apply the clipping path if one is present.</p>
1005
1006<p>If a clipping path is present, it is applied to subsequent operations.</p>
1007
1008<p>For example, in the command</p>
1009
Cristy49380402017-06-29 11:24:55 -04001010<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001011convert cockatoo.tif -clip -negate negated.tif
Cristy49380402017-06-29 11:24:55 -04001012</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001013
1014<p>only the pixels within the clipping path are negated.</p>
1015
1016<p>The <a href="command-line-options.html#clip">-clip</a> feature requires SVG support. If the SVG
1017delegate library is not present, the option is ignored.</p>
1018
1019<p>Use <a href="command-line-options.html#clip">+clip</a> to disable clipping for subsequent operations.</p>
1020
1021<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001022 <h3><a id="clip-mask"></a>-clip-mask</h3>
Cristy882d9f42015-10-29 16:48:39 -04001023</div>
1024
1025<p class="magick-description">Clip the image as defined by this mask.</p>
1026
1027<p>Use the alpha channel of the current image as a mask. Any areas that is
1028white is not modified by any of the 'image processing operators' that follow,
1029until the mask is removed. Pixels in the black areas of the clip mask are
1030modified per the requirements of the operator. </p>
1031
1032<p>In some ways this is similar to (though not the same) as defining
Cristy594d2772015-11-15 10:47:42 -05001033a rectangular <a href="command-line-options.html#region" >-region</a>, or using the negative of the
1034mask (third) image in a three image <a href="command-line-options.html#composite" >-composite</a>,
Cristy882d9f42015-10-29 16:48:39 -04001035operation. </p>
1036
1037<p>Use <a href="command-line-options.html#clip-mask">+clip-mask</a> to disable clipping for subsequent operations.</p>
1038
1039<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001040 <h3><a id="clip-path"></a>-clip-path <var>id</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001041</div>
1042
1043<p class="magick-description">Clip along a named path from the 8BIM profile.</p>
1044
1045<p>This is identical to <a href="command-line-options.html#clip">-clip</a> except choose a specific clip path in the event the image has more than one path available. </p>
1046
1047<p>Use <a href="command-line-options.html#clip-path">+clip-path</a> to disable clipping for subsequent operations.</p>
1048
1049<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001050 <h3><a id="clone"></a>-clone <var>index(s)</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001051</div>
1052
1053<p class="magick-description">make a clone of an image (or images).</p>
1054
1055<p>Inside parenthesis (where the operator is normally used) it will make a
1056clone of the images from the last 'pushed' image sequence, and adds them to
1057the end of the current image sequence. Outside parenthesis
1058(not recommended) it clones the images from the current image sequence. </p>
1059
1060<p>Specify the image by its index in the sequence. The first image is index
10610. Negative indexes are relative to the end of the sequence; for
1062example, <code>−1</code>
1063represents the last image of the sequence. Specify a range of images with a
1064dash (e.g. <code>0−4</code>). Separate multiple indexes with commas but no
1065spaces (e.g. <code>0,2,5</code>). A value of '<code>0−−1</code> will
1066effectively clone all the images. </p>
1067
1068<p>The <a href="command-line-options.html#clone">+clone</a> will simply make a copy of the last image
1069in the image sequence, and is thus equivalent to using a argument of
1070'<code>−1</code>'. </p>
1071
1072<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001073 <h3><a id="clut"></a>-clut</h3>
Cristy882d9f42015-10-29 16:48:39 -04001074</div>
1075
1076<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>
1077
1078<p>The second (LUT) image is ordinarily a gradient image containing the
1079histogram mapping of how each channel should be modified. Typically it is a
1080either a single row or column image of replacement color values. If larger
1081than a single row or column, values are taken from a diagonal line from
1082top-left to bottom-right corners.</p>
1083
Cristy594d2772015-11-15 10:47:42 -05001084<p>The lookup is further controlled by the <a
1085href="command-line-options.html#interpolate">-interpolate</a> setting, which is especially handy for an
Cristy882d9f42015-10-29 16:48:39 -04001086LUT which is not the full length needed by the ImageMagick installed Quality
1087(Q) level. Good settings for this are the '<code>bilinear</code>' and
1088'<code>bicubic</code>' interpolation settings, which give smooth color
1089gradients, and the '<code>integer</code>' setting for a direct, unsmoothed
1090lookup of color values. </p>
1091
1092<p>This operator is especially suited to replacing a grayscale image with a
1093specific color gradient from the CLUT image. </p>
1094
1095<p>Only the channel values defined by the <a href="command-line-options.html#channel">-channel</a>
Cristy594d2772015-11-15 10:47:42 -05001096setting will have their values replaced. In particular, since the default <a
1097href="command-line-options.html#channel">-channel</a> setting is <code>RGB</code>, this means that
1098transparency (alpha/matte channel) is not affected, unless the <a
1099href="command-line-options.html#channel">-channel</a> setting is modified. When the alpha channel is
1100set, it is treated by the <a href="command-line-options.html#clut" >-clut</a> operator in the same way
Cristy882d9f42015-10-29 16:48:39 -04001101as the other channels, implying that alpha/matte values are replaced using the
1102alpha/matte values of the original image. </p>
1103
1104<p>If either the image being modified, or the lookup image, contains no
Cristy594d2772015-11-15 10:47:42 -05001105transparency (i.e. <a href="command-line-options.html#alpha" >-alpha</a> is turned 'off') but the <a
1106href="command-line-options.html#channel">-channel</a> setting includes alpha replacement, then it is
Cristy769d8892016-01-19 18:11:14 -05001107assumed that image represents a grayscale gradient which is used for the
1108replacement alpha values. That is you can use a grayscale CLUT image to
1109adjust a existing images alpha channel, or you can color a grayscale image
Cristy882d9f42015-10-29 16:48:39 -04001110using colors form CLUT containing the desired colors, including transparency.
1111</p>
1112
Cristy594d2772015-11-15 10:47:42 -05001113<p>See also <a href="command-line-options.html#hald-clut" >-hald-clut</a> which replaces colors
Cristy882d9f42015-10-29 16:48:39 -04001114according to the lookup of the full color RGB value from a 2D representation
1115of a 3D color cube. </p>
1116
1117
1118<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001119 <h3><a id="coalesce"></a>-coalesce</h3>
Cristy882d9f42015-10-29 16:48:39 -04001120</div>
1121
1122<p class="magick-description">Fully define the look of each frame of an GIF animation sequence, to form a 'film strip' animation.</p>
1123
1124<p>Overlay each image in an image sequence according to
1125its <a href="command-line-options.html#dispose">-dispose</a> meta-data, to reproduce the look of
1126an animation at each point in the animation sequence. All images should be
1127the same size, and are assigned appropriate GIF disposal settings for the
1128animation to continue working as expected as a GIF animation. Such frames
1129are more easily viewed and processed than the highly optimized GIF overlay
1130images. </p>
1131
1132<p>The animation can be re-optimized after processing using
1133the <a href="command-line-options.html#layers">-layers</a> method '<code>optimize</code>', although
1134there is no guarantee that the restored GIF animation optimization is
1135better than the original. </p>
1136
1137
1138<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001139 <h3><a id="colorize"></a>-colorize <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001140</div>
1141
Cristy594d2772015-11-15 10:47:42 -05001142<p class="magick-description">Colorize the image by an amount specified by <var>value</var> using the color specified by the most recent <a href="command-line-options.html#fill" >-fill</a> setting.</p>
Cristy882d9f42015-10-29 16:48:39 -04001143
1144<p>Specify the amount of colorization as a percentage. Separate colorization
1145values can be applied to the red, green, and blue channels of the image with
1146a comma-delimited list of colorization
1147values (e.g., <code>-colorize 0,0,50</code>).</p>
1148
1149<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001150 <h3><a id="colormap"></a>-colormap <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001151</div>
1152
1153<p class="magick-description">Define the colormap type.</p>
1154
1155<p>The <var>type</var> can be <code>shared</code> or <code>private</code>.</p>
1156
1157<p>This option only applies when the default X server visual
1158is <code>PseudoColor</code> or <code>GrayScale</code>. Refer
1159to <a href="command-line-options.html#visual">-visual</a> for more details. By default,
1160a shared colormap is allocated. The image shares colors with
1161other X clients. Some image colors could be approximated,
1162therefore your image may look very different than intended.
1163If <code>private</code> is chosen, the image colors appear exactly
1164as they are defined. However, other clients may go <var>technicolor</var>
1165when the image colormap is installed.</p>
1166
1167<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001168 <h3><a id="colors"></a>-colors <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001169</div>
1170
1171<p class="magick-description">Set the preferred number of colors in the image.</p>
1172
1173<p>The actual number of colors in the image may be less than your request,
1174but never more. Note that this a color reduction option. Images with fewer
1175unique colors than specified by <var>value</var> will have any
1176duplicate or unused colors removed. The ordering of an existing color
1177palette may be altered. When converting an image from color to grayscale,
1178it is more efficient to convert the image to the gray colorspace before
1179reducing the number of colors. Refer to
Cristy6549abb2016-11-10 08:25:55 -05001180the <a href="http://www.imagemagick.org/www/quantize.html">
Cristy882d9f42015-10-29 16:48:39 -04001181color reduction algorithm</a> for more details.</p>
1182
1183<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001184 <h3><a id="color-matrix"></a>-color-matrix <var>matrix</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001185</div>
1186
1187<p class="magick-description">apply color correction to the image.</p>
1188
1189<p>This option permits saturation changes, hue rotation, luminance to alpha,
1190and various other effects. Although variable-sized transformation matrices
1191can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6
1192for CMYKA (or RGBA with offsets). The matrix is similar to those used by
1193Adobe Flash except offsets are in column 6 rather than 5 (in support of
1194CMYKA images) and offsets are normalized (divide Flash offset by 255).</p>
1195
1196<p>As an example, to add contrast to an image with offsets, try this command:</p>
1197
Cristy49380402017-06-29 11:24:55 -04001198<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001199convert kittens.jpg -color-matrix \
1200 " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
1201 0.0 1.5 0.0 0.0, 0.0, -0.157 \
1202 0.0 0.0 1.5 0.0, 0.0, -0.157 \
1203 0.0 0.0 0.0 1.0, 0.0, 0.0 \
1204 0.0 0.0 0.0 0.0, 1.0, 0.0 \
1205 0.0 0.0 0.0 0.0, 0.0, 1.0" kittens.png
Cristy49380402017-06-29 11:24:55 -04001206</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001207<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001208 <h3><a id="colorspace"></a>-colorspace <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001209</div>
1210
1211<p class="magick-description">Set the image colorspace.</p>
1212
1213<p>Choices are:</p>
1214
Cristy49380402017-06-29 11:24:55 -04001215<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001216CMY CMYK Gray HCL
1217HCLp HSB HSI HSL
1218HSV HWB Lab LCHab
1219LCHuv LMS Log Luv
1220OHTA Rec601YCbCr Rec709YCbCr RGB
1221scRGB sRGB Transparent xyY
1222XYZ YCbCr YCC YDbDr
Cristyd474b372017-02-14 12:19:13 -05001223YIQ YPbPr YUV Undefined
Cristy49380402017-06-29 11:24:55 -04001224</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001225
1226<p>To print a complete list of colorspaces, use <a href="command-line-options.html#list">-list colorspace</a>.</p>
1227
1228<p>For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the <a href="command-line-options.html#profile">-profile</a> option. Note, ImageMagick assumes the sRGB colorspace if the image format does not indicate otherwise. For colorspace conversion, the gamma function is first removed to produce linear RGB.</p>
1229
Cristy49380402017-06-29 11:24:55 -04001230<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04001231 <caption>Conversion of RGB to Other Color Spaces</caption>
1232 <tr><th valign="middle">CMY</th></tr>
1233 <tr><td valign="middle">C=<var>QuantumRange</var>−R</td></tr>
1234 <tr><td valign="middle">M=<var>QuantumRange</var>−G</td></tr>
1235 <tr><td valign="middle">Y=<var>QuantumRange</var>−B</td></tr>
1236 <tr><th valign="middle">CMYK — starts with CMY from above</th></tr>
1237 <tr><td valign="middle">K=min(C,Y,M)</td></tr>
1238 <tr><td valign="middle">C=<var>QuantumRange</var>*(C−K)/(<var>QuantumRange</var>−K)</td></tr>
1239 <tr><td valign="middle">M=<var>QuantumRange</var>*(M−K)/(<var>QuantumRange</var>−K)</td></tr>
1240 <tr><td valign="middle">Y=<var>QuantumRange</var>*(Y−K)/(<var>QuantumRange</var>−K)</td></tr>
1241
1242 <tr><th valign="middle">Gray</th></tr>
1243 <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>
1244
1245 <tr><th valign="middle">HSB — Hue, Saturation, Brightness; like a cone peak downward</th></tr>
1246 <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
1247 <tr><td valign="middle">S=distance from axis outward</td></tr>
1248 <tr><td valign="middle">B=distance along axis from bottom upward; B=max(R,G,B); <var>intensity-like</var></td></tr>
1249
1250 <tr><th valign="middle">HSL — Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom</th></tr>
1251 <tr><td valign="middle">H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green</td></tr>
1252 <tr><td valign="middle">S=distance from axis outward</td></tr>
1253 <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>
1254
1255 <tr><th valign="middle">HWB — Hue, Whiteness, Blackness</th></tr>
1256 <tr><td valign="middle">Hue (complicated equation)</td></tr>
1257 <tr><td valign="middle">Whiteness (complicated equation)</td></tr>
1258 <tr><td valign="middle">Blackness (complicated equation)</td></tr>
1259
1260 <tr><th valign="middle">LAB</th></tr>
1261 <tr><td valign="middle">L (complicated equation relating X,Y,Z)</td></tr>
1262 <tr><td valign="middle">A (complicated equation relating X,Y,Z)</td></tr>
1263 <tr><td valign="middle">B (complicated equation relating X,Y,Z)</td></tr>
1264
1265 <tr><th valign="middle">LOG</th></tr>
1266 <tr><td valign="middle">I1 (complicated equation involving logarithm of R)</td></tr>
1267 <tr><td valign="middle">I2 (complicated equation involving logarithm of G)</td></tr>
1268 <tr><td valign="middle">I3 (complicated equation involving logarithm of B)</td></tr>
1269
1270 <tr><th valign="middle">OHTA — approximates principal components transformation</th></tr>
1271 <tr><td valign="middle">I1=0.33333*R+0.33334*G+0.33333*B; <var>intensity-like</var></td></tr>
1272 <tr><td valign="middle">I2=(0.50000*R+0.00000*G−0.50000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1273 <tr><td valign="middle">I3=(−0.25000*R+0.50000*G−0.25000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1274
1275 <tr><th valign="middle">Rec601Luma</th></tr>
1276 <tr><td valign="middle">Gray = 0.298839*R+0.586811*G+0.114350*B</td></tr>
1277
1278 <tr><th valign="middle">Rec601YCbCr</th></tr>
1279 <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
1280 <tr><td valign="middle">Cb=(−0.168736*R-0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1281 <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1282
1283 <tr><th valign="middle">Rec709Luma</th></tr>
1284 <tr><td valign="middle">Gray=0.212656*R+0.715158*G+0.072186*B</td></tr>
1285
1286 <tr><th valign="middle">Rec709YCbCr</th></tr>
1287 <tr><td valign="middle">Y=0.212656*R+0.715158*G+0.072186*B; <var>intensity-like</var></td></tr>
1288 <tr><td valign="middle">Cb=(−0.114572*R−0.385428*G+0.500000*B)+(<var>QuantumRange</var>+1)/2</td></tr>
1289 <tr><td valign="middle">Cr=(0.500000*R−0.454153*G−0.045847*B)+(<var>QuantumRange</var>+1)/2</td></tr>
1290
1291 <tr><th valign="middle">sRGB</th></tr>
1292 <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>
1293 <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>
1294 <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>
1295
1296 <tr><th valign="middle">XYZ</th></tr>
1297 <tr><td valign="middle">X=0.4124564*R+0.3575761*G+0.1804375*B</td></tr>
1298 <tr><td valign="middle">Y=0.2126729*R+0.7151522*G+0.0721750*B</td></tr>
1299 <tr><td valign="middle">Z=0.0193339*R+0.1191920*G+0.9503041*B</td></tr>
1300
1301 <tr><th valign="middle">YCC</th></tr>
1302 <tr><td valign="middle">Y=(0.298839*R+0.586811*G+0.114350*B) (with complicated scaling); <var>intensity-like</var></td></tr>
1303 <tr><td valign="middle">C1=(−0.298839*R−0.586811*G+0.88600*B) (with complicated scaling)</td></tr>
1304 <tr><td valign="middle">C2=(0.70100*R−0.586811*G−0.114350*B) (with complicated scaling)</td></tr>
1305
1306 <tr><th valign="middle">YCbCr</th></tr>
1307 <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
1308 <tr><td valign="middle">Cb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1309 <tr><td valign="middle">Cr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1310
1311 <tr><th valign="middle">YIQ</th></tr>
1312 <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>
1313 <tr><td valign="middle">I=(0.59600*R−0.27400*G−0.32200*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1314 <tr><td valign="middle">Q=(0.21100*R−0.52300*G+0.31200*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1315
1316 <tr><th valign="middle">YPbPr</th></tr>
1317 <tr><td valign="middle">Y=0.2988390*R+0.5868110*G+0.1143500*B; <var>intensity-like</var></td></tr>
1318 <tr><td valign="middle">Pb=(−0.168736*R−0.331264*G+0.500000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1319 <tr><td valign="middle">Pr=(0.500000*R−0.418688*G−0.081312*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1320
1321 <tr><th valign="middle">YUV</th></tr>
1322 <tr><td valign="middle">Y=0.298839*R+0.586811*G+0.114350*B; <var>intensity-like</var></td></tr>
1323 <tr><td valign="middle">U=(−0.14740*R−0.28950*G+0.43690*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1324 <tr><td valign="middle">V=(0.61500*R−0.51500*G−0.10000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
1325</table>
1326
1327<p>Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.</p>
1328
Cristyd474b372017-02-14 12:19:13 -05001329<p>Use the <code>Undefined</code> colorspace to identify multi-spectral images.</p>
1330
Cristy882d9f42015-10-29 16:48:39 -04001331<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001332 <h3><a id="combine"></a>-combine</h3>
1333 <h3>+combine <var>colorspace</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001334</div>
1335
1336<p class="magick-description">Combine one or more images into a single image.</p>
1337
1338<p>The channels (previously set by <a href="command-line-options.html#channel">-channel</a>) of the
1339combined image are taken from the grayscale values of each image in the
1340sequence, in order. For the default -channel setting of <code>RGB</code>, this
1341means the first image is assigned to the <code>Red</code> channel, the second
1342to the <code>Green</code> channel, the third to the <code>Blue</code>.</p>
1343
Cristy594d2772015-11-15 10:47:42 -05001344<p>This option can be thought of as the inverse to <a
1345href="command-line-options.html#separate">-separate</a>, so long as the channel settings are the same.
Cristy882d9f42015-10-29 16:48:39 -04001346Thus, in the following example, the final image should be a copy of the
1347original. </p>
1348
Cristy49380402017-06-29 11:24:55 -04001349<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001350convert original.png -channel RGB -separate sepimage.png
1351convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
1352 -combine imagecopy.png
Cristy49380402017-06-29 11:24:55 -04001353</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001354
1355<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001356 <h3><a id="comment"></a>-comment <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001357</div>
1358
1359<p class="magick-description">Embed a comment in an image.</p>
1360
1361<p>This option sets the comment meta-data of an image read in after this
1362option has been given. To modify a comment of images already in memory use
1363"<code><a href="command-line-options.html#set">-set</a> comment</code>". </p>
1364
Cristy594d2772015-11-15 10:47:42 -05001365<p>The comment can contain special format characters listed in the <a
1366href="escape.html">Format and
Cristy882d9f42015-10-29 16:48:39 -04001367Print Image Properties</a>. These attributes are expanded when the comment
1368is finally assigned to the individual images. </p>
1369
1370<p>If the first character of <var>string</var> is <var>@</var>, the image comment is read from a file titled by the
1371remaining characters in the string. Comments read in from a file are literal;
1372no embedded formatting characters are recognized.</p>
1373
1374<p>Comment meta-data are not visible on the image itself. To do that use the
1375<a href="command-line-options.html#annotate">-annotate</a> or <a href="command-line-options.html#draw">-draw</a> options
1376instead.</p>
1377
1378<p>For example,</p>
1379
Cristy49380402017-06-29 11:24:55 -04001380<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001381-comment "%m:%f %wx%h" bird.miff
Cristy49380402017-06-29 11:24:55 -04001382</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001383
1384<p>produces an image comment of <code>MIFF:bird.miff 512x480</code> (assuming
1385that the image <code>bird.miff</code> has a width of 512 and a height of
1386480.</p>
1387
1388<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001389 <h3><a id="compare"></a>-compare</h3>
Cristy882d9f42015-10-29 16:48:39 -04001390</div>
1391
1392<p class="magick-description">mathematically and visually annotate the difference between an image and its reconstruction</p>
1393
1394<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>
1395
Cristy49380402017-06-29 11:24:55 -04001396<pre><code>
Cristy594d2772015-11-15 10:47:42 -05001397convert image.png reference.png -metric RMSE -compare \ <br/> difference.png
Cristy49380402017-06-29 11:24:55 -04001398</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001399
1400<p>To get the metric value use the string format "%[distortion]".</p>
1401
Cristy49380402017-06-29 11:24:55 -04001402<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001403convert image.png reference.png -metric RMSE -compare -format \
1404 "%[distortion]" info:
Cristy49380402017-06-29 11:24:55 -04001405</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001406
1407<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001408 <h3><a id="complex"></a>-complex <var>operator</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001409</div>
1410
1411<p class="magick-description">perform complex mathematics on an image sequence</p>
1412
1413Choose from these operators:
1414
Cristy49380402017-06-29 11:24:55 -04001415<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001416add
1417conjugate
1418divide
1419magnitude-phase
1420multiply
1421real-imaginary
1422subtract
Cristy49380402017-06-29 11:24:55 -04001423</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001424
1425<p>Optionally specify the <code>divide</code> operator SNR with <code><a href="command-line-options.html#define">-define</a> complex:snr=float</code>.</p>
1426
1427<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001428 <h3><a id="compose"></a>-compose <var>operator</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001429</div>
1430
1431<p class="magick-description">Set the type of image composition.</p>
1432
Cristy6549abb2016-11-10 08:25:55 -05001433<p>See <a href="http://www.imagemagick.org/www/compose.html">Alpha Compositing</a> for
Cristy882d9f42015-10-29 16:48:39 -04001434a detailed discussion of alpha compositing.</p>
1435
1436<p>This setting effects image processing operators that merge two (or more)
1437images together in some way. This includes the operators,
1438<a href="command-line-options.html#composite">-compare</a>,
1439<a href="command-line-options.html#composite">-composite</a>,
1440<a href="command-line-options.html#layers">-layers</a> composite,
1441<a href="command-line-options.html#flatten">-flatten</a>,
1442<a href="command-line-options.html#mosaic">-mosaic</a>,
1443<a href="command-line-options.html#layers">-layers</a> merge,
1444<a href="command-line-options.html#border">-border</a>,
1445<a href="command-line-options.html#frame">-frame</a>,
1446and <a href="command-line-options.html#extent">-extent</a>. </p>
1447
1448<p>It is also one of the primary options for the "<code>composite</code>"
1449command. </p>
1450
1451
1452<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001453 <h3><a id="composite"></a>-composite</h3>
Cristy882d9f42015-10-29 16:48:39 -04001454</div>
1455
1456<p class="magick-description">Perform alpha composition on two images and an optional mask</p>
1457
1458<p>Take the first image 'destination' and overlay the second 'source' image
1459according to the current <a href="command-line-options.html#compose">-compose</a> setting. The location
Cristy594d2772015-11-15 10:47:42 -05001460of the 'source' or 'overlay' image is controlled according to <a
Cristye93be682015-11-26 09:07:51 -05001461href="command-line-options.html#gravity" >-gravity</a>, and <a href="command-line-options.html#geometry" >-geometry</a>
Cristy882d9f42015-10-29 16:48:39 -04001462settings. </p>
1463
Cristy769d8892016-01-19 18:11:14 -05001464<p>If a third image is given this is treated as a grayscale blending 'mask' image
Cristy882d9f42015-10-29 16:48:39 -04001465relative to the first 'destination' image. This mask is blended with the
1466source image. However for the '<code>displace</code>' compose method, the
1467mask is used to provide a separate Y-displacement image instead. </p>
1468
1469<p>If a <a href="command-line-options.html#compose">-compose</a> method requires extra numerical
Cristy594d2772015-11-15 10:47:42 -05001470arguments or flags these can be provided by setting the <a
1471href="command-line-options.html#set">-set</a> '<code>option:compose:args</code>'
Cristy882d9f42015-10-29 16:48:39 -04001472appropriately for the compose method. </p>
1473
1474<p>Some <a href="command-line-options.html#compose">-compose</a> methods can modify the 'destination'
Cristy594d2772015-11-15 10:47:42 -05001475image outside the overlay area. You can disable this by setting the special <a
1476href="command-line-options.html#set">-set</a> '<code>option:compose:outside-overlay</code>'
Cristy882d9f42015-10-29 16:48:39 -04001477to '<code>false</code>'. </p>
1478
1479<p>The SVG compositing specification requires that color and opacity values range between zero and QuantumRange inclusive. You can permit values outside this range with this option: <a href="command-line-options.html#set">-set</a> '<code>option:compose:clamp=false</code></p>
1480
1481
1482<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001483 <h3><a id="compress"></a>-compress <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001484</div>
1485
1486<p class="magick-description">Use pixel compression specified by <var>type</var> when writing the image.</p>
1487
Cristy594d2772015-11-15 10:47:42 -05001488<p>Choices are: <code>None</code>, <code>BZip</code>, <code
1489>Fax</code>, <code>Group4</code>, <code
1490>JPEG</code>, <code>JPEG2000</code>, <code
1491>Lossless</code>, <code>LZW</code>, <code
1492>RLE</code> or <code>Zip</code>.</p>
Cristy882d9f42015-10-29 16:48:39 -04001493
1494<p>To print a complete list of compression types, use <a href="command-line-options.html#list">-list
1495compress</a>.</p>
1496
1497<p>Specify <a href="command-line-options.html#compress">+compress</a> to store the binary image in an
1498uncompressed format. The default is the compression type of the specified
1499image file.</p>
1500
1501<p>If <code>LZW</code> compression is specified but LZW compression has not been
1502enabled, the image data is written in an uncompressed LZW format that can be
1503read by LZW decoders. This may result in larger-than-expected GIF files.</p>
1504
1505<p><code>Lossless</code> refers to lossless JPEG, which is only available if the
1506JPEG library has been patched to support it. Use of lossless JPEG is generally
1507not recommended.</p>
1508
1509<p>
1510When writing an ICO file, you may request that the images be encoded in
1511PNG format, by specifying <code>Zip</code> compression.</p>
1512
1513<p>
1514When writing a JNG file, specify <code>Zip</code> compression to request that
1515the alpha channel be encoded in PNG "IDAT" format, or <code>JPEG</code>
1516to request that it be encoded in JPG "JDAA" format.</p>
1517
1518<p>Use the <a href="command-line-options.html#quality">-quality</a> option to set the compression level
1519to be used by JPEG, PNG, MIFF, and MPEG encoders.
1520Use the <a href="command-line-options.html#sampling-factor">-sampling-factor</a> option to set the
1521sampling factor to be used by JPEG, MPEG, and YUV encoders for down-sampling
1522the chroma channels.</p>
1523
1524<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001525 <h3><a id="connected-components"></a>-connected-components <var>connectivity</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001526</div>
1527
Cristyce4a3552015-12-14 13:53:35 -05001528<p class="magick-description"><a href="connected-components.html">connected-components</a> labeling detects connected regions in an image, choose from 4 or 8 way connectivity.</p>
Cristy882d9f42015-10-29 16:48:39 -04001529
Cristy594d2772015-11-15 10:47:42 -05001530<p>Use <code><a href="command-line-options.html#define" >-define</a> connected-components:verbose=true</code> to output statistics associated with each unique label.</p>
Cristy882d9f42015-10-29 16:48:39 -04001531
1532<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001533 <h3><a id="contrast"></a>-contrast</h3>
Cristy882d9f42015-10-29 16:48:39 -04001534</div>
1535
1536<p class="magick-description">Enhance or reduce the image contrast.</p>
1537
1538<p>This option enhances the intensity differences between the lighter and
1539darker elements of the image. Use <a href="command-line-options.html#contrast">-contrast</a> to enhance
1540the image or <a href="command-line-options.html#contrast">+contrast</a> to reduce the image
1541contrast.</p>
1542
1543<p>For a more pronounced effect you can repeat the option:</p>
1544
Cristy49380402017-06-29 11:24:55 -04001545<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001546convert rose: -contrast -contrast rose_c2.png
Cristy49380402017-06-29 11:24:55 -04001547</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001548
1549<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001550 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04001551</div>
1552
1553<p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p>
1554
1555<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
Cristy594d2772015-11-15 10:47:42 -05001556<var >black-point %</var> pixels and white-out at most <var>white-point %</var> pixels.</p>
Cristy882d9f42015-10-29 16:48:39 -04001557
Cristy594d2772015-11-15 10:47:42 -05001558<p>Prior to ImageMagick 6.4.7-0, <a href="command-line-options.html#contrast-stretch"
1559>-contrast-stretch</a> will black-out at most <var>black-point</var> pixels and white-out at most <var >total pixels
Cristy882d9f42015-10-29 16:48:39 -04001560minus 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>
1561
1562<p>Note that <code>-contrast-stretch 0</code> will modify the image such that
1563the 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
Cristy594d2772015-11-15 10:47:42 -05001564clipping at either end. This is not the same as <a href="command-line-options.html#normalize"
1565>-normalize</a>, which is equivalent to <code>-contrast-stretch 0.15x0.05%</code> (or
Cristy882d9f42015-10-29 16:48:39 -04001566prior to ImageMagick 6.4.7-0, <code>-contrast-stretch 2%x99%</code>).</p>
1567
1568<p>Internally operator works by creating a histogram bin, and then uses that
1569bin to modify the image. As such some colors may be merged together when they
1570originally fell into the same 'bin'. </p>
1571
Cristy769d8892016-01-19 18:11:14 -05001572<p>All the channels are normalized in concert by the same amount so as to
Cristy594d2772015-11-15 10:47:42 -05001573preserve color integrity, when the default <a href="command-line-options.html#channel" >+channel</a>
1574setting is in use. Specifying any other <a href="command-line-options.html#channel" >-channel</a>
Cristy882d9f42015-10-29 16:48:39 -04001575setting will normalize the RGB channels independently.</p>
1576
Cristy594d2772015-11-15 10:47:42 -05001577<p>See also <a href="command-line-options.html#auto-level" >-auto-level</a> for a 'perfect'
Cristy882d9f42015-10-29 16:48:39 -04001578normalization of mathematical images. </p>
1579
1580<p>This operator is under review for re-development. </p>
1581
1582
1583<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001584 <h3><a id="convolve"></a>-convolve <var>kernel</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001585</div>
1586
1587<p class="magick-description">Convolve an image with a user-supplied convolution kernel.</p>
1588
1589<p>The <var>kernel</var> is a matrix specified as
1590a comma-separated list of integers (with no spaces), ordered left-to right,
1591starting with the top row. Presently, only odd-dimensioned kernels are
1592supported, and therefore the number of entries in the specified <var>kernel</var> must be 3<sup>2</sup>=9, 5<sup>2</sup>=25,
15937<sup>2</sup>=49, etc. </p>
1594
Cristy594d2772015-11-15 10:47:42 -05001595<p>Note that the <a href="command-line-options.html#convolve">&#x2011;convolve</a> operator supports the <a href="command-line-options.html#bias">&#x2011;bias</a> setting. This option shifts the convolution so that
Cristy882d9f42015-10-29 16:48:39 -04001596positive and negative results are relative to a user-specified bias value.
1597This is important for non-HDRI compilations of ImageMagick when dealing with
1598convolutions that contain negative as well as positive values. This is
1599especially the case with convolutions involving high pass filters or edge
1600detection. Without an output bias, the negative values is clipped at zero.
1601</p>
1602
Cristy594d2772015-11-15 10:47:42 -05001603<p>When using an ImageMagick with the HDRI compile-time setting, <a href="command-line-options.html#bias">&#x2011;bias</a> is not needed, as ImageMagick is able to store/handle any
Cristy882d9f42015-10-29 16:48:39 -04001604negative results without clipping to the color value range (0..QuantumRange).
Cristy594d2772015-11-15 10:47:42 -05001605See the discussion on HDRI implementations of ImageMagick on the page <a
1606href="high-dynamic-range.html">High
1607Dynamic-Range Images</a>. For more about HDRI go the ImageMagick <a
Cristy364a72f2016-11-04 22:38:41 -04001608href="https://www.imagemagick.org/Usage/basics/#hdri">Usage</a> pages or this
Cristy882d9f42015-10-29 16:48:39 -04001609<a href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>
1610entry. </p>
1611
1612
1613<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001614 <h3><a id="copy"></a>-copy <var>geometry</var> <var>offset</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001615</div>
1616
1617<p class="magick-description">copy pixels from one area of an image to another.</p>
1618
1619<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001620 <h3><a id="crop"></a>-crop <var>geometry</var>{<var>@</var>}{<var>!</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04001621</div>
1622
1623<p class="magick-description">Cut out one or more rectangular regions of the image.</p>
1624
1625<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
1626
1627<p>The <var>width</var> and <var>height</var> of the <var>geometry</var> argument give the size of the image that remains
1628after cropping, and <var>x</var> and <var>y</var> in the
1629<var>offset</var> (if present) gives the location of the top left
1630corner of the cropped image with respect to the original image. To specify the
1631amount to be removed, use <a href="command-line-options.html#shave">-shave</a> instead.</p>
1632
1633<p>If the <var>x</var> and <var>y</var> offsets are
1634present, a single image is generated, consisting of the pixels from the
1635cropping region. The offsets specify the location of the upper left corner of
1636the cropping region measured downward and rightward with respect to the upper
1637left corner of the image. If the <a href="command-line-options.html#gravity">-gravity</a> option is
1638present with <code>NorthEast</code>, <code>East</code>, or <code>SouthEast</code>
1639gravity, it gives the distance leftward from the right edge of the image to
Cristy594d2772015-11-15 10:47:42 -05001640the right edge of the cropping region. Similarly, if the <a
1641href="command-line-options.html#gravity">-gravity</a> option is present with <code>SouthWest</code>,
Cristy882d9f42015-10-29 16:48:39 -04001642<code>South</code>, or <code>SouthEast</code> gravity, the distance is measured
1643upward between the bottom edges.</p>
1644
1645<p>If the <var>x</var> and <var>y</var> offsets are
1646omitted, a set of tiles of the specified geometry, covering the entire input
1647image, is generated. The rightmost tiles and the bottom tiles are smaller if
1648the specified geometry extends beyond the dimensions of the input image.</p>
1649
1650<p>You can add the <var>@</var> to the geometry argument to equally divide the image into the number of tiles generated.</p>
1651
1652<p>By adding a exclamation character flag to the geometry argument, the
1653cropped images virtual canvas page size and offset is set as if the
1654geometry argument was a viewport or window. This means the canvas page size
1655is set to exactly the same size you specified, the image offset set
1656relative top left corner of the region cropped. </p>
1657
1658<p>If the cropped image 'missed' the actual image on its virtual canvas, a
1659special single pixel transparent 'missed' image is returned, and a 'crop
1660missed' warning given. </p>
1661
Cristy594d2772015-11-15 10:47:42 -05001662<p>It might be necessary to <a href="command-line-options.html#repage" >+repage</a> the image prior to
Cristy882d9f42015-10-29 16:48:39 -04001663cropping the image to ensure the crop coordinate frame is relocated to the
1664upper-left corner of the visible image.
1665
Cristy594d2772015-11-15 10:47:42 -05001666Similarly you may want to use <a href="command-line-options.html#repage" >+repage</a> after cropping to
Cristy882d9f42015-10-29 16:48:39 -04001667remove the page offset that will be left behind. This is especially true when
1668you are going to write to an image format such as PNG that supports an image
1669offset.</p>
1670
1671<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001672 <h3><a id="cycle"></a>-cycle <var>amount</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001673</div>
1674
1675<p class="magick-description">displace image colormap by amount.</p>
1676
1677<p><var>Amount</var> defines the number of positions each
1678colormap entry is shifted.</p>
1679
1680
1681<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001682 <h3><a id="debug"></a>-debug <var>events</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001683</div>
1684
1685<p class="magick-description">enable debug printout.</p>
1686
1687<p>The <code>events</code> parameter specifies which events are to be logged. It
1688can be either <code>None</code>, <code>All</code>, <code>Trace</code>, or
1689a comma-separated list consisting of one or more of the following domains:
1690<code>Accelerate</code>, <code>Annotate</code>, <code>Blob</code>, <code>Cache</code>,
1691<code>Coder</code>, <code>Configure</code>, <code>Deprecate</code>,
1692<code>Exception</code>, <code>Locale</code>, <code>Render</code>,
1693<code>Resource</code>, <code>Security</code>, <code>TemporaryFile</code>,
1694<code>Transform</code>, <code>X11</code>, or <code>User</code>. </p>
1695
1696
1697<p>For example, to log cache and blob events, use.</p>
1698
Cristy49380402017-06-29 11:24:55 -04001699<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04001700convert -debug "Cache,Blob" rose: rose.png
Cristy49380402017-06-29 11:24:55 -04001701</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04001702
1703<p>The <code>User</code> domain is normally empty, but developers can log user
1704events in their private copy of ImageMagick.</p>
1705
1706<p>To print the complete list of debug methods, use <a href="command-line-options.html#list">-list
1707debug</a>.</p>
1708
1709<p>Use the <a href="command-line-options.html#log">-log</a> option to specify the format for debugging
1710output.</p>
1711
1712<p>Use <a href="command-line-options.html#debug">+debug</a> to turn off all logging.</p>
1713
Cristy594d2772015-11-15 10:47:42 -05001714<p>Debugging may also be set using the <code>MAGICK_DEBUG</code> <a href="resources.html#environment"
1715>environment variable</a>. The allowed values for the <code>MAGICK_DEBUG</code>
Cristy882d9f42015-10-29 16:48:39 -04001716environment variable are the same as for the <a href="command-line-options.html#debug">-debug</a>
1717option.</p>
1718
1719
1720<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001721 <h3><a id="decipher"></a>-decipher <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001722</div>
1723
1724<p class="magick-description">Decipher and restore pixels that were previously transformed by <a href="command-line-options.html#encipher">-encipher</a>.</p>
1725
1726<p>Get the passphrase from the file specified by <var>filename</var>.</p>
1727
Cristy594d2772015-11-15 10:47:42 -05001728<p>For more information, see the webpage, <a
Cristy6549abb2016-11-10 08:25:55 -05001729href="https://www.imagemagick.org/script/cipher.html">ImageMagick: Encipher or
Cristy882d9f42015-10-29 16:48:39 -04001730Decipher an Image</a>.</p>
1731
1732
1733<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001734 <h3><a id="deconstruct"></a>-deconstruct</h3>
Cristy882d9f42015-10-29 16:48:39 -04001735</div>
1736
1737<p class="magick-description">find areas that has changed between images </p>
1738
Cristy594d2772015-11-15 10:47:42 -05001739<p>Given a sequence of images all the same size, such as produced by <a
1740href="command-line-options.html#coalesce">-coalesce</a>, replace the second and later images, with
Cristy882d9f42015-10-29 16:48:39 -04001741a smaller image of just the area that changed relative to the previous image.
1742</p>
1743
1744<p>The resulting sequence of images can be used to optimize an animation
1745sequence, though will not work correctly for GIF animations when parts of the
1746animation can go from opaque to transparent. </p>
1747
1748<p>This option is actually equivalent to the <a href="command-line-options.html#layers">-layers</a>
1749method '<code>compare-any</code>'. </p>
1750
1751
1752<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04001753 <h3><a id="define"></a>-define <var>key</var>{<var>=value</var>}<var>...</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04001754</div>
1755
1756<p class="magick-description">add specific global settings generally used to control coders and image processing operations.</p>
1757
1758<p>This option creates one or more definitions for coders and decoders to use
1759while reading and writing image data. Definitions are generally used to
1760control image file format coder modules, and image processing operations,
Cristy594d2772015-11-15 10:47:42 -05001761beyond what is provided by normal means. Defined settings are listed in <a
1762href="command-line-options.html#verbose" >-verbose</a> information ("<code>info:</code>" output format)
Cristy882d9f42015-10-29 16:48:39 -04001763as "Artifacts". </p>
1764
1765<p>If <var>value</var> is missing for a definition, an empty-valued
1766definition of a flag is created with that name. This used to control on/off
1767options. Use <a href="command-line-options.html#define">+define key</a> to remove definitions
1768previously created. Use <a href="command-line-options.html#define">+define "*"</a> to remove all
1769existing definitions.</p>
1770
Cristy594d2772015-11-15 10:47:42 -05001771<p>The same 'artifact' settings can also be defined using the <a
1772href="command-line-options.html#set" >-set "option:<var>key</var>" "<var>value</var>"</a> option, which also allows the use of <a href="escape.html" >Format and Print Image
Cristy882d9f42015-10-29 16:48:39 -04001773Properties</a> in the defined value. </p>
1774
1775<p>The <var>option</var> and <var>key</var> are case-independent (they are
1776converted to lowercase for use within the decoders) while the <var>value</var>
1777is case-dependent.</p>
1778
1779<p>Such settings are global in scope, and affect all images and operations. </p>
1780
1781<p>The following definitions are just some of the artifacts that are
1782available:</p>
1783
Cristy49380402017-06-29 11:24:55 -04001784<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04001785 <tr>
Cristye0779712016-07-30 17:25:22 -04001786 <td>bmp:alpha=<var>true|false</var></td>
1787 <td>include any alpha channel when writing in the BMP image format.</td>
1788 </tr>
1789
1790 <tr>
Cristy882d9f42015-10-29 16:48:39 -04001791 <td>bmp:format=<var>value</var></td>
1792 <td> valid values are <var>bmp2</var>, <var>bmp3</var>,
1793 and <var>bmp4</var>. This option can be useful when the
1794 method of prepending "BMP2:" to the output filename is inconvenient or
1795 is not available, such as when using the <a href="mogrify.html">mogrify</a> utility.</td>
1796 </tr>
1797
1798 <tr>
1799 <td>colorspace:auto-grayscale=<var>on|off</var></td>
Cristyd474b372017-02-14 12:19:13 -05001800 <td>prevent automatic conversion to grayscale inside coders that support
1801 grayscale. This should be accompanied by -type truecolor. PNG and TIF do
1802 not need this define. With PNG, just use PNG24:image. With TIF, just use
1803 -type truecolor. JPG and PSD will need this define.</td>
Cristy882d9f42015-10-29 16:48:39 -04001804 </tr>
1805
1806 <tr>
1807 <td>complex:snr=<var>value</var></td>
1808 <td>Set the divide SNR constant<a href="command-line-options.html#complex">-complex</a></td>
1809 </tr>
1810
1811 <tr>
1812 <td>compose:args=<var>arguments</var></td>
1813 <td>Sets certain compose argument values when using convert ... -compose ...
Cristy1f1f3a02016-06-01 07:25:42 -04001814 -composite. See <a href="compose.html"
Cristy594d2772015-11-15 10:47:42 -05001815 >Image Composition</a></td>
Cristy882d9f42015-10-29 16:48:39 -04001816 </tr>
1817
1818 <tr>
1819 <td>compose:clamp=<var>on|off</var></td>
Cristyd474b372017-02-14 12:19:13 -05001820 <td>set each pixel whose value is below zero to zero and any the pixel
1821 whose value is above the quantum range to the quantum range (e.g. 65535)
1822 otherwise the pixel value remains unchanged. Define supported in
Cristybc232422016-11-22 07:46:18 -05001823 ImageMagick 6.9.1-3 and above.</td>
Cristy882d9f42015-10-29 16:48:39 -04001824 </tr>
1825
1826 <tr>
Cristyde27d762016-01-02 12:56:44 -05001827 <td>connected-components:area-threshold=<var>value</var></td>
1828 <td>Merges any region with area smaller than <var>value</var> into its surrounding region or largest neighbor.</td>
1829 </tr>
1830
1831 <tr>
1832 <td>connected-components:keep=<var>list-of-ids</var></td>
Cristybc232422016-11-22 07:46:18 -05001833 <td>Comma and/or hyphenated list of id values to keep in the output.
1834 Supported in Imagemagick 6.9.3-0.</td>
Cristyde27d762016-01-02 12:56:44 -05001835 </tr>
1836
1837 <tr>
1838 <td>connected-components:mean-color=<var>true</var></td>
Cristybc232422016-11-22 07:46:18 -05001839 <td>Changes the output image from id values to mean color values. Supported
1840 in Imagemagick 6.9.2-8.</td>
Cristyde27d762016-01-02 12:56:44 -05001841 </tr>
1842
1843 <tr>
1844 <td>connected-components:remove=<var>list-of-ids</var></td>
Cristybc232422016-11-22 07:46:18 -05001845 <td>Comma and/or hyphenated list of id values to remove from the output.
1846 Supported in Imagemagick 6.9.2-9.</td>
Cristyde27d762016-01-02 12:56:44 -05001847 </tr>
1848
1849 <tr>
1850 <td>connected-components:verbose=<var>true</var></td>
1851 <td>Lists id, bounding box, centroid, area, mean color for each region.</td>
1852 </tr>
1853
1854 <tr>
Cristy882d9f42015-10-29 16:48:39 -04001855 <td>convolve:scale=<var>{kernel_scale}[!^] [,{origin_addition}] [%]</var></td>
1856 <td>Defines the kernel scaling. The special flag ! automatically scales to
1857 full dynamic range. The ! flag can be used in combination with a factor or
1858 percent. The factor or percent is then applied after the automatic scaling.
1859 An example is 50%!. This produces a result 50% darker than full dynamic
1860 range scaling. The ^ flag assures the kernel is 'zero-summing', for
1861 example when some values are positive and some are negative as in edge
1862 detection kernels. The origin addition adds that value to the center
1863 pixel of the kernel. This produces and effect that is like adding the image
1864 that many times to the result of the filtered image. The typical value
1865 is 1 so that the original image is added to the result of the convolution.
1866 The default is 0.</td>
1867 </tr>
1868
1869 <tr>
1870 <td>convolve:showkernel=<var>1</var></td>
Cristy594d2772015-11-15 10:47:42 -05001871 <td>Outputs (to 'standard error') all the information about a specified <a
1872 href="command-line-options.html#morphology" >-morphology convolve</a> kernel.</td>
Cristy882d9f42015-10-29 16:48:39 -04001873 </tr>
1874
1875 <tr>
1876 <td>dcm:display-range=<var>reset</var></td>
1877 <td>Sets the display range to the minimum and maximum pixel values for the
1878 DCM image format.</td>
1879 </tr>
1880
1881 <tr>
1882 <td>dds:cluster-fit=<var>true|false</var></td>
1883 <td>Enables the dds cluster-fit.</td>
1884 </tr>
1885
1886 <tr>
1887 <td>dds:compression=<var>dxt1|dxt5|none</var></td>
1888 <td>Sets the dds compression.</td>
1889 </tr>
1890
1891 <tr>
1892 <td>dds:mipmaps=<var>value</var></td>
1893 <td>Sets the dds number of mipmaps.</td>
1894 </tr>
1895
1896 <tr>
Cristy3b0b58d2016-11-06 07:40:23 -05001897 <td>dds:weight-by-alpha=<var>true|false</var></td>
Cristy882d9f42015-10-29 16:48:39 -04001898 <td>Enables the dds alpha weighting.</td>
1899 </tr>
1900
1901 <tr>
Cristy3b0b58d2016-11-06 07:40:23 -05001902 <td>deskew:auto-crop=<var>true</var></td>
1903 <td>auto crop the image after deskewing.</td>
1904 </tr>
1905
1906 <tr>
Cristy882d9f42015-10-29 16:48:39 -04001907 <td>delegate:bimodal=<var>true</var></td>
1908 <td>Specifies direct conversion from Postscript to PDF.</td>
1909 </tr>
1910
1911 <tr>
1912 <td>distort:scale=<var>value</var></td>
Cristy594d2772015-11-15 10:47:42 -05001913 <td>Sets the output scaling factor for use with <a href="command-line-options.html#distort"
1914 >-distort</a></td>
Cristy882d9f42015-10-29 16:48:39 -04001915 </tr>
1916
1917 <tr>
1918 <td>distort:viewport=<var>WxH+X+Y</var></td>
1919 <td>Sets the viewport for use with <a href="command-line-options.html#distort">-distort</a></td>
1920 </tr>
1921
1922 <tr>
1923 <td>dot:layout-engine=<var>value</var></td>
1924 <td>Specifies the layout engine for the DOT image format (e.g.
1925 <code>neato</code>).</td>
1926 </tr>
1927
1928 <tr>
Cristyf41bcd12017-03-28 05:59:57 -04001929 <td>exr:color-type=<var>value</var></td>
1930 <td>Specifies the color type for the EXR format: RGB, RGBA, YC, YCA, Y, YA, R, G, B, A).</td>
1931 </tr>
1932
1933 <tr>
Cristy882d9f42015-10-29 16:48:39 -04001934 <td>filter:option=<var>value</var></td>
1935 <td>Set a filter option for use with <a href="command-line-options.html#resize">-resize</a>.
1936 See <a href="command-line-options.html#filter">-filter</a> for details.</td>
1937 </tr>
1938
1939 <tr>
1940 <td>fourier:normalize=<var>inverse</var></td>
1941 <td>Sets the location for the FFT/IFT normalization as use by
1942 <a href="command-line-options.html#fft">+-fft</a> and <a href="command-line-options.html#ift">+-ift</a>. The default is
1943 <var>forward</var>.</td>
1944 </tr>
1945
1946 <tr>
1947 <td>h:format=<var>value</var></td>
1948 <td>Set the image encoding format use when writing a C-style header.
1949 <var>format</var> can be any output format supported by ImageMagick
Cristy579a0cb2016-11-26 12:27:17 -05001950 except for <var>h</var> and <var>magick</var>. If this
Cristy882d9f42015-10-29 16:48:39 -04001951 option is omitted, the default is <var>GIF</var> for PseudoClass
1952 images and <var>PNM</var> for DirectClass images.
Cristy579a0cb2016-11-26 12:27:17 -05001953 </td>
Cristy882d9f42015-10-29 16:48:39 -04001954 </tr>
1955
1956 <tr>
1957 <td>icon:auto-resize</td>
1958 <td>Automatically stores multiple sizes when writing an ico image
1959 (requires a 256x256 input image).</td>
1960 </tr>
1961
1962 <tr>
Cristyf41bcd12017-03-28 05:59:57 -04001963 <td>identify:locate=<var>minimum|maximum</var></td>
1964 <td>Locates the coordinates of one or more image minimum or maximum</td>
1965 </tr>
1966
1967 <tr>
1968 <td>identify:limit=<var>number</var></td>
1969 <td>Locates the coordinates for the number of minima or maxima specified</td>
1970 </tr>
1971
1972 <tr>
Cristy882d9f42015-10-29 16:48:39 -04001973 <td>jp2:layer-number=<var>value</var></td>
1974 <td>Sets the maximum number of quality layers to decode. Same for JPT, JC2,
1975 and J2K</td>
1976 </tr>
1977
1978 <tr>
1979 <td>jp2:number-resolutions=<var>value</var></td>
Cristybc232422016-11-22 07:46:18 -05001980 <td>Sets the number of resolutions to encode.Same for JPT, JC2, and
1981 J2K</td>
Cristy882d9f42015-10-29 16:48:39 -04001982 </tr>
1983
1984 <tr>
1985 <td>jp2:progression-order=<var>value</var></td>
1986 <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
1987 J2K</td>
1988 </tr>
1989
1990 <tr>
1991 <td>jp2:quality=<var>value,value...</var></td>
1992 <td>Sets the quality layer PSNR, given in dB. The order is from left to
1993 right in ascending order. The default is a single lossless quality layer.
1994 Same for JPT, JC2, and J2K</td>
1995 </tr>
1996
1997 <tr>
1998 <td>jp2:rate=<var>value</var></td>
Cristybc232422016-11-22 07:46:18 -05001999 <td>Specify the compression factor to use while writing JPEG-2000 files.
2000 The compression factor is the reciprocal of the compression ratio. The
2001 valid range is 0.0 to 1.0, with 1.0 indicating lossless compression. If
2002 defined, this value overrides the -quality setting. A quality setting
2003 of 75 results in a rate value of 0.06641. Same for JPT, JC2, and J2K</td>
Cristy882d9f42015-10-29 16:48:39 -04002004 </tr>
2005
2006 <tr>
2007 <td>jp2:reduce-factor=<var>value</var></td>
2008 <td>Sets the number of highest resolution levels to be discarded.Same for
2009 JPT, JC2, and J2K</td>
2010 </tr>
2011
2012 <tr>
2013 <td>jpeg:block-smoothing=<var>on|off</var></td>
Cristybc232422016-11-22 07:46:18 -05002014 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002015 </tr>
2016
2017 <tr>
2018 <td>jpeg:colors=<var>value</var></td>
2019 <td>Set the desired number of colors and let the JPEG encoder do the
2020 quantizing.</td>
2021 </tr>
2022
2023 <tr>
2024 <td>jpeg:dct-method=<var>value</var></td>
2025 <td>Choose from <code>default</code>, <code>fastest</code>,
2026 <code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>
2027 </tr>
2028
2029 <tr>
2030 <td>jpeg:extent=<var>value</var></td>
2031 <td>Restrict the maximum JPEG file size, for example <code>-define
2032 jpeg:extent=400KB</code>. The JPEG encoder will search for the highest
2033 compression quality level that results in an output file that does not
Cristye93be682015-11-26 09:07:51 -05002034 exceed the value. The <code>-quality</code> option also will be respected
2035 starting with version 6.9.2-5. Between 6.9.1-0 and 6.9.2-4, add -quality
2036 100 in order for the jpeg:extent to work properly. Prior to 6.9.1-0, the
2037 -quality setting was ignored.</td>
Cristy882d9f42015-10-29 16:48:39 -04002038 </tr>
2039
2040 <tr>
2041 <td>jpeg:fancy-upsampling=<var>on|off</var></td>
Cristybc232422016-11-22 07:46:18 -05002042 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002043 </tr>
2044
2045 <tr>
2046 <td>jpeg:optimize-coding=<var>on|off</var></td>
Cristybc232422016-11-22 07:46:18 -05002047 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002048 </tr>
2049
2050 <tr>
2051 <td>jpeg:q-table=<var>table</var></td>
Cristybc232422016-11-22 07:46:18 -05002052 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002053 </tr>
2054
2055 <tr>
2056 <td>jpeg:sampling-factor=<var>sampling-factor-string</var></td>
Cristybc232422016-11-22 07:46:18 -05002057 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002058 </tr>
2059
2060 <tr>
2061 <td>jpeg:size=<var>geometry</var></td>
2062 <td>Set the size hint of a JPEG image, for
2063 example, <code>-define jpeg:size=128x128</code>.
2064 It is most useful for increasing performance and reducing the memory
2065 requirements when reducing the size of a large JPEG image.</td>
2066 </tr>
2067
2068 <tr>
2069 <td>json:features</td>
2070 <td>includes features in verbose information</td>
2071 </tr>
2072
2073 <tr>
2074 <td>json:limit</td>
Cristybc232422016-11-22 07:46:18 -05002075 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002076 </tr>
2077
2078 <tr>
2079 <td>json:locate</td>
Cristybc232422016-11-22 07:46:18 -05002080 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002081 </tr>
2082
2083 <tr>
2084 <td>json:moments</td>
2085 <td>includes image moments in verbose information</td>
2086 </tr>
2087
2088 <tr>
2089 <td>magick:format=<var>value</var></td>
2090 <td>Set the image encoding format use when writing a C-style header.
Cristy579a0cb2016-11-26 12:27:17 -05002091 This is the same as "h:format=format" described above.</td>
Cristy882d9f42015-10-29 16:48:39 -04002092 </tr>
2093
2094 <tr>
2095 <td>mng:need-cacheoff</td>
2096 <td>turn playback caching off for streaming MNG.</td>
2097 </tr>
2098
2099 <tr>
2100 <td>morphology:compose=<var>compose-method</var></td>
Cristy594d2772015-11-15 10:47:42 -05002101 <td>Specifies how to merge results generated by multiple<a
2102 href="command-line-options.html#morphology" >-morphology</a> kernel. The default is none. One
Cristy882d9f42015-10-29 16:48:39 -04002103 typical value is 'lighten' as used, for example, with the sobel edge
2104 kernels. </td>
2105 </tr>
2106
2107 <tr>
2108 <td>morphology:showkernel=<var>1</var></td>
Cristy594d2772015-11-15 10:47:42 -05002109 <td>Outputs (to 'standard error') all the information about a generated <a
2110 href="command-line-options.html#morphology" >-morphology</a> kernel.</td>
Cristy882d9f42015-10-29 16:48:39 -04002111 </tr>
2112
2113 <tr>
2114 <td>pcl:fit-to-page=<var>true</var></td>
Cristy579a0cb2016-11-26 12:27:17 -05002115 </tr>
Cristy882d9f42015-10-29 16:48:39 -04002116
Cristy594d2772015-11-15 10:47:42 -05002117 <tr>
Cristy882d9f42015-10-29 16:48:39 -04002118 <td>pdf:fit-page=<var>geometry</var></td>
2119 <td> geometry specifies the scaling dimensions for resizing when the PDF is
2120 being read. The geometry is either WxH{%} or page size. No offsets are
2121 allowed. (introduced in IM 6.8.8-8)</td>
2122 </tr>
2123
2124 <tr>
2125 <td>pdf:fit-to-page=<var>true</var></td>
Cristybc232422016-11-22 07:46:18 -05002126 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002127 </tr>
2128
2129 <tr>
2130 <td>pdf:use-cropbox=<var>true</var></td>
Cristybc232422016-11-22 07:46:18 -05002131 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002132 </tr>
2133
2134 <tr>
2135 <td>pdf:use-trimbox=<var>true</var></td>
Cristybc232422016-11-22 07:46:18 -05002136 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002137 </tr>
2138
2139 <tr>
Cristyf41bcd12017-03-28 05:59:57 -04002140 <td>pdf:stop-on-error=<var>true</var></td>
2141 <td> </td>
2142 </tr>
2143
2144 <tr>
2145 <td>pdf:pdf:page-direction=<var>right-to-left</var></td>
2146 <td> </td>
2147 </tr>
2148
2149 <tr>
Cristy3b0b58d2016-11-06 07:40:23 -05002150 <td>phash:colorspaces=<var>colorspace,colorspace,...</var></td>
Cristybc232422016-11-22 07:46:18 -05002151 <td>the perceptual hash defaults to the sRGB and HCLp colorspaces. When
2152 using this define, you can specify up to six alternative colorspaces. (as
2153 of IM 7.0.3-8)</td>
2154 </tr>
2155
2156 <tr>
2157 <td>phash:normalize=<var>true</var></td>
2158 <td>normalizes the phash metric by dividing by the number of channels
2159 specified by <code>-define phash:colorspaces</code> when using compare
2160 -metric phash. (as of IM 7.0.3-8)</td>
Cristy3b0b58d2016-11-06 07:40:23 -05002161 </tr>
2162
2163 <tr>
Cristy882d9f42015-10-29 16:48:39 -04002164 <td>png:bit-depth=<var>value</var></td>
Cristybc232422016-11-22 07:46:18 -05002165 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002166 </tr>
Cristy3b0b58d2016-11-06 07:40:23 -05002167
Cristy882d9f42015-10-29 16:48:39 -04002168 <tr>
2169 <td>png:color-type=<var>value</var></td>
2170 <td>desired bit-depth and color-type for PNG output. You can force the PNG
2171 encoder to use a different bit-depth and color-type than it would have
2172 normally selected, but only if this does not cause any loss of image
2173 quality. Any attempt to reduce image quality is treated as an error and no
2174 PNG file is written. E.g., if you have a 1-bit black-and-white image, you
2175 can use these "defines" to cause it to be written as an 8-bit grayscale,
2176 indexed, or even a 64-bit RGBA. But if you have a 16-million color image,
2177 you cannot force it to be written as a grayscale or indexed PNG. If you
2178 wish to do this, you must use the appropriate <a href="command-line-options.html#depth">-depth</a>,
2179 <a href="command-line-options.html#colors">-colors</a>, or <a href="command-line-options.html#type">-type</a> directives to
2180 reduce the image quality prior to using the PNG encoder. Note that in
2181 indexed PNG files, "bit-depth" refers to the number of bits per index,
2182 which can be 1, 2, 4, or 8. In such files, the color samples always have
2183 8-bit depth.</td>
2184 </tr>
2185
2186 <tr>
2187 <td>png:compression-filter=<var>value</var></td>
2188 <td> valid values are 0 through 9. 0-4 are the corresponding PNG filters,
2189 5 means adaptive filtering except for images with a colormap, 6 means
2190 adaptive filtering for all images, 7 means MNG "loco" compression, 8 means
2191 Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no
2192 filtering.</td>
2193 </tr>
2194
2195 <tr>
2196 <td>png:compression-level=<var>value</var></td>
2197 <td> valid values are 0 through 9, with 0 providing the least but fastest
2198 compression and 9 usually providing the best and always the slowest.</td>
2199 </tr>
2200
2201 <tr>
2202 <td>png:compression-strategy=<var>value</var></td>
2203 <td> valid values are 0 through 4, meaning default, filtered, huffman_only,
2204 rle, and fixed ZLIB compression strategy. If you are using an old zlib
2205 that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),
2206 values 3 and 4, respectively, will use the zlib default strategy
2207 instead.</td>
2208 </tr>
2209
2210 <tr>
2211 <td>png:format=<var>value</var></td>
2212 <td> valid values are <var>png8</var>, <var>png24</var>,
2213 <var>png32</var>, <var>png48</var>,
2214 <var>png64</var>, and <var>png00</var>.
2215 This property can be useful for specifying
2216 the specific PNG format to be used, when the usual method of prepending the
2217 format name to the output filename is inconvenient, such as when writing
2218 a PNG-encoded ICO file or when using <a href="mogrify.html">mogrify</a>.
2219 Value = <var>png8</var> reduces the number of colors to 256,
2220 only one of which may be fully transparent, if necessary. The other
2221 values do not force any reduction of quality; it is an error to request
2222 a format that cannot represent the image data without loss (except that
2223 it is allowed to reduce the bit-depth from 16 to 8 for all formats).
2224 Value = <var>png24</var> and <var>png48</var>
2225 allow transparency, only if a single color is fully transparent and that
2226 color does not also appear in an opaque pixel; such transparency is
2227 written in a PNG <code>tRNS</code> chunk.
2228 Value = <var>png00</var> causes the image to inherit its
2229 color-type and bit-depth from the input image, if the input was also
2230 a PNG.</td>
2231 </tr>
2232
2233 <tr>
2234 <td>png:exclude-chunk=<var>value</var></td>
2235
Cristy594d2772015-11-15 10:47:42 -05002236 <tr>
Cristy882d9f42015-10-29 16:48:39 -04002237 <td>png:include-chunk=<var>value</var></td>
2238 <td>ancillary chunks to be excluded from or included in PNG output.
2239
2240 <p>The <var>value</var> can be the name of a PNG chunk-type such
2241 as <var>bKGD</var>, a comma-separated list of chunk-names
2242 (which can include the word <var>date</var>, the word
2243 <var>all</var>, or the word <var>none</var>).
2244 Although PNG chunk-names are case-dependent, you can use all lowercase
2245 names if you prefer.</p>
2246
2247 <p>The "include-chunk" and "exclude-chunk" lists only affect the behavior
2248 of the PNG encoder and have no effect on the PNG decoder.</p>
2249
2250 <p>As a special case, if the <code>sRGB</code> chunk is excluded and
2251 the <code>gAMA</code> chunk is included, the <code>gAMA</code> chunk will
2252 only be written if gamma is not 1/2.2, since most decoders assume
2253 sRGB and gamma=1/2.2 when no colorspace information is included in
2254 the PNG file. Because the list is processed from left to right, you
2255 can achieve this with a single define:</p>
2256
Cristy49380402017-06-29 11:24:55 -04002257<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04002258-define png:include-chunk=none,gAMA
Cristy49380402017-06-29 11:24:55 -04002259</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04002260
2261 <p>As a special case, if the <code>sRGB</code> chunk is not excluded and
2262 the PNG encoder recognizes that the image contains the sRGB ICC profile,
2263 the PNG encoder will write the <code>sRGB</code> chunk instead of the
2264 entire ICC profile. To force the PNG encoder to write the sRGB
2265 profile as an <code>iCCP</code> chunk in the output PNG instead of the
2266 <code>sRGB</code> chunk, exclude the <code>sRGB</code> chunk.</p>
2267
2268 <p>The critical PNG chunks <code>IHDR</code>, <code>PLTE</code>,
2269 <code>IDAT</code>, and <code>IEND</code> cannot be excluded. Any such
2270 entries appearing in the list will be ignored.</p>
2271
2272 <p>If the ancillary PNG <code>tRNS</code> chunk is excluded and the
2273 image has transparency, the PNG colortype is forced to be 4 or 6
2274 (GRAY_ALPHA or RGBA). If the image is not transparent, then the
2275 <code>tRNS</code> chunk isn't written anyhow, and there is no effect
2276 on the PNG colortype of the output image.</p>
2277
2278 <p>The <a href="command-line-options.html#strip">-strip</a> option does the equivalent of the
2279 following for PNG output:</p>
2280
Cristy49380402017-06-29 11:24:55 -04002281<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04002282-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date
Cristy49380402017-06-29 11:24:55 -04002283</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04002284
2285 <p>The default behavior is to include all known PNG ancillary chunks
2286 plus ImageMagick's private <code>vpAg</code> ("virtual page") chunk,
2287 and to exclude all PNG chunks that are unknown to ImageMagick,
2288 regardless of their PNG "copy-safe" status as described in the
2289 PNG specification.</p>
2290
2291 <p>Any chunk names that are not known to ImageMagick are ignored
2292 if they appear in either the "include-chunk" or "exclude-chunk" list.
2293 The ancillary chunks currently known to ImageMagick are
2294 <code>bKGD</code>, <code>cHRM</code>, <code>gAMA</code>, <code>iCCP</code>,
2295 <code>oFFs</code>, <code>pHYs</code>, <code>sRGB</code>, <code>tEXt</code>,
2296 <code>tRNS</code>, <code>vpAg</code>, and <code>zTXt</code>.</p>
2297
2298 <p>You can also put <code>date</code> in the list to include or exclude
2299 the "Date:create" and "Date:modify" text chunks that ImageMagick normally
2300 inserts in the output PNG.</p></td>
2301 </tr>
2302
2303 <tr>
2304 <td>png:preserve-colormap[=<var>true</var>]</td>
Cristy594d2772015-11-15 10:47:42 -05002305 <td>Use the existing image->colormap. Normally the PNG encoder will
Cristy882d9f42015-10-29 16:48:39 -04002306 try to optimize the palette, eliminating unused entries and putting
2307 the transparent colors first. If this flag is set, that behavior
2308 is suppressed.</td>
2309 </tr>
2310
2311 <tr>
2312 <td>png:preserve-iCCP[=<var>true</var>]</td>
2313 <td>By default, the PNG decoder and encoder examine any ICC profile
2314 that is present, either from an <code>iCCP</code> chunk in the PNG
2315 input or supplied via an option, and if the profile is recognized
2316 to be the sRGB profile, converts it to the <code>sRGB</code> chunk.
2317 You can use <code>-define png:preserve-iCCP</code> to prevent
2318 this from happening; in such cases the <code>iCCP</code> chunk
2319 will be read or written and no <code>sRGB</code> chunk will be
2320 written. There are some ICC profiles that claim to be sRGB but
2321 have various errors that cause them to be rejected by libpng16; such
2322 profiles are recognized anyhow and converted to the <code>sRGB</code>
2323 chunk, but are rejected if the <code>-define png:preserve-iCCP</code>
2324 is present. Note that not all "sRGB" ICC profiles are recognized
2325 yet; we will add them to the list as we encounter them.</td>
2326 </tr>
2327
2328 <tr>
2329 <td>png:swap-bytes[=<var>true</var>]</td>
2330 <td>The PNG specification requires that any multi-byte integers be stored in
2331 network byte order (MSB-LSB endian). This option allows you to
2332 fix any invalid PNG files that have 16-bit samples stored incorrectly
2333 in little-endian order (LSB-MSB). The "-define png:swap-bytes" option
2334 must appear before the input filename on the commandline. The swapping
2335 is done during the libpng decoding operation.</td>
2336 </tr>
2337
2338 <tr>
2339 <td>profile:skip=<var>name1,name2,...</var></td>
2340 <td>Skip the named profile[s] when reading the image. Use skip="*" to
2341 skip all named profiles in the image. Many named profiles exist,
2342 including ICC, EXIF, APP1, IPTC, XMP, and others.</td>
2343 </tr>
2344
2345 <tr>
2346 <td>ps:imagemask</td>
2347 <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will
2348 create Postscript files that render bilevel images with the Postscript
2349 imagemask operator instead of the image operator.</td>
2350 </tr>
2351
2352 <tr>
Cristy3b0b58d2016-11-06 07:40:23 -05002353 <td>psd:additional-info=all|selective</td>
Cristybc232422016-11-22 07:46:18 -05002354 <td>This option should only be used when converting from a PSD file to
2355 another PSD file. This should be placed after the image is read. The two
2356 options are 'all' and 'selective'. The 'selective' option will preserve
2357 all additional information that is not related to the geometry of the
2358 image. The 'all' option should only be used when the geometry of the
2359 image has not been changed. This option is helpful when transferring
2360 non-simple layers, such as adjustment layers from the input PSD file to
2361 the output PSD file. If this option is not used, the additional
2362 information will not be preserved. This define is available as of
2363 Imagemagick version 6.9.5-8.
Cristy3b0b58d2016-11-06 07:40:23 -05002364</td>
2365 </tr>
2366
2367 <tr>
Cristy882d9f42015-10-29 16:48:39 -04002368 <td>psd:alpha-unblend=off</td>
2369 <td>Disables new automatic un-blending of transparency with the base image
2370 for the flattened layer 0 before adding the alpha channel to the output
2371 image. This define must be placed before the input psd image. (Available
2372 as of IM 6.9.2.5). The automatic un-blending is new to IM 6.9.2.5 and
2373 prevents the transparency from being applied twice in the output
Cristy3b0b58d2016-11-06 07:40:23 -05002374 image. This option should be set before reading the image.</td>
2375 </tr>
2376
2377 <tr>
2378 <td>psd:preserve-opacity-mask=true</td>
Cristybc232422016-11-22 07:46:18 -05002379 <td>This option should only be used when converting from a PSD file to
2380 another PSD file. It will preserve the opacity mask of a layer and add it
2381 back to the layer when the image is saved. Setting this to 'true' will
2382 enable this feature. This define is available as of Imagemagick version
2383 6.9.5-10.
Cristy3b0b58d2016-11-06 07:40:23 -05002384</td>
Cristy882d9f42015-10-29 16:48:39 -04002385 </tr>
2386
2387 <tr>
Cristy1f1f3a02016-06-01 07:25:42 -04002388 <td>preserve-timestamp=<var>{True, False}</var></td>
2389 <td>Preserve file timestamp (<code>mogrify</code> only).</td>
2390 </tr>
2391
2392 <tr>
Cristy882d9f42015-10-29 16:48:39 -04002393 <td>quantum:format=<var>type</var></td>
2394 <td>Set the type to <code>floating-point</code> to specify a floating-point
2395 format for raw files (e.g. GRAY:) or for MIFF and TIFF images in HDRI mode
2396 to preserve negative values. If <a href="command-line-options.html#depth">-depth</a> 16 is
2397 included, the result is a single precision floating point format.
2398 If <a href="command-line-options.html#depth">-depth</a> 32 is included, the result is
2399 double precision floating point format.</td>
2400 </tr>
2401
2402 <tr>
2403 <td>quantum:polarity=<var>photometric-interpretation</var></td>
Cristybc232422016-11-22 07:46:18 -05002404 <td>Set the photometric-interpretation of an image (typically for TIFF
2405 image file format) to either <code>min-is-black</code> (default) or
Cristy882d9f42015-10-29 16:48:39 -04002406 <code>min-is-white</code>.</td>
2407 </tr>
2408
2409 <tr>
2410 <td>sample:offset=<var>geometry</var></td>
2411 <td>Location of the sampling point within the sub-region being sampled,
Cristy594d2772015-11-15 10:47:42 -05002412 expressed as percentages (see <a href="command-line-options.html#sample" >-sample</a>).</td>
Cristy882d9f42015-10-29 16:48:39 -04002413 </tr>
2414
2415 <tr>
2416 <td>showkernel=<var>1</var></td>
Cristy594d2772015-11-15 10:47:42 -05002417 <td>Outputs (to 'standard error') all the information about a generated <a
2418 href="command-line-options.html#morphology" >-morphology</a> kernel.</td>
Cristy882d9f42015-10-29 16:48:39 -04002419 </tr>
2420
2421 <tr>
2422 <td>stream:buffer-size=<var>value</var></td>
2423 <td>Set the stream buffer size. Select 0 for unbuffered I/O.</td>
2424 </tr>
2425
2426 <tr>
2427 <td>tiff:alpha=<var>associated|unassociated|unspecified</var></td>
Cristybc232422016-11-22 07:46:18 -05002428 <td>Specify the alpha extra samples as associated, unassociated or
2429 unspecified </td>
Cristy882d9f42015-10-29 16:48:39 -04002430 </tr>
2431
2432 <tr>
2433 <td>tiff:endian=<var>msb|lsb</var></td>
Cristybc232422016-11-22 07:46:18 -05002434 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002435 </tr>
2436
2437 <tr>
Cristyf41bcd12017-03-28 05:59:57 -04002438 <td>tiff:exif-properties=<var>true</var></td>
2439 <td>Enables reading the EXIF properties.</td>
Cristy882d9f42015-10-29 16:48:39 -04002440 </tr>
2441
2442 <tr>
2443 <td>tiff:fill-order=<var>msb|lsb</var></td>
Cristybc232422016-11-22 07:46:18 -05002444 <td> </td>
Cristy882d9f42015-10-29 16:48:39 -04002445 </tr>
2446
2447 <tr>
2448 <td>tiff:ignore-layers=<var>true</var></td>
2449 <td>Ignores the photoshop layers.</td>
2450 </tr>
2451
2452 <tr>
2453 <td>tiff:ignore-tags=<var>comma-separate-list-of-tag-IDs</var></td>
2454 <td>Allows one or more tag ID values to be ignored.</td>
2455 </tr>
2456
2457 <tr>
2458 <td>tiff:rows-per-strip=<var>value</var></td>
2459 <td>Sets the number of rows per strip</td>
2460 </tr>
2461
2462 <tr>
2463 <td>tiff:tile-geometry=<var>WxH</var></td>
2464 <td>Sets the tile size for pyramid tiffs. Requires the suffix
2465 PTIF: before the outputname</td>
2466 </tr>
Cristye09ed312016-03-06 08:07:39 -05002467
2468 <tr>
2469 <td>type:features=<var>string</var></td>
Cristybc232422016-11-22 07:46:18 -05002470 <td> </td>
Cristye09ed312016-03-06 08:07:39 -05002471 </tr>
2472
2473 <tr>
2474 <td>type:hinting=<var>off</var></td>
Cristybc232422016-11-22 07:46:18 -05002475 <td> </td>
Cristye09ed312016-03-06 08:07:39 -05002476 </tr>
Cristyf41bcd12017-03-28 05:59:57 -04002477
2478 <tr>
2479 <td>txt:compliance=<var>css</var></td>
2480 <td> </td>
2481 </tr>
2482
2483 <tr>
2484 <td>x:screen=<var>true</var></td>
2485 <td>Obtains the image from the root window </td>
2486 </tr>
2487
2488 <tr>
2489 <td>x:silent=<var>true</var></td>
2490 <td>Turns off the beep when importing an image </td>
2491 </tr>
Cristy882d9f42015-10-29 16:48:39 -04002492</table>
2493
2494<p>For example, to create a postscript file that will render only the black
2495pixels of a bilevel image, use:</p>
2496
Cristy49380402017-06-29 11:24:55 -04002497<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04002498convert bilevel.tif -define ps:imagemask eps3:stencil.ps
Cristy49380402017-06-29 11:24:55 -04002499</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04002500
2501<p>Set attributes of the image registry by prefixing the value with
2502<code>registry:</code>. For example, to set a temporary path to put work files,
2503use:</p>
2504
Cristy49380402017-06-29 11:24:55 -04002505<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04002506-define registry:temporary-path=/data/tmp
Cristy49380402017-06-29 11:24:55 -04002507</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04002508
2509<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002510 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04002511</div>
2512
2513<p class="magick-description">display the next image after pausing.</p>
2514
2515<p>This option is useful for regulating the animation of image sequences
2516<var>ticks/ticks-per-second</var> seconds must expire before the display of the
2517next image. The default is no delay between each showing of the image
2518sequence. The default ticks-per-second is 100.</p>
2519
2520<p>Use <code>&gt;</code> to change the image delay <var>only</var> if its current
2521value exceeds the given delay. <code>&lt;</code> changes the image delay
2522<var>only</var> if current value is less than the given delay. For example, if
2523you specify <code>30&gt;</code> and the image delay is 20, the image delay does
2524not change. However, if the image delay is 40 or 50, the delay it is changed
2525to 30. Enclose the given delay in quotation marks to prevent the
2526<code>&lt;</code> or <code>&gt;</code> from being interpreted by your shell as
2527a file redirection.</p>
2528
2529
2530<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002531 <h3><a id="delete"></a>-delete <var>indexes</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002532</div>
2533
2534<p class="magick-description">delete the images specified by index, from the image sequence.</p>
2535
2536<p>Specify the image by its index in the sequence. The first image is index
25370. Negative indexes are relative to the end of the sequence, for example, -1
2538represents the last image of the sequence. Specify a range of images with
2539a dash (e.g. 0-4). Separate indexes with a comma (e.g. 0,2). Use
Cristy912a9222016-06-17 15:37:28 -04002540<code>+delete</code> to delete the last image in the current image sequence. Use <code>-delete 0--1</code> to delete the entire image sequence.</p>
Cristy882d9f42015-10-29 16:48:39 -04002541
2542
2543<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002544 <h3><a id="density"></a>-density <var>width</var><br />-density <var>width</var>x<var>height</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002545</div>
2546
2547<p class="magick-description">Set the horizontal and vertical resolution of an image for rendering to devices.</p>
2548
2549<p>This option specifies the image resolution to store while encoding a raster
2550image or the canvas resolution while rendering (reading) vector formats such
2551as Postscript, PDF, WMF, and SVG into a raster image. Image resolution
2552provides the unit of measure to apply when rendering to an output device or
Cristy594d2772015-11-15 10:47:42 -05002553raster image. The default unit of measure is in dots per inch (DPI). The <a
2554href="command-line-options.html#units">-units</a> option may be used to select dots per centimeter
Cristy882d9f42015-10-29 16:48:39 -04002555instead.</p>
2556
2557<p>The default resolution is 72 dots per inch, which is equivalent to one
2558point per pixel (Macintosh and Postscript standard). Computer screens are
2559normally 72 or 96 dots per inch, while printers typically support 150, 300,
2560600, or 1200 dots per inch. To determine the resolution of your display, use
2561a ruler to measure the width of your screen in inches, and divide by the
2562number of horizontal pixels (1024 on a 1024x768 display).</p>
2563
2564<p>If the file format supports it, this option may be used to update the
2565stored image resolution. Note that Photoshop stores and obtains image
2566resolution from a proprietary embedded profile. If this profile is not
2567stripped from the image, then Photoshop will continue to treat the image using
2568its former resolution, ignoring the image resolution specified in the standard
2569file header.</p>
2570
2571<p>The <a href="command-line-options.html#density">-density</a> option sets an <var>attribute</var> and
2572does not alter the underlying raster image. It may be used to adjust the
2573rendered size for desktop publishing purposes by adjusting the scale applied
2574to the pixels. To resize the image so that it is the same size at a different
2575resolution, use the <a href="command-line-options.html#resample">-resample</a> option.</p>
2576
2577<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002578 <h3><a id="depth"></a>-depth <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002579</div>
2580
2581<p class="magick-description">depth of the image.</p>
2582
2583<p>This the number of bits in a color sample within a pixel. Use this option
2584to specify the depth of raw images whose depth is unknown such as GRAY, RGB,
2585or CMYK, or to change the depth of any image after it has been read.</p>
2586
2587<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002588 <h3><a id="descend"></a>-descend</h3>
Cristy882d9f42015-10-29 16:48:39 -04002589</div>
2590
2591<p class="magick-description">obtain image by descending window hierarchy.</p>
2592
2593<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002594 <h3><a id="deskew"></a>-deskew <var>threshold{%}</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002595</div>
2596
2597<p class="magick-description">straighten an image. A threshold of 40% works for most images.</p>
2598
2599<p>Use <a href="command-line-options.html#set">-set</a> <code>option:deskew:auto-crop
Cristy3b0b58d2016-11-06 07:40:23 -05002600<var>true | false</var></code> to auto crop the image.</p>
Cristy882d9f42015-10-29 16:48:39 -04002601
2602<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002603 <h3><a id="despeckle"></a>-despeckle</h3>
Cristy882d9f42015-10-29 16:48:39 -04002604</div>
2605
2606<p class="magick-description">reduce the speckles within an image.</p>
2607
2608<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002609 <h3><a id="direction"></a>-direction <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002610</div>
2611
2612<p class="magick-description">render text right-to-left or left-to-right.</p>
2613
2614<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002615 <h3><a id="displace"></a>-displace <var>horizontal-scale</var>{%}{!}<br />-displace <var>horizontal-scale</var>x<var>vertical-scale</var>{%}{!}</h3>
Cristy882d9f42015-10-29 16:48:39 -04002616</div>
2617
2618<p class="magick-description">shift image pixels as defined by a displacement map.</p>
2619
2620<p>With this option, the 'overlay' image, and optionally the 'mask' image,
2621is used as a displacement map, which is used to displace the lookup of
2622what part of the 'background' image is seen at each point of the overlaid
2623area. Much like the displacement map is a 'lens' that redirects light shining
2624through it so as to present a distorted view the original 'background' image
2625behind it. </p>
2626
2627<p>Any perfect grey areas of the displacement map produce a zero
2628displacement of the image. Black areas produce the given maximum negative
2629displacement of the lookup point, while white produce a maximum positive
2630displacement of the lookup. </p>
2631
2632<p>Note that it is the lookup of the 'background' that is displaced, not a
2633displacement of the image itself. As such an area of the displacement map
2634containing 'white' will have the lookup point 'shifted' by a positive amount,
2635and thus generating a copy of the destination image to the right/downward from
2636the correct position. That is the image will look like it may have been
2637'shifted' in a negative left/upward direction. Understanding this is a very
2638important in understanding how displacement maps work. </p>
2639
2640<p>The given arguments define the maximum amount of displacement in pixels
2641that a particular map can produce. If the displacement scale is large enough
2642it is also possible to lookup parts of the 'background' image that lie well
2643outside the bounds of the displacement map itself. That is you could very
2644easily copy a section of the original image from outside the overlay area
2645into the overlay area. </p>
2646
2647<p>The '%' flag makes the displacement scale relative to the size of the
2648overlay image (100% = half width/height of image). Using '!' switches
2649percentage arguments to refer to the destination image size instead.
2650these flags were added as of IM v6.5.3-5.</p>
2651
2652<p>Normally a single grayscale displacement map is provided, which with the
2653given scaling values will determine a single direction (vector) in which
2654displacements can occur (positively or negatively). However, if you also
2655specify a third image which is normally used as a <var>mask</var>,
2656the <var>composite image</var> is used for horizontal X
2657displacement, while the <var>mask image</var> is used for vertical Y
2658displacement. This allows you to define completely different displacement
2659values for the X and Y directions, and allowing you to lookup any point within
2660the <var>scale</var> bounds. In other words each pixel can lookup
2661any other nearby pixel, producing complex 2 dimensional displacements, rather
2662than a simple 1 dimensional vector displacements. </p>
2663
2664<p>Alternatively rather than supplying two separate images, as of IM v6.4.4-0,
2665you can use the 'red' channel of the overlay image to specify the horizontal
2666or X displacement, and the 'green' channel for the vertical or Y displacement.
2667</p>
2668
2669<p>As of IM v6.5.3-5 any alpha channel in the overlay image is used as a
2670mask the transparency of the destination image. However areas outside the
2671overlaid areas will not be effected. </p>
2672
2673
2674<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002675 <h3><a id="display"></a>-display <var>host:display[.screen]</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002676</div>
2677
2678<p class="magick-description">Specifies the X server to contact.</p>
2679
2680<p>This option is used with convert for obtaining image or font from this
2681X server. See <var>X(1)</var>.</p>
2682
2683<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002684 <h3><a id="dispose"></a>-dispose <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002685</div>
2686
2687<p class="magick-description">define the GIF disposal image setting for images that are being created or read in. </p>
2688
2689<p>The layer disposal method defines the way each the displayed image is to be
2690modified after the current 'frame' of an animation has finished being
2691displayed (after its 'delay' period), but before the next frame on an
2692animation is to be overlaid onto the display. </p>
2693
2694<p>Here are the valid methods:</p>
2695
Cristy49380402017-06-29 11:24:55 -04002696<dl class="row">
2697<dt class="col-md-4">Undefined</dt><dd class="col-md-8">0: No disposal specified (equivalent to '<code>none</code>').</dd>
2698<dt class="col-md-4">None</dt><dd class="col-md-8">1: Do not dispose, just overlay next frame image.</dd>
2699<dt class="col-md-4">Background</dt><dd class="col-md-8">2: Clear the frame area with the background color.</dd>
2700<dt class="col-md-4">Previous</dt><dd class="col-md-8">3: Clear to the image prior to this frames overlay.</dd>
Cristy882d9f42015-10-29 16:48:39 -04002701</dl>
2702
2703<p>You can also use the numbers given above, which is what the GIF format
2704uses internally to represent the above settings. </p>
2705
2706<p>To print a complete list of dispose methods, use <a href="command-line-options.html#list">-list dispose</a>.</p>
2707
Cristy594d2772015-11-15 10:47:42 -05002708<p>Use <a href="command-line-options.html#dispose" >+dispose</a>, turn off the setting and prevent
Cristy882d9f42015-10-29 16:48:39 -04002709resetting the layer disposal methods of images being read in. </p>
2710
2711<p>Use <a href="command-line-options.html#set">-set</a> '<code>dispose</code>' method to set the image
2712disposal method for images already in memory.</p>
2713
2714<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002715 <h3><a id="dissimilarity-threshold"></a>-dissimilarity-threshold <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002716</div>
2717
2718<p class="magick-description">maximum RMSE for subimage match (default 0.2).</p>
2719
2720
2721<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002722 <h3><a id="dissolve"></a>-dissolve <var>src_percent</var>[x<var>dst_percent</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -04002723</div>
2724
2725<p class="magick-description">dissolve an image into another by the given percent.</p>
2726
2727<p>The opacity of the composite image is multiplied by the given percent, then
2728it is composited 'over' the main image. If <var>src_percent</var>
2729is greater than 100, start dissolving the main image so it becomes
2730transparent at a value of '<code>200</code>'. If both percentages
2731are given, each image are dissolved to the percentages given. </p>
2732
2733<p>Note that dissolve percentages do not add, two opaque images dissolved
2734'50,50', produce a 75% transparency. For a 50% + 50% blending of the two
2735images, you would need to use dissolve values of '50,100'. </p>
2736
2737<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04002738 <h3><a id="distort"></a>-distort <var>method arguments</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04002739</div>
2740
2741<p class="magick-description">distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
2742
2743<p>The <var>arguments</var> is a single string containing a list
2744of floating point numbers separated by commas or spaces. The number of
2745and meaning of the floating point values depends on the distortion <var>method</var> being used. </p>
2746
2747<p>Choose from these distortion types:</p>
2748
Cristy49380402017-06-29 11:24:55 -04002749<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04002750 <tr>
2751 <th style="width: 8%">Method</th>
2752 <th>Description</th>
2753 </tr>
2754
2755 <tr>
Cristy594d2772015-11-15 10:47:42 -05002756 <td>ScaleRotateTranslate <br/> SRT</td>
Cristy882d9f42015-10-29 16:48:39 -04002757 <td>
2758 Distort image by first scaling and rotating about a given 'center',
2759 before translating that 'center' to the new location, in that order. It
2760 is an alternative method of specifying a 'Affine' type of
2761 distortion, but without shearing effects. It also provides a good way
2762 of rotating and displacing a smaller image for tiling onto a larger
Cristy594d2772015-11-15 10:47:42 -05002763 background (IE 2-dimensional animations). <br/>
Cristy882d9f42015-10-29 16:48:39 -04002764
2765 The number of arguments determine the specific meaning of each
Cristy594d2772015-11-15 10:47:42 -05002766 argument for the scales, rotation, and translation operations. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002767
Cristy49380402017-06-29 11:24:55 -04002768 <dl class="row">
2769 <dt class="col-md-4">2:</dt><dd class="col-md-8"><var>Scale Angle</var></dd>
2770 <dt class="col-md-4">3:</dt><dd class="col-md-8"><var>X,Y Angle</var></dd>
2771 <dt class="col-md-4">4:</dt><dd class="col-md-8"><var>X,Y Scale Angle</var></dd>
2772 <dt class="col-md-4">5:</dt> <dd class="col-md-8"><var>X,Y ScaleX,ScaleY Angle</var></dd>
2773 <dt class="col-md-4">6:</dt> <dd class="col-md-8"><var>X,Y Scale Angle NewX,NewY</var></dd>
2774 <dt class="col-md-4">7:</dt> <dd class="col-md-8"><var>X,Y ScaleX,ScaleY Angle NewX,NewY</var></dd>
Cristy882d9f42015-10-29 16:48:39 -04002775 </dl>
2776
2777 This is actually an alternative way of specifying a 2 dimensional linear
2778 'Affine' or 'AffineProjection' distortion. </td> </tr>
2779
2780 <tr>
2781 <td>Affine</td>
2782 <td>
2783 Distort the image linearly by moving a list of at least 3 or more sets
2784 of control points (as defined below). Ideally 3 sets or 12 floating
2785 point values are given allowing the image to be linearly scaled,
2786 rotated, sheared, and translated, according to those three points. See
2787 also the related 'AffineProjection' and 'SRT'
Cristy594d2772015-11-15 10:47:42 -05002788 distortions. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002789
2790 More than 3 sets given control point pairs (12 numbers) is least
2791 squares fitted to best match a linear affine distortion. If only 2
2792 control point pairs (8 numbers) are given a two point image translation
2793 rotation and scaling is performed, without any possible shearing,
2794 flipping or changes in aspect ratio to the resulting image. If only one
2795 control point pair is provides the image is only translated, (which may
Cristy594d2772015-11-15 10:47:42 -05002796 be a floating point non-integer translation). <br/>
Cristy882d9f42015-10-29 16:48:39 -04002797
2798 This distortion does not include any form of perspective distortion.
2799 </td>
2800
2801 </tr>
2802
2803 <tr>
2804 <td>AffineProjection</td>
2805 <td>
2806 Linearly distort an image using the given Affine Matrix of 6
2807 pre-calculated coefficients forming a set of Affine Equations to map
2808 the source image to the destination image.
2809
2810 <p class="text-center"><var>
2811 s<sub>x</sub>, r<sub>x</sub>,
2812 r<sub>y</sub>, s<sub>y</sub>,
2813 t<sub>x</sub>, t<sub>y</sub>
2814 </var></p>
2815
Cristy594d2772015-11-15 10:47:42 -05002816 See <a href="command-line-options.html#affine" >-affine</a> setting for more detail, and
2817 meanings of these coefficients. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002818
2819 The distortions 'Affine' and 'SRT' provide
2820 alternative methods of defining this distortion, with ImageMagick doing
2821 the calculations needed to generate the required coefficients. You can
Cristy594d2772015-11-15 10:47:42 -05002822 see the internally generated coefficients, by using a <a
2823 href="command-line-options.html#verbose" >-verbose</a> setting with those other variants. </td>
Cristy882d9f42015-10-29 16:48:39 -04002824
2825 </tr>
2826
2827 <tr>
Cristy594d2772015-11-15 10:47:42 -05002828 <td>BilinearForward<br/>
Cristy882d9f42015-10-29 16:48:39 -04002829 BilinearReverse</td>
2830 <td>
2831 Bilinear Distortion, given a minimum of 4 sets of coordinate pairs, or
2832 16 values (see below). Not that lines may not appear straight after
2833 distortion, though the distance between coordinates will remain
Cristy594d2772015-11-15 10:47:42 -05002834 consistent. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002835
2836 The 'BilinearForward' is used to map rectangles to any
2837 quadrilateral, while the 'BilinearReverse' form maps any
2838 quadrilateral to a rectangle, while preserving the straight line edges
Cristy594d2772015-11-15 10:47:42 -05002839 in each case. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002840
2841 Note that 'BilinearForward' can generate invalid pixels
Cristyb7f455a2017-03-03 19:30:34 -05002842 which will be colored using the <a href="command-line-options.html#mattecolor" >-mattecolor</a>
Cristy882d9f42015-10-29 16:48:39 -04002843 color setting. Also if the quadrilateral becomes 'flipped' the image
Cristy594d2772015-11-15 10:47:42 -05002844 may disappear. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002845
2846 There are future plans to produce a true Bilinear distortion that will
2847 attempt to map any quadrilateral to any other quadrilateral, while
2848 preserving edges (and edge distance ratios).
2849
2850 </td>
2851 </tr>
2852
2853 <tr>
2854 <td>Perspective</td>
2855 <td>
2856 Perspective distort the images, using a list of 4 or more sets of
2857 control points (as defined below). More that 4 sets (16 numbers) of
2858 control points provide least squares fitting for more accurate
2859 distortions (for the purposes of image registration and panorama
2860 effects). Less than 4 sets will fall back to a 'Affine'
Cristy594d2772015-11-15 10:47:42 -05002861 linear distortion. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002862
2863 Perspective Distorted images ensures that straight lines remain
2864 straight, but the scale of the distorted image will vary. The horizon
2865 is anti-aliased, and the 'sky' color may be set using the
Cristyb7f455a2017-03-03 19:30:34 -05002866 <a href="command-line-options.html#mattecolor" >-mattecolor</a> setting. </td>
Cristy882d9f42015-10-29 16:48:39 -04002867 </tr>
2868
2869 <tr>
2870 <td>PerspectiveProjection </td>
2871 <td>
2872 Do a 'Perspective' distortion biased on a set of 8
2873 pre-calculated coefficients. You can get these coefficients by looking
Cristy594d2772015-11-15 10:47:42 -05002874 at the <a href="command-line-options.html#verbose" >-verbose</a> output of a
Cristy882d9f42015-10-29 16:48:39 -04002875 'Perspective' distortion, or by calculating them yourself.
2876 If the last two perspective scaling coefficients are zero, the
2877 remaining 6 represents a transposed 'Affine Matrix'. </td>
2878
2879 </tr>
2880
2881 <tr>
2882 <td>Arc</td>
2883 <td>
2884 Arc the image (variation of polar mapping) over the angle given around
2885 a circle.
2886
Cristy49380402017-06-29 11:24:55 -04002887 <dl class="row">
2888 <dt class="col-md-4">arc_angle</dt>
2889 <dd class="col-md-8">The angle over which to arc the image side-to-side</dd>
2890 <dt class="col-md-4">rotate_angle</dt>
2891 <dd class="col-md-8">Angle to rotate resulting image from vertical center</dd>
2892 <dt class="col-md-4">top_radius</dt>
2893 <dd class="col-md-8">Set top edge of source image at this radius</dd>
2894 <dt class="col-md-4">bottom_radius </dt>
2895 <dd class="col-md-8">Set bottom edge to this radius (radial scaling)</dd>
Cristy579a0cb2016-11-26 12:27:17 -05002896 </dl>
Cristy882d9f42015-10-29 16:48:39 -04002897
2898 The resulting image is always resized to best fit the resulting image,
Cristy594d2772015-11-15 10:47:42 -05002899 (as if using <a href="command-line-options.html#distort" >+distort</a>) while attempting to
Cristy882d9f42015-10-29 16:48:39 -04002900 preserve scale and aspect ratio of the original image as much as
2901 possible with the arguments given by the user. All four arguments will
Cristy594d2772015-11-15 10:47:42 -05002902 be needed to change the overall aspect ratio of an 'Arc'ed image. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002903
2904 This a variation of a polar distortion designed to try to preserve the
2905 aspect ratio of the image rather than direct Cartesian to Polar
2906 conversion. </td>
2907 </tr>
2908
2909 <tr>
2910 <td>Polar</td>
2911 <td>
2912 Like 'Arc' but do a complete Cartesian to Polar mapping of
2913 the image. that is the height of the input image is mapped to the
2914 radius limits, while the width is wrapped around between the
Cristy594d2772015-11-15 10:47:42 -05002915 angle limits. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002916
Cristy594d2772015-11-15 10:47:42 -05002917 Arguments: <var>Rmax,Rmin CenterX,CenterY, start,end_angle</var> <br/>
Cristy882d9f42015-10-29 16:48:39 -04002918
2919 All arguments are optional. With <var>Rmin</var> defaulting to zero, the
2920 center to the center of the image, and the angles going from -180 (top)
2921 to +180 (top). If <var>Rmax</var> is given the special value of
2922 '0', the the distance from the center to the nearest edge
2923 is used for the radius of the output image, which will ensure the whole
2924 image is visible (though scaled smaller). However a special value of
2925 '-1' will use the distance from the center to the furthest
2926 corner, This may 'clip' the corners from the input rectangular image,
2927 but will generate the exact reverse of a 'DePolar' with
Cristy594d2772015-11-15 10:47:42 -05002928 the same arguments. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002929
Cristy594d2772015-11-15 10:47:42 -05002930 If the plus form of distort (<a href="command-line-options.html#distort" >+distort</a>) is used
Cristy882d9f42015-10-29 16:48:39 -04002931 output image center will default to 0,0 of the virtual
2932 canvas, and the image size adjusted to ensure the whole input image is
2933 made visible in the output image on the virtual canvas. </td>
2934
2935 </tr>
2936
2937 <tr>
2938 <td>DePolar</td>
2939 <td>
2940 Uses the same arguments and meanings as a 'Polar' distortion
Cristy594d2772015-11-15 10:47:42 -05002941 but generates the reverse Polar to Cartesian distortion. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002942
2943 The special <var>Rmax</var> setting of '0' may however clip
2944 the corners of the input image. However using the special
2945 <var>Rmax</var> setting of '-1' (maximum center to corner
2946 distance) will ensure the whole distorted image is preserved in the
2947 generated result, so that the same argument to 'Polar' will
2948 reverse the distortion re-producing the original.
2949
2950 Note that as this distortion requires the area resampling of a circular
2951 arc, which can not be handled by the builtin EWA resampling function.
2952 As such the normal EWA filters are turned off. It is recommended some
2953 form of 'super-sampling' image processing technique be used to produce
2954 a high quality result. </td>
2955
2956 </tr>
2957
2958 <tr>
2959 <td>Barrel</td>
2960 <td>
Cristy594d2772015-11-15 10:47:42 -05002961 Given the four coefficients (A,B,C,D) as defined by <a
2962 href="http://wiki.panotools.org/Lens_correction_model" >Helmut
Cristy882d9f42015-10-29 16:48:39 -04002963 Dersch</a>, perform a barrel or pin-cushion distortion appropriate to
2964 correct radial lens distortions. That is in photographs, make straight
Cristy594d2772015-11-15 10:47:42 -05002965 lines straight again. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002966
2967 <p class="text-center">Arguments: <var>A B C</var> [ <var>D</var> [
Cristy594d2772015-11-15 10:47:42 -05002968 <var>X</var> , <var>Y</var> ] ] <br/>
Cristy882d9f42015-10-29 16:48:39 -04002969 or <var>A<sub>x</sub> B<sub>x</sub> C<sub>x</sub> D<sub>x</sub>
2970 A<sub>y</sub> B<sub>y</sub> C<sub>y</sub> D<sub>y</sub></var>
2971 [ <var>X</var> , <var>Y</var> ] </p>
2972 So that it forms the function
2973 <p class="text-center">Rsrc = r * ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +
2974 <var>C</var>*r + <var>D</var> )</p>
2975
2976 Where <var>X</var>,<var>Y</var> is the optional center of the distortion
Cristy594d2772015-11-15 10:47:42 -05002977 (defaulting to the center of the image). <br/>
Cristy882d9f42015-10-29 16:48:39 -04002978 The second form is typically used to distort images, rather than
Cristy594d2772015-11-15 10:47:42 -05002979 correct lens distortions. <br/>
Cristy882d9f42015-10-29 16:48:39 -04002980 </td>
2981
2982 </tr>
2983
2984 <tr>
2985 <td>BarrelInverse</td>
2986 <td>
2987 This is very similar to 'Barrel' with the same set of
2988 arguments, and argument handling. However it uses the inverse
2989 of the radial polynomial,
2990 so that it forms the function
2991 <p class="text-center">Rsrc = r / ( <var>A</var>*r<sup>3</sup> + <var>B</var>*r<sup>2</sup> +
2992 <var>C</var>*r + <var>D</var> )</p>
2993 Note that this is not the reverse of the 'Barrel'
2994 distortion, just a different barrel-like radial distortion method.
2995
2996 </td>
2997 </tr>
2998
2999 <tr>
3000 <td>Shepards</td>
3001 <td>
3002 Distort the given list control points (any number) using an Inverse
Cristy594d2772015-11-15 10:47:42 -05003003 Squared Distance Interpolation Method (<a
3004 href="http://en.wikipedia.org/wiki/Shepard%27s_method" >Shepards
Cristy882d9f42015-10-29 16:48:39 -04003005 Method</a>). The control points in effect do 'localized' displacement
3006 of the image around the given control point (preserving the look and
3007 the rotation of the area near the control points. For best results
3008 extra control points should be added to 'lock' the positions of the
3009 corners, edges and other unchanging parts of the image, to prevent
Cristy594d2772015-11-15 10:47:42 -05003010 their movement. <br/>
Cristy882d9f42015-10-29 16:48:39 -04003011
3012 The distortion has been likened to 'taffy pulling' using nails, or
3013 pins' stuck in a block of 'jelly' which is then moved to the new
Cristy594d2772015-11-15 10:47:42 -05003014 position, distorting the surface of the jelly. <br/>
Cristy882d9f42015-10-29 16:48:39 -04003015
Cristy594d2772015-11-15 10:47:42 -05003016 Internally it is equivalent to generating a displacement map (see <a
3017 href="command-line-options.html#displace" >-displace</a>) for source image color look-up using
3018 the <a href="command-line-options.html#sparse-color" >-sparse-color</a> method of the same name.
Cristy882d9f42015-10-29 16:48:39 -04003019
3020 </td>
3021 </tr>
3022
3023</table>
3024
3025<p>To print a complete list of distortion methods, use <a href="command-line-options.html#list">-list
3026distort</a>.</p>
3027
3028<p>Many of the above distortion methods such as '<code>Affine</code>',
3029'<code>Perspective</code>', and '<code>Shepards</code>' use a list control points
3030defining how these points in the given image should be distorted in the
3031destination image. Each set of four floating point values represent a source
3032image coordinate, followed immediately by the destination image coordinate.
3033This produces a list of values such as...</p>
3034<p class="text-center"><var>
3035 U<sub>1</sub>,V<sub>1</sub> X<sub>1</sub>,Y<sub>1</sub>
3036 U<sub>2</sub>,V<sub>2</sub> X<sub>2</sub>,Y<sub>2</sub>
3037 U<sub>3</sub>,V<sub>3</sub> X<sub>3</sub>,Y<sub>3</sub>
3038 ...
3039 U<sub>n</sub>,V<sub>n</sub> X<sub>n</sub>,Y<sub>n</sub>
3040</var></p>
3041<p>where <var>U,V</var> on the source image is mapped to <var>X,Y</var> on the
3042destination image. </p>
3043
3044<p>For example, to warp an image using '<code>perspective</code>' distortion,
3045needs a list of at least 4 sets of coordinates, or 16 numbers. Here is the
3046perspective distortion of the built-in "rose:" image. Note how spaces were
3047used to group the 4 sets of coordinate pairs, to make it easier to read and
3048understand.</p>
3049
Cristy49380402017-06-29 11:24:55 -04003050<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003051convert rose: -virtual-pixel black \
3052 -distort Perspective '0,0,0,0 0,45,0,45 69,0,60,10 69,45,60,35' \
3053 rose_3d_rotated.gif"
Cristy49380402017-06-29 11:24:55 -04003054</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003055
3056<p>If more that the required number of coordinate pairs are given for
3057a distortion, the distortion method is 'least squares' fitted to produce the
3058best result for all the coordinate pairs given. If less than the ideal number
3059of points are given, the distort will generally fall back to a simpler form of
3060distortion that can handles the smaller number of coordinates (usually a linear
3061'<code>Affine</code>' distortion). </p>
3062
3063<p>By using more coordinates you can make use of image registration tool to
3064find matching coordinate pairs in overlapping images, so as to improve the
3065'fit' of the distortion. Of course a bad coordinate pair can also make the
3066'fit' worse. Caution is always advised. </p>
3067
3068<p>Colors are acquired from the source image according to a cylindrical
Cristy594d2772015-11-15 10:47:42 -05003069resampling <a href="command-line-options.html#filter" >-filter</a>, using a special technique known as
Cristy882d9f42015-10-29 16:48:39 -04003070EWA resampling. This produces very high quality results, especially when
3071images become smaller (minified) in the output, which is very common when
3072using '<code>perspective</code>' distortion. For example here we view
3073a infinitely tiled 'plane' all the way to the horizon. </p>
3074
Cristy49380402017-06-29 11:24:55 -04003075<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003076convert -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \
3077 -distort perspective '0,0,5,45 89,0,45,46 0,89,0,89 89,89,89,89' \
3078 checks_tiled.jpg
Cristy49380402017-06-29 11:24:55 -04003079</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003080
3081<p>Note that a infinitely tiled perspective images involving the horizon can
3082be very slow, because of the number of pixels that are compressed to generate
3083each individual pixel close to the 'horizon'. You can turn off EWA
Cristy594d2772015-11-15 10:47:42 -05003084resampling, by specifying the special <a href="command-line-options.html#filter" >-filter</a> setting of
Cristy882d9f42015-10-29 16:48:39 -04003085'<code>point</code>' (recommended if you plan to use super-sampling instead).
3086</p>
3087
3088<p>If an image generates <i>invalid pixels</i>, such as the 'sky' in the last
Cristy594d2772015-11-15 10:47:42 -05003089example, <a href="command-line-options.html#distort" >-distort</a> will use the current <a
Cristyb7f455a2017-03-03 19:30:34 -05003090href="command-line-options.html#mattecolor" >-mattecolor</a> setting for these pixels. If you do not
Cristy882d9f42015-10-29 16:48:39 -04003091what these pixels to be visible, set the color to match the rest of the
3092ground. </p>
3093
3094<p>The output image size will by default be the same as the input image. This
3095means that if the part of the distorted image falls outside the viewed area of
3096the 'distorted space', those parts is clipped and lost. However if you use
Cristy594d2772015-11-15 10:47:42 -05003097the plus form of the operator (<a href="command-line-options.html#distort" >+distort</a>) the operator
Cristy882d9f42015-10-29 16:48:39 -04003098will attempt (if possible) to show the whole of the distorted image, while
3099retaining a correct 'virtual canvas' offset, for image layering. This offset
Cristy594d2772015-11-15 10:47:42 -05003100may need to be removed using <a href="command-line-options.html#repage" >+repage</a>, to remove if it
Cristy882d9f42015-10-29 16:48:39 -04003101is unwanted. </p>
3102
Cristy594d2772015-11-15 10:47:42 -05003103<p>Setting <a href="command-line-options.html#verbose" >-verbose</a> setting, will cause <a
3104href="command-line-options.html#distort" >-distort</a> to attempt to output the internal coefficients,
3105and the <a href="command-line-options.html#fx" >-fx</a> equivalent to the distortion, for expert study,
Cristy882d9f42015-10-29 16:48:39 -04003106and debugging purposes. This many not be available for all distorts. </p>
3107
Cristy594d2772015-11-15 10:47:42 -05003108<p>You can alternatively specify a special "<code><a href="command-line-options.html#define"
3109>-define</a> distort:viewport={geometry_string}</code>" setting which will
Cristy882d9f42015-10-29 16:48:39 -04003110specify the size and the offset of the generated 'viewport' image of the
3111distorted image space.</p>
3112
Cristy594d2772015-11-15 10:47:42 -05003113<p>Setting a "<code><a href="command-line-options.html#define" >-define</a>
Cristy769d8892016-01-19 18:11:14 -05003114distort:scale=<var>scale_factor</var></code>" will scale the output image (viewport or
Cristy882d9f42015-10-29 16:48:39 -04003115otherwise) by that factor without changing the viewed contents of the
3116distorted image. This can be used either for 'super-sampling' the image for
3117a higher quality result, or for panning and zooming around the image (with
3118appropriate viewport changes, or post-distort cropping and resizing). </p>
3119
Cristy594d2772015-11-15 10:47:42 -05003120<p>Setting "<code><a href="command-line-options.html#define" >-define</a> resample:verbose=1</code>"
Cristy882d9f42015-10-29 16:48:39 -04003121will output the cylindrical filter lookup table created by the EWA (Elliptical
3122Weighted Average) resampling algorithm. Note this table uses a squared radius
3123lookup value. This is typically only used for debugging EWA resampling. </p>
3124
3125
3126<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003127 <h3><a id="distribute-cache"></a>-distribute-cache <var>port</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003128</div>
3129
3130<p class="magick-description">launch a distributed pixel cache server. </p>
3131
3132<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003133 <h3><a id="dither"></a>-dither <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003134</div>
3135
3136<p class="magick-description">Apply a Riemersma or Floyd-Steinberg error diffusion dither to
3137images when general color reduction is applied via an option, or automagically
3138when saving to specific formats. This enabled by default.</p>
3139
3140<p>Dithering places two or more colors in neighboring pixels so that to the
3141eye a closer approximation of the images original color is reproduced. This
3142reduces the number of colors needed to reproduce the image but at the cost of
3143a lower level pattern of colors. Error diffusion dithers can use any set of
3144colors (generated or user defined) to an image. </p>
3145
3146<p>Dithering is turned on by default, to turn it off use the plus form of the
3147setting, <a href="command-line-options.html#dither">+dither</a>. This will also also render PostScript
3148without text or graphic aliasing. Disabling dithering often (but not always)
3149leads to faster process, a smaller number of colors, but more cartoon like
3150image coloring. Generally resulting in 'color banding' effects in areas with
3151color gradients. </p>
3152
Cristy594d2772015-11-15 10:47:42 -05003153<p>The color reduction operators <a href="command-line-options.html#colors">-colors</a>, <a
3154href="command-line-options.html#monochrome">-monochrome</a>, <a href="command-line-options.html#remap ">-remap</a>, and <a
3155href="command-line-options.html#posterize">-posterize</a>, apply dithering to images using the reduced
Cristy882d9f42015-10-29 16:48:39 -04003156color set they created. These operators are also used as part of automatic
3157color reduction when saving images to formats with limited color support, such
3158as <code>GIF:</code>, <code>XBM:</code>, and others, so dithering may also be used
3159in these cases. </p>
3160
3161<p>Alternatively you can use <a href="command-line-options.html#random-threshold">-random-threshold</a>
Cristy594d2772015-11-15 10:47:42 -05003162to generate purely random dither. Or use <a
3163href="command-line-options.html#ordered-dither">-ordered-dither</a> to apply threshold mapped dither
Cristy882d9f42015-10-29 16:48:39 -04003164patterns, using uniform color maps, rather than specific color maps. </p>
3165
3166
3167<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003168 <h3><a id="draw"></a>-draw <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003169</div>
3170
3171<p class="magick-description">Annotate an image with one or more graphic primitives.</p>
3172
3173<p>Use this option to annotate or decorate an image with one or more graphic
3174primitives. The primitives include shapes, text, transformations, and pixel
3175operations.</p>
3176
3177<p>The shape primitives:</p>
3178
Cristy49380402017-06-29 11:24:55 -04003179<dl class="row">
3180<dt class="col-md-4">point</dt><dd class="col-md-8"> x,y</dd>
3181<dt class="col-md-4">line</dt><dd class="col-md-8"> x0,y0 x1,y1</dd>
3182<dt class="col-md-4">rectangle</dt><dd class="col-md-8"> x0,y0 x1,y1</dd>
3183<dt class="col-md-4">roundRectangle</dt><dd class="col-md-8"> x0,y0 x1,y1 wc,hc</dd>
3184<dt class="col-md-4">arc</dt><dd class="col-md-8"> x0,y0 x1,y1 a0,a1</dd>
3185<dt class="col-md-4">ellipse</dt><dd class="col-md-8"> x0,y0 rx,ry a0,a1</dd>
3186<dt class="col-md-4">circle</dt><dd class="col-md-8"> x0,y0 x1,y1</dd>
3187<dt class="col-md-4">polyline</dt><dd class="col-md-8"> x0,y0 ... xn,yn</dd>
3188<dt class="col-md-4">polygon</dt><dd class="col-md-8"> x0,y0 ... xn,yn</dd>
3189<dt class="col-md-4">bezier</dt><dd class="col-md-8"> x0,y0 ... xn,yn</dd>
3190<dt class="col-md-4">path</dt><dd class="col-md-8">specification </dd>
3191<dt class="col-md-4">image</dt><dd class="col-md-8"> operator x0,y0 w,h filename</dd>
Cristy882d9f42015-10-29 16:48:39 -04003192</dl>
3193
3194<p>The text primitive:</p>
3195
Cristy49380402017-06-29 11:24:55 -04003196<dl class="row">
3197<dt class="col-md-4">text</dt><dd class="col-md-8">x0,y0 string</dd>
Cristy882d9f42015-10-29 16:48:39 -04003198</dl>
3199<p>The text gravity primitive:</p>
3200
Cristy49380402017-06-29 11:24:55 -04003201<dl class="row">
3202<dt class="col-md-4">gravity</dt><dd class="col-md-8">NorthWest, North, NorthEast, West, Center, East, SouthWest, South, or SouthEast</dd>
Cristy882d9f42015-10-29 16:48:39 -04003203</dl>
3204
3205<p>The text gravity primitive only affects the placement of text and does not
Cristy594d2772015-11-15 10:47:42 -05003206interact with the other primitives. It is equivalent to using the <a
3207href="command-line-options.html#gravity">-gravity</a> command-line option, except that it is limited in
Cristy882d9f42015-10-29 16:48:39 -04003208scope to the <a href="command-line-options.html#draw">-draw</a> option in which it appears.</p>
3209
3210<p>The transformation primitives:</p>
3211
Cristy49380402017-06-29 11:24:55 -04003212<dl class="row">
3213<dt class="col-md-4">rotate</dt><dd class="col-md-8">degrees</dd>
3214<dt class="col-md-4">translate</dt><dd class="col-md-8">dx,dy</dd>
3215<dt class="col-md-4">scale</dt><dd class="col-md-8">sx,sy</dd>
3216<dt class="col-md-4">skewX</dt><dd class="col-md-8">degrees</dd>
3217<dt class="col-md-4">skewY</dt><dd class="col-md-8">degrees</dd>
Cristy882d9f42015-10-29 16:48:39 -04003218</dl>
3219
3220<p>The pixel operation primitives:</p>
3221
Cristy49380402017-06-29 11:24:55 -04003222<dl class="row">
3223<dt class="col-md-4">color</dt><dd class="col-md-8">x0,y0 method</dd>
3224<dt class="col-md-4">matte</dt><dd class="col-md-8">x0,y0 method</dd>
Cristy882d9f42015-10-29 16:48:39 -04003225</dl>
3226
Cristy594d2772015-11-15 10:47:42 -05003227<p>The shape primitives are drawn in the color specified by the preceding <a
3228href="command-line-options.html#fill">-fill</a> setting. For unfilled shapes, use <a
3229href="command-line-options.html#fill">-fill none</a>. You can optionally control the stroke (the
3230"outline" of a shape) with the <a href="command-line-options.html#stroke">-stroke</a> and <a
3231href="command-line-options.html#strokewidth">-strokewidth</a> settings.</p>
Cristy882d9f42015-10-29 16:48:39 -04003232
3233<p>A <code>point</code> primitive is specified by a single <var>point</var> in the
3234pixel plane, that is, by an ordered pair of integer coordinates,
3235<var>x</var>,<var>y</var>. (As it involves only a single pixel, a <code>point</code>
Cristy594d2772015-11-15 10:47:42 -05003236primitive is not affected by <a href="command-line-options.html#stroke">-stroke</a> or <a
3237href="command-line-options.html#strokewidth">-strokewidth</a>.)</p>
Cristy882d9f42015-10-29 16:48:39 -04003238
3239<p>A <code>line</code> primitive requires a start point and end point.</p>
3240
3241<p>A <code>rectangle</code> primitive is specified by the pair of points at the
3242upper left and lower right corners.</p>
3243
3244<p>A <code>roundRectangle</code> primitive takes the same corner points as
3245a <code>rectangle</code> followed by the width and height of the rounded corners
3246to be removed.</p>
3247
3248<p>The <code>circle</code> primitive makes a disk (filled) or circle (unfilled).
3249Give the center and any point on the perimeter (boundary).</p>
3250
3251<p>The <code>arc</code> primitive is used to inscribe an elliptical segment in
3252to a given rectangle. An <code>arc</code> requires the two corners used for
3253<code>rectangle</code> (see above) followed by the start and end angles of the
3254arc of the segment segment (e.g. 130,30 200,100 45,90). The start and end
3255points produced are then joined with a line segment and the resulting segment
3256of an ellipse is filled.</p>
3257
3258<p>Use <code>ellipse</code> to draw a partial (or whole) ellipse. Give the
3259center point, the horizontal and vertical "radii" (the <var>semi-axes</var> of
3260the ellipse) and start and end angles in degrees (e.g. 100,100 100,150
32610,360).</p>
3262
3263<p>The <code>polyline</code> and <code>polygon</code> primitives require three or
3264more points to define their perimeters. A <code>polyline</code> is simply
3265a <code>polygon</code> in which the final point is not stroked to the start
Cristy594d2772015-11-15 10:47:42 -05003266point. When unfilled, this is a <var>polygonal line</var>. If the <a
3267href="command-line-options.html#stroke">-stroke</a> setting is <code>none</code> (the default), then
Cristy882d9f42015-10-29 16:48:39 -04003268a <code>polyline</code> is identical to a <code>polygon</code>. </p>
3269
3270<p>A <var>coordinate</var> is a pair of integers separated by a space or
3271optional comma. </p>
3272
3273<p>As an example, to define a circle centered at 100,100 that extends to
3274150,150 use:</p>
3275
Cristy49380402017-06-29 11:24:55 -04003276<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003277-draw 'circle 100,100 150,150'
Cristy49380402017-06-29 11:24:55 -04003278</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003279
3280<p>The <code>Bezier</code> primitive creates a spline curve and requires three
3281or points to define its shape. The first and last points are the
3282<var>knots</var> and these points are attained by the curve, while any
3283intermediate coordinates are <var>control points</var>. If two control points
3284are specified, the line between each end knot and its sequentially respective
3285control point determines the tangent direction of the curve at that end. If
3286one control point is specified, the lines from the end knots to the one
3287control point determines the tangent directions of the curve at each end. If
3288more than two control points are specified, then the additional control points
3289act in combination to determine the intermediate shape of the curve. In order
3290to draw complex curves, it is highly recommended either to use the
3291<code>path</code> primitive or to draw multiple four-point bezier segments with
3292the start and end knots of each successive segment repeated. For example:</p>
3293
Cristy49380402017-06-29 11:24:55 -04003294<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003295-draw 'bezier 20,50 45,100 45,0 70,50'
3296-draw 'bezier 70,50 95,100 95,0 120,50'
Cristy49380402017-06-29 11:24:55 -04003297</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003298
3299<p>A <code>path</code> represents an outline of an object, defined in terms of
3300moveto (set a new current point), lineto (draw a straight line), curveto (draw
3301a Bezier curve), arc (elliptical or circular arc) and closepath (close the
3302current shape by drawing a line to the last moveto) elements. Compound paths
3303(i.e., a path with subpaths, each consisting of a single moveto followed by
3304one or more line or curve operations) are possible to allow effects such as
Cristy594d2772015-11-15 10:47:42 -05003305<var>donut holes</var> in objects. (See <a
3306href="http://www.w3.org/TR/SVG/paths.html">Paths</a>.)</p>
Cristy882d9f42015-10-29 16:48:39 -04003307
3308<p>Use <code>image</code> to composite an image with another image. Follow the
3309image keyword with the composite operator, image location, image size, and
3310filename:</p>
3311
Cristy49380402017-06-29 11:24:55 -04003312<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003313-draw 'image SrcOver 100,100 225,225 image.jpg'
Cristy49380402017-06-29 11:24:55 -04003314</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003315
3316<p>You can use 0,0 for the image size, which means to use the actual
3317dimensions found in the image header. Otherwise, it is scaled to the given
Cristy6549abb2016-11-10 08:25:55 -05003318dimensions. See <a href="http://www.imagemagick.org/www/compose.html">Alpha Compositing</a> for
Cristy882d9f42015-10-29 16:48:39 -04003319a detailed discussion of alpha composition methods that are available. </p>
3320
3321<p>The "special augmented compose operators" such as "dissolve" that require
3322arguments cannot be used at present with the <code>-draw image</code> option.
3323 </p>
3324
3325<p>Use <code>text</code> to annotate an image with text. Follow the text
3326coordinates with a string. If the string has embedded spaces, enclose it in
3327single or double quotes.</p>
3328
3329<p>For example, the following annotates the image with <code>Works like
3330magick!</code> for an image titled <code>bird.miff</code>. </p>
3331
Cristy49380402017-06-29 11:24:55 -04003332<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003333-draw "text 100,100 'Works like magick!' "
Cristy49380402017-06-29 11:24:55 -04003334</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003335
3336<p>See the <a href="command-line-options.html#annotate">-annotate</a> option for another convenient way
3337to annotate an image with text.</p>
3338
3339<p>The <code>rotate</code> primitive rotates subsequent shape primitives and
Cristy594d2772015-11-15 10:47:42 -05003340text primitives about the origin of the main image. If the <a
3341href="command-line-options.html#region">-region</a> option precedes the <a href="command-line-options.html#draw">-draw</a>
Cristy882d9f42015-10-29 16:48:39 -04003342option, the origin for transformations is the upper left corner of the
3343region.</p>
3344
3345<p>The <code>translate</code> primitive translates subsequent shape and text
3346primitives.</p>
3347
3348<p>The <code>scale</code> primitive scales them.</p>
3349
3350<p>The <code>skewX</code> and <code>skewY</code> primitives skew them with respect
3351to the origin of the main image or the region.</p>
3352
3353<p>The transformations modify the current affine matrix, which is initialized
3354from the initial affine matrix defined by the <a href="command-line-options.html#affine">-affine</a>
3355option. Transformations are cumulative within the <a href="command-line-options.html#draw">-draw</a>
3356option. The initial affine matrix is not affected; that matrix is only changed
3357by the appearance of another <a href="command-line-options.html#affine">-affine</a> option. If another
3358<a href="command-line-options.html#draw">-draw</a> option appears, the current affine matrix is
3359reinitialized from the initial affine matrix.</p>
3360
3361<p>Use the <code>color</code> primitive to change the color of a pixel to the
3362fill color (see <a href="command-line-options.html#fill">-fill</a>). Follow the pixel coordinate with
3363a method:</p>
3364
Cristy49380402017-06-29 11:24:55 -04003365<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003366point
3367replace
3368floodfill
3369filltoborder
3370reset
Cristy49380402017-06-29 11:24:55 -04003371</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003372
3373<p>Consider the target pixel as that specified by your coordinate. The
3374<code>point</code> method recolors the target pixel. The <code>replace</code>
3375method recolors any pixel that matches the color of the target pixel.
3376<code>Floodfill</code> recolors any pixel that matches the color of the target
3377pixel and is a neighbor, whereas <code>filltoborder</code> recolors any neighbor
3378pixel that is not the border color. Finally, <code>reset</code> recolors all
3379pixels.</p>
3380
3381<p>Use <code>matte</code> to the change the pixel matte value to transparent.
3382Follow the pixel coordinate with a method (see the <code>color</code> primitive
3383for a description of methods). The <code>point</code> method changes the matte
3384value of the target pixel. The <code>replace</code> method changes the matte
3385value of any pixel that matches the color of the target pixel.
3386<code>Floodfill</code> changes the matte value of any pixel that matches the
3387color of the target pixel and is a neighbor, whereas <code>filltoborder</code>
Cristy594d2772015-11-15 10:47:42 -05003388changes the matte value of any neighbor pixel that is not the border color (<a
3389href="command-line-options.html#bordercolor">-bordercolor</a>). Finally <code>reset</code> changes the
Cristy882d9f42015-10-29 16:48:39 -04003390matte value of all pixels.</p>
3391
Cristy594d2772015-11-15 10:47:42 -05003392<p>You can set the primitive color, font, and font bounding box color with <a
3393href="command-line-options.html#fill">-fill</a>, <a href="command-line-options.html#font">-font</a>, and <a href="command-line-options.html#box">-box</a>
Cristy882d9f42015-10-29 16:48:39 -04003394respectively. Options are processed in command line order so be sure to use
3395these options <var>before</var> the <a href="command-line-options.html#draw">-draw</a> option.</p>
3396
3397<p>Strings that begin with a number must be quoted (e.g. use '1.png' rather
3398than 1.png).</p>
3399
Cristy594d2772015-11-15 10:47:42 -05003400<p>Drawing primitives conform to the <a href="magick-vector-graphics.html" >Magick
Cristy882d9f42015-10-29 16:48:39 -04003401Vector Graphics</a> format.</p>
3402
3403
3404<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003405 <h3><a id="duplicate"></a>-duplicate <var>count,indexes</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003406</div>
3407
3408<p class="magick-description">duplicate an image one or more times.</p>
3409
3410<p>Specify the count and the image to duplicate by its index in the sequence.
3411The first image is index 0. Negative indexes are relative to the end of the
3412sequence, for example, -1 represents the last image of the sequence. Specify
3413a range of images with a dash (e.g. 0-4). Separate indexes with a comma (e.g.
34140,2). Use <code>+duplicate</code> to duplicate the last image in the current
3415image sequence.</p>
3416
3417<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003418 <h3><a id="edge"></a>-edge <var>radius</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003419</div>
3420
3421<p class="magick-description">detect edges within an image.</p>
3422
3423<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003424 <h3><a id="emboss"></a>-emboss <var>radius</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003425</div>
3426
3427<p class="magick-description">emboss an image.</p>
3428
3429<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003430 <h3><a id="encipher"></a>-encipher <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003431</div>
3432
3433<p class="magick-description">Encipher pixels for later deciphering by <a href="command-line-options.html#decipher">-decipher</a>.</p>
3434
3435<p>Get the passphrase from the file specified by <var>filename</var>.</p>
3436
Cristy594d2772015-11-15 10:47:42 -05003437<p>For more information, see the webpage, <a
Cristy6549abb2016-11-10 08:25:55 -05003438href="https://www.imagemagick.org/script/cipher.html">ImageMagick: Encipher or
Cristy882d9f42015-10-29 16:48:39 -04003439Decipher an Image</a>.</p>
3440
3441
3442
3443<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003444 <h3><a id="encoding"></a>-encoding <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003445</div>
3446
3447<p class="magick-description">specify the text encoding.</p>
3448
3449<p>Choose from</p>
3450
Cristy49380402017-06-29 11:24:55 -04003451<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003452AdobeCustom AdobeExpert
3453AdobeStandard AppleRoman
3454BIG5 GB2312
3455Latin 2 None
3456SJIScode Symbol
3457Unicode Wansung
Cristy49380402017-06-29 11:24:55 -04003458</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003459
3460<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003461 <h3><a id="endian"></a>-endian <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003462</div>
3463
3464<p class="magick-description">Specify endianness (<code>MSB</code> or <code>LSB</code>) of the image.</p>
3465
3466<p>To print a complete list of endian types, use the <a href="command-line-options.html#list">-list endian</a> option.</p>
3467
3468<p>Use <a href="command-line-options.html#endian">+endian</a> to revert to unspecified endianness.</p>
3469
3470
3471<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003472 <h3><a id="enhance"></a>-enhance</h3>
Cristy882d9f42015-10-29 16:48:39 -04003473</div>
3474
3475<p class="magick-description">Apply a digital filter to enhance a noisy image.</p>
3476
3477
3478<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003479 <h3><a id="equalize"></a>-equalize</h3>
Cristy882d9f42015-10-29 16:48:39 -04003480</div>
3481
3482<p class="magick-description">perform histogram equalization on the image channel-by-channel.</p>
3483
3484<p>To perform histogram equalization on all channels in concert, transform the
3485image into some other color space, such as HSL, OHTA, YIQ or YUV, then
3486equalize the appropriate intensity-like channel, then convert back to RGB.</p>
3487
3488<p>For example using HSL, we have: ... <code>-colorspace HSL -channel lightness
3489-equalize -colorspace RGB</code> ...</p>
3490
3491<p>For YIQ, YUV and OHTA use the red channel. For example, OHTA is a principal
3492components transformation that puts most of the information in the first
3493channel. Here we have ... <code>-colorspace OHTA -channel red -equalize
3494-colorspace RGB</code> ...</p>
3495
3496<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003497 <h3><a id="evaluate"></a>-evaluate <var>operator value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003498</div>
3499
3500<p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, or logical expression.</p>
3501
Cristy594d2772015-11-15 10:47:42 -05003502<p>(See the <a href="command-line-options.html#function" >-function</a> operator for some
3503multi-parameter functions. See the <a href="command-line-options.html#fx" >-fx</a> operator if more
Cristy882d9f42015-10-29 16:48:39 -04003504elaborate calculations are needed.)</p>
3505
3506<p>The behaviors of each <var>operator</var> are summarized in the
3507following list. For brevity, the numerical value of a "pixel" referred to
3508below is the value of the corresponding channel of that pixel, while
3509a "normalized pixel" is that number divided by the maximum
3510(installation-dependent) value <var>QuantumRange</var>. (If
3511normalized pixels are used, they are restored, following the other
3512calculations, to the full range by multiplying by <var>QuantumRange</var>.)</p>
3513
Cristy49380402017-06-29 11:24:55 -04003514<table class="table table-sm table-striped">
Cristy594d2772015-11-15 10:47:42 -05003515 <col width="25%" />
3516 <col width="75%" />
Cristy882d9f42015-10-29 16:48:39 -04003517 <thead>
3518 <tr>
3519 <th><var>operator</var></th>
3520 <th>Summary (see further below for details)</th>
3521 </tr>
3522 </thead>
3523 <tbody>
3524
3525 <tr><td>Abs </td> <td>Add <var>value</var> to pixels and return absolute value. </td></tr>
3526 <tr><td>Add </td> <td>Add <var>value</var> to pixels. </td></tr>
3527 <tr><td>AddModulus </td> <td>Add <var>value</var> to pixels modulo <var>QuantumRange</var>.</td></tr>
3528 <tr><td>And </td> <td>Binary AND of pixels with <var>value</var>.</td></tr>
3529 <tr><td>Cos, Cosine </td> <td>Apply cosine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>
3530 <tr><td>Divide </td> <td>Divide pixels by <var>value</var>.</td></tr>
3531 <tr><td>Exp </td> <td>base-e exponential function</td></tr>
3532 <tr><td>Exponential </td> <td>base-e exponential function</td></tr>
3533 <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>
3534 <tr><td>Log </td> <td>Apply scaled logarithm to normalized pixels.</td></tr>
3535 <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>
3536 <tr><td>Mean </td> <td>Add the <var>value</var> and divide by 2.</td></tr>
3537 <tr><td>Median </td> <td>Choose the median value from an image sequence.</td></tr>
3538 <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>
3539 <tr><td>Multiply </td> <td>Multiply pixels by <var>value</var>.</td></tr>
3540 <tr><td>Or </td> <td>Binary OR of pixels with <var>value</var>.</td></tr>
3541 <tr><td>Pow </td> <td>Raise normalized pixels to the power <var>value</var>.</td></tr>
3542 <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>
3543 <tr><td>RMS</td> <td>Square the pixel and add the <var>value</var>.</td></tr>
3544 <tr><td>RootMeanSquare</td> <td>Square the pixel and add the <var>value</var>.</td></tr>
3545 <tr><td>Set </td> <td>Set pixel equal to <var>value</var>.</td></tr>
3546 <tr><td>Sin, Sine </td> <td>Apply sine to pixels with frequency <var>value</var> with 50% bias added.</td></tr>
3547 <tr><td>Subtract </td> <td>Subtract <var>value</var> from pixels.</td></tr>
3548 <tr><td>Xor </td> <td>Binary XOR of pixels with <var>value.</var></td></tr>
3549
3550 <tr><td> </td><td> </td></tr>
3551
3552 <tr><td>Gaussian-noise</td><td> </td></tr>
3553 <tr><td>Impulse-noise</td><td> </td></tr>
3554 <tr><td>Laplacian-noise</td><td> </td></tr>
Cristy594d2772015-11-15 10:47:42 -05003555 <tr><td>Multiplicative-noise</td> <td>(These are equivalent to the corresponding <a href="command-line-options.html#noise" >-noise</a> operators.)</td></tr>
Cristy882d9f42015-10-29 16:48:39 -04003556 <tr><td>PoissonNoise</td><td> </td></tr>
3557 <tr><td>Uniform-noise</td><td> </td></tr>
3558
3559 <tr><td> </td><td> </td></tr>
3560
3561 <tr><td>Threshold </td> <td>Threshold pixels larger than <var>value</var>.</td></tr>
3562 <tr><td>ThresholdBlack </td> <td>Threshold pixels to zero values equal to or below <var>value</var>.</td></tr>
3563 <tr><td>ThresholdWhite </td> <td>Threshold pixels to maximum values above <var>value</var>. </td></tr>
3564 </tbody>
3565 </table>
3566
Cristy594d2772015-11-15 10:47:42 -05003567<p>The specified functions are applied only to each previously set <a
3568href="command-line-options.html#channel" >-channel</a> in the image. If necessary, the results of the
Cristy882d9f42015-10-29 16:48:39 -04003569calculations are truncated (clipped) to fit in the interval [0, <var>QuantumRange</var>]. The transparency channel of the image is
3570represented as a 'alpha' values (0 = fully transparent), so, for example, a
3571<code>Divide</code> by 2 of the alpha channel will make the image
3572semi-transparent. Append the percent symbol '<code>%</code>' to specify a value
3573as a percentage of the <var>QuantumRange</var>.</p>
3574
3575<p>To print a complete list of <a href="command-line-options.html#evaluate">-evaluate</a> operators, use
3576<a href="command-line-options.html#list">-list evaluate</a>.</p>
3577
3578<p>The results of the <code>Add</code>, <code>Subtract</code> and
Cristy594d2772015-11-15 10:47:42 -05003579<code>Multiply</code> methods can also be achieved using either the <a
3580href="command-line-options.html#level" >-level</a> or the <a href="command-line-options.html#level" >+level</a> operator, with
Cristy882d9f42015-10-29 16:48:39 -04003581appropriate argument, to linearly modify the overall range of color values.
Cristy594d2772015-11-15 10:47:42 -05003582Please note, however, that <a href="command-line-options.html#level" >-level</a> treats transparency as
3583'matte' values (0 = opaque), while <a href="command-line-options.html#level" >-evaluate</a> works with
Cristy882d9f42015-10-29 16:48:39 -04003584'alpha' values.</p>
3585
3586<p><code>AddModulus</code> has been added as of ImageMagick 6.4.8-4 and provides
3587addition modulo the <var>QuantumRange</var>. It is therefore
3588equivalent to <code>Add</code> unless the resulting pixel value is outside the
3589interval [0, <var>QuantumRange</var>]. </p>
3590
3591<p><code>Exp or Exponential</code> has been added as of ImageMagick 6.6.5-1 and
3592works on normalized pixel values. The <var>value</var> used with
3593<code>Exp</code> should be negative so as to produce a decaying exponential
3594function. Non-negative values will always produce results larger unity and
3595thus outside the interval [0, <var>QuantumRange</var>]. The
3596formula is expressed below. </p>
3597
3598<p class="text-center">
3599exp(<var>value</var> × <b><var>u</var></b>)
3600</p>
3601
Cristy594d2772015-11-15 10:47:42 -05003602<p> If the input image is squared, for example, using <a href="command-line-options.html#-function"
3603>-function polynomial "2 0 0"</a>, then a decaying Gaussian function will be
Cristy882d9f42015-10-29 16:48:39 -04003604the result.</p>
3605
3606<p><code>Log</code> has been added as of ImageMagick 6.4.2-1 and works on
3607normalized pixel values. This a <var>scaled</var> log function. The <var>value</var> used with <code>Log</code> provides a <var>scaling
3608factor</var> that adjusts the curvature in the graph of the log function. The
3609formula applied to a normalized value <b><var>u</var></b> is below. </p>
3610
3611<p class="text-center">
3612log(<var>value</var> × <b><var>u</var></b> + 1) / log(<var>value</var> + 1)
3613</p>
3614
3615<p><code>Pow</code> has been added as of ImageMagick 6.4.1-9, and works on
Cristy594d2772015-11-15 10:47:42 -05003616normalized pixel values. Note that <code>Pow</code> is related to the <a
3617href="command-line-options.html#gamma" >-gamma</a> operator. For example, <b>-gamma 2</b> is equivalent
Cristy882d9f42015-10-29 16:48:39 -04003618to <b>-evaluate pow 0.5</b>, i.e., a 'square root' function. The value used
Cristy594d2772015-11-15 10:47:42 -05003619with <a href="command-line-options.html#gamma" >-gamma</a> is simply the reciprocal of the value used
Cristy882d9f42015-10-29 16:48:39 -04003620with <code>Pow</code>.</p>
3621
3622<p><code>Cosine</code> and <code>Sine</code> was added as of IM v6.4.8-8 and
3623converts the image values into a value according to a (co)sine wave function.
3624The synonyms <code>Cos</code> and <code>Sin</code> may also be used. The output
3625is biased 50% and normalized by 50% so as to fit in the respective color value
3626range. The <var>value</var> scaling of the <var>period</var> of the
3627function (its frequency), and thus determines the number of 'waves' that will
3628be 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,
3629then the effective period is the <var>half</var> the <var>QuantumRange</var>.</p>
3630
3631<p class="text-center">
36320.5 + 0.5 × cos(2 π <b><var>u</var></b> × <var>value</var>).
3633</p>
3634
Cristy594d2772015-11-15 10:47:42 -05003635<p>See also the <a href="command-line-options.html#function" >-function</a> operator, which is a
Cristy882d9f42015-10-29 16:48:39 -04003636multi-value version of evaluate. </p>
3637
3638<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003639 <h3><a id="evaluate-sequence"></a>-evaluate-sequence <var>operator</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003640</div>
3641
3642<p class="magick-description">Alter channel pixels by evaluating an arithmetic, relational, or
3643logical expression over a sequence of images.</p>
3644
Cristy594d2772015-11-15 10:47:42 -05003645<p>To print a complete list of <a
3646href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a> operators, use <a
3647href="command-line-options.html#list">-list evaluate</a>.</p>
Cristy882d9f42015-10-29 16:48:39 -04003648
3649<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003650 <h3><a id="extent"></a>-extent <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003651</div>
3652
3653<p class="magick-description">Set the image size and offset.</p>
3654
3655<p>If the image is enlarged, unfilled areas are set to the background color.
3656To position the image, use offsets in the <var>geometry</var>
3657specification or precede with a <a href="command-line-options.html#gravity">-gravity</a> setting. To
Cristy594d2772015-11-15 10:47:42 -05003658specify how to compose the image with the background, use <a href="command-line-options.html#compose"
3659>-compose</a>.</p>
Cristy882d9f42015-10-29 16:48:39 -04003660
3661<p>This command reduces or expands a JPEG image to fit on an 800x600
3662display. If the aspect ratio of the input image isn't exactly 4:3, then the
3663image is centered on an 800x600 black canvas: </p>
3664
Cristy49380402017-06-29 11:24:55 -04003665<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003666convert input.jpg -resize 800x600 -background black -compose Copy \
3667 -gravity center -extent 800x600 -quality 92 output.jpg
Cristy49380402017-06-29 11:24:55 -04003668</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003669
3670<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
3671
3672<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003673 <h3><a id="extract"></a>-extract <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003674</div>
3675
3676<p class="magick-description">Extract the specified area from image.</p>
3677
3678<p>This option is most useful for extracting a subregion of a very large raw
3679image. Note that these two commands are equivalent:</p>
3680
Cristy49380402017-06-29 11:24:55 -04003681<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003682convert -size 16000x16000 -depth 8 -extract 640x480+1280+960 \
3683 image.rgb image.png",
3684convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \
3685 image.rgb image.png"
Cristy49380402017-06-29 11:24:55 -04003686</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003687
3688<p>If you omit the offsets, as in</p>
3689
Cristy49380402017-06-29 11:24:55 -04003690<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003691convert -size 16000x16000 -depth 8 -extract 640x480 \
3692 image.rgb image.png
Cristy49380402017-06-29 11:24:55 -04003693</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003694
3695<p>the image is <var>resized</var> to the specified dimensions instead,
3696equivalent to:</p>
3697
Cristy49380402017-06-29 11:24:55 -04003698<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003699convert -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png
Cristy49380402017-06-29 11:24:55 -04003700</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003701
3702<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
3703
3704<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003705 <h3><a id="family"></a>-family <var>fontFamily</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003706</div>
3707
3708<p class="magick-description">Set a font family for text.</p>
3709
3710<p>This setting suggests a font family that ImageMagick should try to use for
3711rendering text. If the family can be found it is used; if not, a default font
3712(e.g., "Arial") or a family known to be similar is substituted (e.g.,
3713"Courier" might be used if "System" is requested but not found). </p>
3714
Cristy594d2772015-11-15 10:47:42 -05003715<p>For other settings that affect fonts, see the options <a
3716href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#stretch">-stretch</a>, <a
3717href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04003718
3719<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003720 <h3><a id="features"></a>-features <var>distance</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003721</div>
3722
3723<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>
3724
Cristy49380402017-06-29 11:24:55 -04003725<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003726Angular Second Moment Sum Entropy
3727Contrast Entropy
3728Correlation Difference Variance
3729Sum of Squares Variance Difference Entropy
3730Inverse Difference Moment Information Measure of Correlation 1
3731Sum Average Information Measure of Correlation 2
3732Sum Variance Maximum Correlation Coefficient
Cristy49380402017-06-29 11:24:55 -04003733</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003734
3735<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003736 <h3><a id="fft"></a>-fft</h3>
Cristy882d9f42015-10-29 16:48:39 -04003737</div>
3738
3739<p class="magick-description">implements the forward discrete Fourier transform (DFT).</p>
3740
3741<p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows
3742users in ImageMagick 6.6.0-9). It transforms an image from the normal
3743(spatial) domain to the frequency domain. In the frequency domain, an image is
3744represented as a superposition of complex sinusoidal waves of varying
3745amplitudes. The image x and y coordinates are the possible frequencies along
3746the x and y directions, respectively, and the pixel intensity values are
3747complex numbers that correspond to the sinusoidal wave amplitudes. See for
3748example, <a href="http://en.wikipedia.org/wiki/Fourier_transform">Fourier
3749Transform</a>, <a href="http://en.wikipedia.org/wiki/DFT">Discrete Fourier
3750Transform</a> and <a href="http://en.wikipedia.org/wiki/FFT">Fast Fourier
3751Transform</a>.</p>
3752
3753<p>A single image name is provided as output for this option. However, the
3754output result will have two components. It is either a two-frame image or two
3755separate images, depending upon whether the image format specified supports
3756multi-frame images. The reason that we get a dual output result is because the
3757frequency domain represents an image using complex numbers, which cannot be
3758visualized directly. Therefore, the complex values are automagically separated
3759into a two-component image representation. The first component is the
3760magnitude of the complex number and the second is the phase of the complex
Cristy594d2772015-11-15 10:47:42 -05003761number. See for example, <a
3762href="http://en.wikipedia.org/wiki/Complex_numbers">Complex Numbers</a>.</p>
Cristy882d9f42015-10-29 16:48:39 -04003763
3764<p>The magnitude and phase component images must be specified using image
3765formats that do not limit the color or compress the image. Thus, MIFF, TIF,
3766PFM, EXR and PNG are the recommended image formats to use. All of these
3767formats, except PNG support multi-frame images. So for example,</p>
3768
Cristy49380402017-06-29 11:24:55 -04003769<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003770convert image.png -fft fft_image.miff
Cristy49380402017-06-29 11:24:55 -04003771</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003772
3773<p>generates a magnitude image as <code>fft_image.miff[0]</code> and a phase
3774image as <code>fft_image.miff[1]</code>. Similarly,</p>
3775
Cristy49380402017-06-29 11:24:55 -04003776<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003777convert image.png -fft fft_image.png
Cristy49380402017-06-29 11:24:55 -04003778</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003779
3780<p>generates a magnitude image as <code>fft_image-0.png</code> and a phase image
3781as <code>fft_image-1.png</code>. If you prefer this representation, then you can
Cristy594d2772015-11-15 10:47:42 -05003782force any of the other formats to produce two output images by including <a
3783href="command-line-options.html#adjoin">+adjoin</a> following -fft in the command line.</p>
Cristy882d9f42015-10-29 16:48:39 -04003784
3785<p>The input image can be any size, but if not square and even-dimensioned, it
3786is padded automagically to the larger of the width or height of the input
3787image and to an even number of pixels. The padding will occur at the bottom
3788and/or right sides of the input image. The resulting output magnitude and
Cristy594d2772015-11-15 10:47:42 -05003789phase images is square at this size. The kind of padding relies on the <a
3790href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting.</p>
Cristy882d9f42015-10-29 16:48:39 -04003791
3792<p>Both output components will have dynamic ranges that fit within
3793[0, <var>QuantumRange</var>], so that HDRI need not be enabled.
3794Phase values nominally range from 0 to 2*π, but is scaled to span the full
3795dynamic range. (The first few releases had non-HDRI scaled but HDRI not
3796scaled). The magnitude image is not scaled and thus generally will contain
3797very small values. As such, the image normally will appear totally black. In
3798order to view any detail, the magnitude image typically is enhanced with a log
3799function into what is usually called the spectrum. A log function is used to
3800enhance the darker values more in comparison to the lighter values. This can
3801be done, for example, as follows:</p>
3802
Cristy49380402017-06-29 11:24:55 -04003803<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003804convert fft_image.miff[0] -contrast-stretch 0 \
3805 -evaluate log 1000 fft_image_spectrum.png"
Cristy49380402017-06-29 11:24:55 -04003806</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003807
Cristy594d2772015-11-15 10:47:42 -05003808<p>where either <a href="command-line-options.html#contrast-stretch">-contrast-stretch</a> 0 or <a
3809href="command-line-options.html#auto-level">-auto-level</a> is used to scale the image to full dynamic
Cristy882d9f42015-10-29 16:48:39 -04003810range, first. The argument to the <a href="command-line-options.html#evaluate">-evaluate</a> log
3811typically is specified between 100 and 10,000, depending upon the amount of
3812detail that one wants to bring out in the spectrum. Larger values produce more
3813visible detail. Too much detail, however, may hide the important features.</p>
3814
3815<p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required to
3816use <a href="command-line-options.html#fft">-fft</a>.</p>
3817
3818<p>Use <a href="command-line-options.html#fft">+fft</a> to produce two output images that are the real
3819and imaginary components of the complex valued Fourier transform.</p>
3820
3821<p>However, as the real and imaginary components can contain negative values,
3822this requires that IM be configured with HDRI enabled. In this case, you must
3823use either MIFF, TIF, PFM or MPC formats for the real and imaginary component
3824results, since they are formats that preserve both negative and fractional
3825values without clipping them or truncating the fractional part. With either
3826MIFF or TIF, one should add -define quantum:format=32, to allow those image
3827types to work properly in HDRI mode without clipping.</p>
3828
Cristy594d2772015-11-15 10:47:42 -05003829<p>The real and imaginary component images resulting from <a
3830href="command-line-options.html#fft">+fft</a> are also square, even dimensioned images due to the same
Cristy882d9f42015-10-29 16:48:39 -04003831padding that was discussed above for the magnitude and phase component
3832images.</p>
3833
Cristy594d2772015-11-15 10:47:42 -05003834<p>See the discussion on HDRI implementations of ImageMagick on the page <a
3835href="high-dynamic-range.html" >High Dynamic-Range Images</a>. For more
3836about HDRI go the ImageMagick <a
Cristy364a72f2016-11-04 22:38:41 -04003837href="https://www.imagemagick.org/Usage/basics/#hdri" >Usage</a> pages, <a
Cristy594d2772015-11-15 10:47:42 -05003838href="http://www.fmwconcepts.com/imagemagick/fourier_transforms/fourier.html"
3839>Fred's Fourier Processing With ImageMagick page</a> or this <a
3840 href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging" >Wikipedia</a>
Cristy882d9f42015-10-29 16:48:39 -04003841 entry. </p>
3842
Cristy594d2772015-11-15 10:47:42 -05003843<p>By default the FFT is normalized (and the IFT is not). Use "<code><a href="command-line-options.html#define" >-define</a> fourier:normalize=forward</code> to explicitly normalize the FFT and unnormalize the IFT.</p>
Cristy882d9f42015-10-29 16:48:39 -04003844
3845
3846<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003847 <h3><a id="fill"></a>-fill <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003848</div>
3849
3850<p class="magick-description">color to use when filling a graphic primitive.</p>
3851
3852<p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,
Cristy594d2772015-11-15 10:47:42 -05003853HSL, HSLA, CMYK, or CMYKA specification. See <a href="color.html" >Color Names</a> for
Cristy882d9f42015-10-29 16:48:39 -04003854a description of how to properly specify the color argument.</p>
3855
3856<p>Enclose the color specification in quotation marks to prevent the "#" or
3857the parentheses from being interpreted by your shell.</p>
3858
3859<p>For example,</p>
3860
Cristy49380402017-06-29 11:24:55 -04003861<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003862-fill blue
3863-fill "#ddddff"
3864-fill "rgb(255,255,255)"
Cristy49380402017-06-29 11:24:55 -04003865</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003866
3867<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
3868
3869<p>To print a complete list of color names, use the <a href="command-line-options.html#list">-list color</a> option.</p>
3870
3871<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04003872 <h3><a id="filter"></a>-filter <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04003873</div>
3874
3875<p class="magick-description">Use this <var>type</var> of filter when resizing or distorting an image.</p>
3876
3877<p>Use this option to affect the resizing operation of an image during
Cristy594d2772015-11-15 10:47:42 -05003878operations such as <a href="command-line-options.html#resize">-resize</a> and <a href="command-line-options.html#distort"
3879>-distort</a>. For example you can use a simple resize filter such as:</p>
Cristy882d9f42015-10-29 16:48:39 -04003880
Cristy49380402017-06-29 11:24:55 -04003881<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003882Point Hermite Cubic
3883Box Gaussian Catrom
3884Triangle Quadratic Mitchell
Cristy49380402017-06-29 11:24:55 -04003885</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003886
3887<p>The <code>Bessel</code> and <code>Sinc</code> filter is also provided (as well
3888as a faster <code>SincFast</code> equivalent form). However these filters are
3889generally useless on their own as they are infinite filters that are being
3890clipped to the filters support size. Their direct use is not recommended
3891except via expert settings (see below). </p>
3892
3893<p>Instead these special filter functions are typically windowed by a windowing
Cristy594d2772015-11-15 10:47:42 -05003894function that the <a href="command-line-options.html#filter" >-filter</a> setting defines. That is
Cristy882d9f42015-10-29 16:48:39 -04003895using these functions will define a 'Windowed' filter, appropriate to the
3896operator involved. Windowed filters include: </p>
3897
Cristy49380402017-06-29 11:24:55 -04003898<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04003899Lanczos Hamming Parzen
3900Blackman Kaiser Welsh
3901Hanning Bartlett Bohman
Cristy49380402017-06-29 11:24:55 -04003902</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04003903
3904<p>Also one special self-windowing filter is also provided
3905<code>Lagrange</code>, which will automagically re-adjust its function depending
3906on the current 'support' or 'lobes' expert settings (see below).</p>
3907
3908<p>If you do not select a filter with this option, the filter defaults to
3909<code>Mitchell</code> for a colormapped image, an image with a matte channel, or
3910if the image is enlarged. Otherwise the filter default to
3911<code>Lanczos</code>.</p>
3912
3913<p>To print a complete list of resize filters, use the <a href="command-line-options.html#list">-list
3914filter</a> option.</p>
3915
3916<p>You can modify how the filter behaves as it scales your image through the
Cristy594d2772015-11-15 10:47:42 -05003917use of these expert settings (see also <a href="command-line-options.html#define" >-define</a> and <a
3918href="command-line-options.html#set" >-set</a>):-</p>
Cristy882d9f42015-10-29 16:48:39 -04003919
Cristy49380402017-06-29 11:24:55 -04003920<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04003921 <tr>
3922 <td>-define filter:blur=<var>factor</var></td>
3923 <td>Scale the X axis of the filter (and its window). Use &gt; 1.0 for
3924 blurry or &lt; 1.0 for sharp. This should only be used with Gaussian and
3925 Gaussian-like filters simple filters, or you may not get the expected
3926 results. </td>
3927 </tr>
3928
3929 <tr>
3930 <td>-define filter:support=<var>radius</var></td>
3931 <td>Set the filter support radius. Defines how large the filter should be and
3932 thus directly defines how slow the filtered resampling process is. All
3933 filters have a default 'preferred' support size. Some filters like
3934 <code>Lagrange</code> and windowed filters adjust themselves depending on
3935 this value. With simple filters this value either does nothing (but slow
3936 the resampling), or will clip the filter function in a detrimental way.
3937 </td>
3938 </tr>
3939
3940 <tr>
3941 <td>-define filter:lobes=<var>count</var></td>
3942 <td>Set the number of lobes to use for the Sinc/Bessel filter. This an
3943 alternative way of specifying the 'support' range of the filter, that is
3944 designed to be more suited to windowed filters, especially when used for
3945 image distorts.</td>
3946 </tr>
3947
3948 <tr>
3949 <td>-define filter:sigma=<var>value</var></td>
3950 <td>The 'sigma' value used to define the <code>Gaussian</code> filter. Default
3951 sigma value is '<code>0.5</code>'. It only effects <code>Gaussian</code> but
3952 does not shrink (but may enlarge) the filter's 'support'. It can be used
3953 to generate very small blurs but without the filter 'missing' pixels due
3954 to using a small support setting. A larger value of '<code>0.707</code>'
3955 (a value of '1/sqrt(2)') is another common setting. </td>
3956 </tr>
3957
3958 <tr>
3959 <td>-define filter:b=<var>b-spline_factor</var></td>
Cristy579a0cb2016-11-26 12:27:17 -05003960 </tr>
3961
Cristy594d2772015-11-15 10:47:42 -05003962 <tr>
Cristy882d9f42015-10-29 16:48:39 -04003963 <td>-define filter:c=<var>keys_alpha_factor</var></td>
3964 <td>Redefine the values used for cubic filters such as <code>Cubic</code>,
3965 <code>Catrom</code>, <code>Mitchel</code>, and <code>Hermite</code>, as well as
3966 the <code>Parzen</code> cubic windowing function. If only one of the values
3967 are defined, the other is set so as to generate a 'Cubic-Keys' filter.
3968 The values meaning was defined by a research paper by
3969 Mitchell-Netravali.</td>
3970 </tr>
3971
3972 <tr>
3973 <td>-define filter:kaiser-beta=<var>value</var></td>
3974 <td>The 'alpha' value used to as part of the Kaiser Windowing function.
3975 Default value is '6.5'. It only effects Kaiser windowing function, and
3976 does not effect any other attributes.
3977 Before ImageMagick v6.7.6-10, this option was known as "filter:alpha", (an
3978 inheritance from the very old "zoom" program). It was changed to bring the
3979 function in line with more modern academic research usage, and better
3980 assign it be more definitive. </td>
3981 </tr>
3982
3983 <tr>
3984 <td>-define filter:kaiser-alpha=<var>value</var></td>
3985 <td>This value when multiplied by 'PI' is equivalent to "kaiser-beta", and
3986 will override that setting. It only effects Kaiser windowing function,
3987 and does not effect any other attributes. </td>
3988 </tr>
3989
3990 <tr>
3991 <td>-define filter:filter=<var>filter_function</var></td>
3992 <td>Use this function directly as the weighting filter. This will allow
3993 you to directly use a windowing function such as <code>Blackman</code>,
3994 as a resampling filter, rather than as its normal usage as a windowing
3995 function. If defined, no windowing function also defined, the window function is set
3996 to <code>Box</code>). Directly specifying <code>Sinc</code> or <code>Jinc</code>
3997 as a filter will also do this. </td>
3998 </tr>
3999
4000 <tr>
4001 <td>-define filter:window=<var>filter_function</var></td>
4002 <td>The IIR (infinite impulse response) filters <code>Sinc</code> and
4003 <code>Jinc</code> are windowed (brought down to zero over the defined
4004 support range) with the given filter. This allows you to specify a filter
4005 function to be used as a windowing function for these IIR filters.
4006 Many of the defined filters are actually windowing functions for these IIR
4007 filters. A typical choices is <code>Box</code>, (which effectively turns
4008 off the windowing function). </td>
4009 </tr>
4010
4011 <tr>
4012 <td>-define filter:win-support=<var>radius</var></td>
4013 <td>Scale windowing function to this size instead. This causes the windowing
4014 (or self-windowing Lagrange filter) to act is if the support window is
4015 larger than what is actually supplied to the calling operator. The filter
4016 however is still clipped to the real support size given. If unset this
4017 will equal the normal filter support size. </td>
4018 </tr>
4019
4020 <tr>
4021 <td>-define filter:verbose=<var>1</var></td>
4022 <td>This causes IM to print information on the final internal filter
4023 selection to standard output. This includes a commented header on the
4024 filter settings being used, and data allowing the filter weights to be
4025 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
4026 a <code>SincFast</code> windowed <code>SincFast</code> filter, while
4027 <code>Mitchell</code> is defined as a general <code>Cubic</code> family filter
4028 with specific 'B' and 'C' settings. </td>
4029 </tr>
4030
4031</table>
4032
4033<p>For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):</p>
4034
Cristy49380402017-06-29 11:24:55 -04004035<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004036convert image.png \
4037 -filter sinc \
4038 -set filter:window=jinc \
4039 -set filter:lobes=8 \
4040 -resize 150% image.jpg"
Cristy49380402017-06-29 11:24:55 -04004041</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004042
4043<p>Or a raw un-windowed Sinc filter with 4 lobes:</p>
4044
Cristy49380402017-06-29 11:24:55 -04004045<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004046convert image.png \
4047 -set filter:filter=sinc \
4048 -set filter:lobes=4 \
4049 -resize 150% image.jpg"
Cristy49380402017-06-29 11:24:55 -04004050</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004051
4052<p>To extract the data for a raw windowing function, combine it with
4053a '<code>Box</code>' filter. For example the '<code>Welch</code> parabolic
4054windowing function. </p>
4055
Cristy49380402017-06-29 11:24:55 -04004056<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004057convert null: -define filter:filter=Box \
4058 -define filter:window=Welch \
4059 -define filter:support=1.0 \
4060 -define filter:verbose=1 \
Cristy594d2772015-11-15 10:47:42 -05004061 -resize 2 null: > window_welch.dat
Cristy882d9f42015-10-29 16:48:39 -04004062gnuplot
4063 set grid
4064 plot \"window_welch.dat\" with lines
Cristy49380402017-06-29 11:24:55 -04004065</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004066
4067<p>Note that the use of expert options is provided for image processing experts
4068who have studied and understand how resize filters work. Without this
4069knowledge, and an understanding of the definition of the actual filters
4070involved, using expert settings are more likely to be detrimental to your image
4071resizing.</p>
4072
4073
4074<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004075 <h3><a id="flatten"></a>-flatten</h3>
Cristy882d9f42015-10-29 16:48:39 -04004076</div>
4077
Cristy594d2772015-11-15 10:47:42 -05004078<p class="magick-description">This is a simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "flatten".</p>
Cristy882d9f42015-10-29 16:48:39 -04004079
4080
4081<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004082 <h3><a id="flip"></a>-flip</h3>
Cristy882d9f42015-10-29 16:48:39 -04004083</div>
4084
4085<p class="magick-description">create a <var>mirror image</var></p>
4086
4087<p>reflect the scanlines in the vertical direction. The image will be mirrored
4088upside-down. </p>
4089
4090
4091<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004092 <h3><a id="floodfill"></a>-floodfill {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var> <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004093</div>
4094
4095<p class="magick-description">floodfill the image with color at the specified offset.</p>
4096
4097<p>Flood fill starts from the given 'seed point' which is not gravity effected.
Cristy594d2772015-11-15 10:47:42 -05004098Any color that matches within <a href="command-line-options.html#fuzz" >-fuzz</a> color distance of the
Cristy882d9f42015-10-29 16:48:39 -04004099given <var>color</var> argument, connected to that 'seed point'
Cristy594d2772015-11-15 10:47:42 -05004100will be replaced with the current <a href="command-line-options.html#fill" >-fill</a> color. </p>
Cristy882d9f42015-10-29 16:48:39 -04004101
4102<p>Note that if the pixel at the 'seed point' does not itself match the given
Cristy594d2772015-11-15 10:47:42 -05004103<var>color</var> (according to <a href="command-line-options.html#fuzz" >-fuzz</a>), then no
Cristy882d9f42015-10-29 16:48:39 -04004104action will be taken. </p>
4105
Cristy594d2772015-11-15 10:47:42 -05004106<p>This operator works more like the <a href="command-line-options.html#opaque" >-opaque</a> option, than
Cristy882d9f42015-10-29 16:48:39 -04004107a more general flood fill that reads the matching color directly at the 'seed
Cristy594d2772015-11-15 10:47:42 -05004108point'. For this form of flood fill, look at <a href="command-line-options.html#draw" >-draw</a> and
Cristy882d9f42015-10-29 16:48:39 -04004109its 'color floodfill' drawing method. </p>
4110
4111
4112<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004113 <h3><a id="flop"></a>-flop</h3>
Cristy882d9f42015-10-29 16:48:39 -04004114</div>
4115
4116<p class="magick-description">create a <var>mirror image</var>.</p>
4117
4118<p>Reflect the scanlines in the horizontal direction, just like the image in
4119a vertical mirror. </p>
4120
4121
4122<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004123 <h3><a id="font"></a>-font <var>name</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004124</div>
4125
4126<p class="magick-description">set the font to use when annotating images with text, or creating labels.</p>
4127
4128<p>To print a complete list of fonts, use the <a href="command-line-options.html#list">-list font</a>
4129option (for versions prior to 6.3.6, use 'type' instead of 'font').</p>
4130
4131<p>In addition to the fonts specified by the above pre-defined list, you can
4132also specify a font from a specific source. For example <code>Arial.ttf</code>
4133is a TrueType font file, <code>ps:helvetica</code> is PostScript font, and
4134<code>x:fixed</code> is X11 font.</p>
4135
Cristy594d2772015-11-15 10:47:42 -05004136<p>For other settings that affect fonts, see the options <a
4137href="command-line-options.html#family">-family</a>, <a href="command-line-options.html#stretch">-stretch</a>, <a
4138href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04004139
4140
4141<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004142 <h3><a id="foreground"></a>-foreground <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004143</div>
4144
4145<p class="magick-description">Define the foreground color for menus.", "display</p>
4146
Cristy594d2772015-11-15 10:47:42 -05004147<p>The color is specified using the format described under the <a
4148href="command-line-options.html#fill">-fill</a> option.</p>
Cristy882d9f42015-10-29 16:48:39 -04004149
4150<p>The default foreground color is black.</p>
4151
4152<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004153 <h3><a id="format"></a>-format <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004154</div>
4155
4156<p class="magick-description">the image format type.</p>
4157
4158<p>When used with the <code>mogrify</code> utility, this option converts any
4159image to the image <a href="formats.html">format</a> you specify.
Cristy594d2772015-11-15 10:47:42 -05004160For a list of image format types supported by ImageMagick, use <a
4161href="command-line-options.html#list">-list format</a>.</p>
Cristy882d9f42015-10-29 16:48:39 -04004162
4163<p>By default the file is written to its original name. However, if the
4164filename extension matches a supported format, the extension is replaced with
4165the image format type specified with <a href="command-line-options.html#format">-format</a>. For
4166example, if you specify <var>tiff</var> as the format type and the
4167input image filename is <var>image.gif</var>, the output image
4168filename becomes <var>image.tiff</var>.</p>
4169
4170<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004171 <h3><a id="format_identify_"></a>-format <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004172</div>
4173
4174<p class="magick-description">output formatted image characteristics.</p>
4175
4176<p>See <a href="escape.html">Format and Print Image
4177Properties</a> for an explanation on how to specify the argument to this
4178option.</p>
4179
4180<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004181 <h3><a id="frame"></a>-frame <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004182</div>
4183
4184<p class="magick-description">Surround the image with a border or beveled frame.</p>
4185
Cristyb7f455a2017-03-03 19:30:34 -05004186<p>The color of the border is specified with the <a href="command-line-options.html#mattecolor"
4187>-mattecolor</a> command line option. </p>
Cristy882d9f42015-10-29 16:48:39 -04004188
4189<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. The <var>size</var> portion of the <var>geometry</var> argument indicates the amount of extra width and
4190height that is added to the dimensions of the image. If no offsets are given
4191in the <var>geometry</var> argument, then the border added is
4192a solid color. Offsets <var>x</var> and <var>y</var>, if present, specify that
4193the width and height of the border is partitioned to form an outer bevel of
4194thickness <var>x</var> pixels and an inner bevel of thickness
4195<var>y</var> pixels. Negative offsets make no sense as frame arguments.
4196</p>
4197
Cristy594d2772015-11-15 10:47:42 -05004198<p>The <a href="command-line-options.html#frame">-frame</a> option is affected by the current <a
4199href="command-line-options.html#compose">-compose</a> setting and assumes that this is using the default
Cristy882d9f42015-10-29 16:48:39 -04004200'<code>Over</code>' composition method. It generates an image of the appropriate
4201size with the current <a href="command-line-options.html#bordercolor">-bordercolor</a> setting, and then
Cristy594d2772015-11-15 10:47:42 -05004202draws the frame of four distinct colors close to the current <a
Cristyb7f455a2017-03-03 19:30:34 -05004203href="command-line-options.html#mattecolor">-mattecolor</a>. The original image is then overlaid onto
Cristy882d9f42015-10-29 16:48:39 -04004204center of this image. This means that with the default compose method of
Cristy594d2772015-11-15 10:47:42 -05004205'<code>Over</code>' any transparent parts may be replaced by the current <a
4206href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
Cristy882d9f42015-10-29 16:48:39 -04004207
4208<p>The image composition is not
4209affected by the <a href="command-line-options.html#gravity">-gravity</a> option.</p>
4210
4211
4212<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004213 <h3><a id="frame_import_"></a>-frame</h3>
Cristy882d9f42015-10-29 16:48:39 -04004214</div>
4215
4216<p class="magick-description">include the X window frame in the imported image. </p>
4217<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004218 <h3><a id="function"></a>-function <var>function</var> <var>parameters</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004219</div>
4220
4221<p class="magick-description">Apply a function to channel values.</p>
4222
4223<p>This operator performs calculations based on the given arguments to modify
Cristy594d2772015-11-15 10:47:42 -05004224each of the color values for each previously set <a
4225href="command-line-options.html#channel">-channel</a> in the image. See <a
4226href="command-line-options.html#evaluate">-evaluate</a> for details concerning how the results of the
Cristy882d9f42015-10-29 16:48:39 -04004227calculations are handled.</p>
4228
Cristy594d2772015-11-15 10:47:42 -05004229<p>This is can be considered a multi-argument version of the <a
4230href="command-line-options.html#evaluate">-evaluate</a> operator. (Added in
Cristy882d9f42015-10-29 16:48:39 -04004231ImageMagick 6.4.8−8.)</p>
4232
4233<p>Here, <var>parameters</var> is a comma-separated list of
4234numerical values. The number of values varies depending on which <var>function</var> is selected. Choose the <var>function</var> from:</p>
4235
Cristy49380402017-06-29 11:24:55 -04004236<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004237Polynomial
4238Sinusoid
4239Arcsin
4240Arctan
Cristy49380402017-06-29 11:24:55 -04004241</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004242
4243<p>To print a complete list of <a href="command-line-options.html#function">-function</a> operators,
4244use <a href="command-line-options.html#list">-list function</a>. Descriptions follow.</p>
4245
Cristy49380402017-06-29 11:24:55 -04004246<dl class="row">
4247 <dt class="col-md-4">Polynomial</dt>
4248 <dd class="col-md-8"><p>The <code>Polynomial</code> function takes an arbitrary number of parameters,
Cristy882d9f42015-10-29 16:48:39 -04004249these being the coefficients of a polynomial, in decreasing order of degree.
4250That is, entering</p>
4251
Cristy49380402017-06-29 11:24:55 -04004252<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004253-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>
Cristy49380402017-06-29 11:24:55 -04004254</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004255
4256<p>will invoke a polynomial function given by</p>
4257
Cristy49380402017-06-29 11:24:55 -04004258<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004259<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>,
Cristy49380402017-06-29 11:24:55 -04004260</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004261
4262<p>where <b><var>u</var></b> is pixel's original normalized channel value.</p>
4263
4264<p>The <code>Polynomial</code> function can be used in place of <code>Set</code>
4265(the <var>constant</var> polynomial) and <code>Add</code>, <code>Divide</code>,
4266<code>Multiply</code>, and <code>Subtract</code> (some <var>linear</var>
Cristy594d2772015-11-15 10:47:42 -05004267polynomials) of the <a href="command-line-options.html#evaluate">-evaluate</a> operator. The <a
4268href="command-line-options.html#level">-level</a> operator also affects channels linearly. Some
Cristy882d9f42015-10-29 16:48:39 -04004269correspondences follow.</p>
4270
Cristy49380402017-06-29 11:24:55 -04004271<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04004272 <tr>
4273 <td>-evaluate Set <var>value</var> </td>
4274 <td>-function Polynomial <var>value</var></td>
4275 <td>(Constant functions; set <var>value</var>×100% gray when channels are RGB.)</td>
4276 </tr>
4277 <tr>
4278 <td>-evaluate Add <var>value</var> </td>
4279 <td>-function Polynomial 1,<var>value</var></td>
4280 </tr>
4281 <tr>
4282 <td>-evaluate Subtract <var>value</var> </td>
4283 <td>-function Polynomial 1,−<var>value</var></td>
4284 </tr>
4285 <tr>
4286 <td>-evaluate Multiply <var>value</var> </td>
4287 <td>-function Polynomial <var>value</var>,0</td>
4288 </tr>
4289 <tr>
4290 <td>+level black% x white%</td>
4291 <td>-function Polynomial A,B</td>
4292 <td>(Reduce contrast. Here, A=(white-black)/100 and B=black/100.)</td>
4293 </tr>
4294</table>
4295
4296<p>The <code>Polynomial</code> function gives great versatility, since
4297polynomials can be used to fit any continuous curve to any degree of accuracy
4298desired.</p>
4299
4300</dd>
Cristy49380402017-06-29 11:24:55 -04004301<dt class="col-md-4">Sinusoid</dt>
4302<dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -04004303<p>The <code>Sinusoid</code> function can be used to vary the channel values
4304sinusoidally by setting frequency, phase shift, amplitude, and a bias. These
4305values are given as one to four parameters, as follows,</p>
4306
Cristy49380402017-06-29 11:24:55 -04004307<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004308-function <code>Sinusoid</code> <var>freq</var>,[<var>phase</var>,[<var>amp</var>,[<var>bias</var>]]]
Cristy49380402017-06-29 11:24:55 -04004309</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004310
4311<p>where <var>phase</var> is in degrees. (The domain [0,1] of the function
4312corresponds to 0 through <var>freq</var>×360 degrees.)
4313The result is that if a pixel's normalized channel value is originally
4314<b><var>u</var></b>, its resulting normalized value is given by </p>
4315
Cristy49380402017-06-29 11:24:55 -04004316<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004317<var>amp</var> * sin(2*π* (<var>freq</var> * <b><var>u</var></b> + <var>phase</var> / 360)) + <var>bias</var>
Cristy49380402017-06-29 11:24:55 -04004318</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004319
4320<p> For example, the following generates a curve that starts and ends at 0.9
4321(when <b><var>u</var></b>=0 and 1, resp.), oscillating three times between
4322.7−.2=.5 and .7+.2=.9. </p>
4323
Cristy49380402017-06-29 11:24:55 -04004324<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004325-function Sinusoid 3,-90,.2,.7
Cristy49380402017-06-29 11:24:55 -04004326</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004327
4328<p>The default values of <var>amp</var> and <var>bias</var> are both .5. The default for <var>phase</var>
4329is 0.</p>
4330
4331<p>The <code>Sinusoid</code> function generalizes <code>Sin</code> and
4332<code>Cos</code> of the <a href="command-line-options.html#evaluate">-evaluate</a> operator by allowing
4333varying amplitude, phase and bias. The correspondence is as follows.</p>
4334
Cristy49380402017-06-29 11:24:55 -04004335<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04004336 <tr>
4337 <td>-evaluate Sin <var>freq</var> </td>
4338 <td>-function Sinusoid <var>freq</var>,0 </td>
4339 </tr>
4340 <tr>
4341 <td>-evaluate Cos <var>freq</var> </td>
4342 <td>-function Sinusoid <var>freq</var>,90 </td>
4343 </tr>
4344</table>
4345 </dd>
Cristy49380402017-06-29 11:24:55 -04004346<dt class="col-md-4">ArcSin</dt>
4347<dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -04004348<p>The <code>ArcSin</code> function generates the inverse curve of a Sinusoid,
4349and can be used to generate cylindrical distortion and displacement maps.
4350The curve can be adjusted relative to both the input values and output range
4351of values.</p>
4352
Cristy49380402017-06-29 11:24:55 -04004353<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004354-function <code>ArcSin</code> <var>width</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]
Cristy49380402017-06-29 11:24:55 -04004355</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004356
4357<p>with all values given in terms of normalized color values (0.0 for black,
43581.0 for white). Defaulting to values covering the full range from 0.0 to 1.0
4359for bout input (<var>width</var>), and output (<var>width</var>) values. '<code>1.0,0.5,1.0,0.5</code>' </p>
4360
Cristy49380402017-06-29 11:24:55 -04004361<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004362<var>range</var>/π * asin( 2/<var>width</var> * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var>
Cristy49380402017-06-29 11:24:55 -04004363</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004364
4365</dd>
Cristy49380402017-06-29 11:24:55 -04004366<dt class="col-md-4">ArcTan</dt>
4367<dd class="col-md-8">
Cristy882d9f42015-10-29 16:48:39 -04004368<p>The <code>ArcTan</code> function generates a curve that smooth crosses from
4369limit values at infinities, though a center using the given slope value.
4370All these values can be adjusted via the arguments.</p>
4371
Cristy49380402017-06-29 11:24:55 -04004372<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004373-function <code>ArcTan</code> <var>slope</var>,[<var>center</var>,[<var>range</var>,[<var>bias</var>]]]
Cristy49380402017-06-29 11:24:55 -04004374</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004375
4376<p>Defaulting to '<code>1.0,0.5,1.0,0.5</code>'.
4377</p>
4378
Cristy49380402017-06-29 11:24:55 -04004379<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004380<var>range</var>/π * atan( <var>slope</var>*π * ( <b><var>u</var></b> - <var>center</var> ) ) + <var>bias</var>
Cristy49380402017-06-29 11:24:55 -04004381</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004382 </dd>
Cristy882d9f42015-10-29 16:48:39 -04004383</dl>
4384
4385
4386
4387<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004388 <h3><a id="fuzz"></a>-fuzz <var>distance</var>{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04004389</div>
4390
4391<p class="magick-description">Colors within this <var>distance</var> are considered equal.</p>
4392
4393<p>A number of algorithms search for a target color. By default the color must
4394be exact. Use this option to match colors that are close to the target color
4395in RGB space. For example, if you want to automagically trim the edges of an
4396image with <a href="command-line-options.html#trim">-trim</a> but the image was scanned and the target
4397background color may differ by a small amount. This option can account for
4398these differences.</p>
4399
4400<p>The <var>distance</var> can be in absolute intensity units or, by
4401appending <code>%</code> as a percentage of the maximum possible intensity (255,
440265535, or 4294967295).</p>
4403
Cristy594d2772015-11-15 10:47:42 -05004404<p>Use <a href="command-line-options.html#fuzz" >+fuzz</a> to reset the fuzz value to 0.</p>
Cristy882d9f42015-10-29 16:48:39 -04004405
4406
4407<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004408 <h3><a id="fx"></a>-fx <var>expression</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004409</div>
4410
4411<p class="magick-description">apply a mathematical expression to an image or image channels.</p>
4412
4413<p>If the first character of <var>expression</var> is <code>@</code>,
4414the expression is read from a file titled by the remaining characters in the
4415string.</p>
4416
4417<p>See <a href="fx.html">FX,
4418The Special Effects Image Operator</a> for a detailed discussion of this
4419option.</p>
4420
4421
4422<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004423 <h3><a id="gamma"></a>-gamma <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004424</div>
4425
4426<p class="magick-description">level of gamma correction.</p>
4427
4428<p>The same color image displayed on two different workstations may look
4429different due to differences in the display monitor. Use gamma correction to
4430adjust for this color difference. Reasonable values extend from
4431<code>0.8</code> to <code>2.3</code>. Gamma less than 1.0 darkens the image and
4432gamma greater than 1.0 lightens it. Large adjustments to image gamma may
4433result in the loss of some image information if the pixel quantum size is only
4434eight bits (quantum range 0 to 255).</p>
4435
4436<p>Gamma adjusts the image's channel values pixel-by-pixel according to
4437a power law, namely, pow(pixel,1/gamma) or pixel^(1/gamma), where pixel is the
4438normalized or 0 to 1 color value. For example, using a value of gamma=2 is the
4439same as taking the square root of the image.</p>
4440
4441<p>You can apply separate gamma values to the red, green, and blue channels of
4442the image with a gamma value list delimited with commas (e.g.,
4443<code>1.7,2.3,1.2</code>).</p>
4444
4445<p>Use <a href="command-line-options.html#gamma">+gamma <var>value</var></a> to set the
4446image gamma level without actually adjusting the image pixels. This option
4447is useful if the image is of a known gamma but not set as an image attribute
4448(e.g. PNG images). Write the "file gamma" which is the reciprocal of the
4449display gamma; e.g., if your image is sRGB and you want to write a PNG gAMA
4450chunk, use</p>
4451
Cristy49380402017-06-29 11:24:55 -04004452<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004453convert input.png +gamma .45455 output.png
Cristy49380402017-06-29 11:24:55 -04004454</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004455
4456<p>(0.45455 is 1/2.2)</p>
4457
4458<p>Note that gamma adjustments are also available via the <a href="command-line-options.html#level">-level</a> operator.</p>
4459
4460<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004461 <h3><a id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br />-gaussian-blur <var>radius</var>x<var>sigma</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004462</div>
4463
4464<p class="magick-description">Blur the image with a Gaussian operator.</p>
4465
4466<p>Convolve the image with a Gaussian or normal distribution using the given
Cristy594d2772015-11-15 10:47:42 -05004467<var >Sigma</var> value. The formula is:</p>
Cristy882d9f42015-10-29 16:48:39 -04004468
Cristy594d2772015-11-15 10:47:42 -05004469<p class="text-center"><img class="img-thumbnail" alt="gaussian distribution" width="243px" height="42px" src="../images/gaussian-blur.png"/> </p>
Cristy882d9f42015-10-29 16:48:39 -04004470
Cristy594d2772015-11-15 10:47:42 -05004471<p>The <var >Sigma</var> value is the important argument, and
Cristy882d9f42015-10-29 16:48:39 -04004472determines the actual amount of blurring that will take place. </p>
4473
Cristy594d2772015-11-15 10:47:42 -05004474<p>The <var >Radius</var> is only used to determine the size of the
Cristy882d9f42015-10-29 16:48:39 -04004475array which will hold the calculated Gaussian distribution. It should be an
4476integer. If not given, or set to zero, IM will calculate the largest possible
4477radius that will provide meaningful results for the Gaussian distribution.
4478</p>
4479
Cristy594d2772015-11-15 10:47:42 -05004480<p>The larger the <var >Radius</var> the radius the slower the
4481operation is. However too small a <var >Radius</var>, and sever
4482aliasing effects may result. As a guideline, <var >Radius</var>
4483should be at least twice the <var >Sigma</var> value, though three
Cristy882d9f42015-10-29 16:48:39 -04004484times will produce a more accurate result. </p>
4485
4486<p>This differs from the faster <a href="command-line-options.html#blur">-blur</a> operator in that a
4487full 2-dimensional convolution is used to generate the weighted average of the
4488neighboring pixels. </p>
4489
4490<p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine how
4491pixels which are outside the image proper are blurred into the final result.
4492</p>
4493
4494
4495<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004496 <h3><a id="geometry"></a>-geometry <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004497</div>
4498
4499<p class="magick-description">Set the preferred size and location of the image.</p>
4500
4501<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
4502
4503<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004504 <h3><a id="gravity"></a>-gravity <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004505</div>
4506
4507<p class="magick-description">Sets the current gravity suggestion for various other settings and options.</p>
4508
4509<p>Choices include: <code>NorthWest</code>, <code>North</code>,
4510<code>NorthEast</code>, <code>West</code>, <code>Center</code>, <code>East</code>,
Cristy594d2772015-11-15 10:47:42 -05004511<code>SouthWest</code>, <code>South</code>, <code>SouthEast</code>. Use <a
4512href="command-line-options.html#list">-list gravity</a> to get a complete list of <a
4513href="command-line-options.html#gravity">-gravity</a> settings available in your ImageMagick
Cristy882d9f42015-10-29 16:48:39 -04004514installation.</p>
4515
4516<p>The direction you choose specifies where to position text or subimages. For
4517example, a gravity of <code>Center</code> forces the text to be centered within
Cristy776113a2016-04-29 12:01:19 -04004518the image. By default, the image gravity is <code>undefined</code>. See <a
Cristy594d2772015-11-15 10:47:42 -05004519href="command-line-options.html#draw">-draw</a> for more details about graphic primitives. Only the
4520text primitive of <a href="command-line-options.html#draw">-draw</a> is affected by the <a
4521href="command-line-options.html#gravity">-gravity</a> option.</p>
Cristy882d9f42015-10-29 16:48:39 -04004522
4523<p>The <a href="command-line-options.html#gravity">-gravity</a> option is also used in concert with the
4524<a href="command-line-options.html#geometry">-geometry</a> setting and other settings or options that
Cristy594d2772015-11-15 10:47:42 -05004525take <var>geometry</var> as an argument, such as the <a
4526href="command-line-options.html#crop">-crop</a> option. </p>
Cristy882d9f42015-10-29 16:48:39 -04004527
4528<p>If a <a href="command-line-options.html#gravity">-gravity</a> setting occurs before another option
4529or setting having a <var>geometry</var> argument that specifies an
4530offset, the offset is usually applied to the point within the image suggested
4531by the <a href="command-line-options.html#gravity">-gravity</a> argument. Thus, in the following
4532command, for example, suppose the file <code>image.png</code> has dimensions
4533200x100. The offset specified by the argument to <a href="command-line-options.html#region">-region</a>
4534is (−40,+20). The argument to <a href="command-line-options.html#gravity">-gravity</a> is
4535<code>Center</code>, which suggests the midpoint of the image, at the point
4536(100,50). The offset (−40,20) is applied to that point, giving
4537(100−40,50+20)=(60,70), so the specified 10x10 region is located at
4538that point. (In addition, the <a href="command-line-options.html#gravity">-gravity</a> affects the
4539region itself, which is <var>centered</var> at the pixel
4540coordinate (60,70). (See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.)</p>
4541
Cristy49380402017-06-29 11:24:55 -04004542<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004543convert image.png -gravity Center -region 10x10-40+20 \
4544 -negate output.png
Cristy49380402017-06-29 11:24:55 -04004545</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004546
Cristy594d2772015-11-15 10:47:42 -05004547<p>When used as an option to <a href="composite.html">composite</a>, <a
4548href="command-line-options.html#gravity">-gravity</a> gives the direction that the image gravitates
Cristy882d9f42015-10-29 16:48:39 -04004549within the composite.</p>
4550
Cristy594d2772015-11-15 10:47:42 -05004551<p>When used as an option to <a href="montage.html">montage</a>, <a
4552href="command-line-options.html#gravity">-gravity</a> gives the direction that an image gravitates
Cristy882d9f42015-10-29 16:48:39 -04004553within a tile. The default gravity is <code>Center</code> for this purpose.</p>
4554
4555
4556<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004557 <h3><a id="grayscale"></a>-grayscale <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004558</div>
4559
4560<p class="magick-description">convert image to grayscale.</p>
4561
Cristy594d2772015-11-15 10:47:42 -05004562<p>This will use one of the <a href="command-line-options.html#intensity" >-intensity</a> methods to
Cristy882d9f42015-10-29 16:48:39 -04004563convert the given image into a linear-grayscale image. </p>
4564
4565<p>For example, to convert an image to (linear) Rec709Luminance grayscale, type:</p>
4566
Cristy49380402017-06-29 11:24:55 -04004567<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004568convert in.png -grayscale Rec709Luminance out.png
Cristy49380402017-06-29 11:24:55 -04004569</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004570
4571<p>which is equivalent to:</p>
4572
Cristy49380402017-06-29 11:24:55 -04004573<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004574convert in.png -colorspace gray out.png
Cristy49380402017-06-29 11:24:55 -04004575</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004576
4577<p>Similarly, to convert an image to (non-linear) Rec709Luma grayscale, type:</p>
4578
Cristy49380402017-06-29 11:24:55 -04004579<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004580convert in.png -grayscale Rec709Luma out.png
Cristy49380402017-06-29 11:24:55 -04004581</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004582
4583<p>which is equivalent to:</p>
4584
Cristy49380402017-06-29 11:24:55 -04004585<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004586convert in.png -set colorspace RGB -colorspace gray out.png
Cristy49380402017-06-29 11:24:55 -04004587</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004588
4589<p>Note that a 'colorspace' intensity method will produce the same result
4590regardless of the current colorpsace of the image. But a 'mathematical'
4591intensity method will depend on the current colorspace the image is currently
4592using. </p>
4593
Cristy594d2772015-11-15 10:47:42 -05004594<p>While this operation uses an <a href="command-line-options.html#intensity" >-intensity</a> method,
4595it does not use or set the <a href="command-line-options.html#intensity" >-intensity</a> setting, so
Cristy882d9f42015-10-29 16:48:39 -04004596will not effect other operations that may use that setting.</p>
4597
4598
4599<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004600 <h3><a id="green-primary"></a>-green-primary <var>x,y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004601</div>
4602
4603<p class="magick-description">green chromaticity primary point.</p>
4604
4605
4606<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004607 <h3><a id="hald-clut"></a>-hald-clut</h3>
Cristy882d9f42015-10-29 16:48:39 -04004608</div>
4609
4610<p class="magick-description">apply a Hald color lookup table to the image.</p>
4611
4612<p>A Hald color lookup table is a 3-dimensional color cube mapped to 2
4613dimensions. Create it with the <code>HALD:</code> prefix (e.g. HALD:8). You
4614can apply any color transformation to the Hald image and then use this option
4615to apply the transform to the image. </p>
4616
Cristy49380402017-06-29 11:24:55 -04004617<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004618convert image.png hald.png -hald-clut transform.png
Cristy49380402017-06-29 11:24:55 -04004619</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004620
4621<p>This option provides a convenient method for you to use Gimp or Photoshop
4622to make color corrections to the Hald CLUT image and subsequently apply them
4623to multiple images using an ImageMagick script. </p>
4624
4625<p>Note that the representation is only of the normal RGB color space and that
4626the whole color value triplet is used for the interpolated lookup of the
Cristy594d2772015-11-15 10:47:42 -05004627represented Hald color cube image. Because of this the operation is not <a
4628href="command-line-options.html#channel" >-channel</a> setting effected, nor can it adjust or modify an
Cristy882d9f42015-10-29 16:48:39 -04004629images transparency or alpha/matte channel.</p>
4630
Cristy594d2772015-11-15 10:47:42 -05004631<p>See also <a href="command-line-options.html#clut" >-clut</a> which provides color value replacement
Cristy769d8892016-01-19 18:11:14 -05004632of the individual color channels, usually involving a simpler grayscale
4633image. E.g: grayscale to color replacement, or modification by a histogram
Cristy882d9f42015-10-29 16:48:39 -04004634mapping. </p>
4635
4636
4637<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004638 <h3><a id="help"></a>-help</h3>
Cristy882d9f42015-10-29 16:48:39 -04004639</div>
4640
4641<p class="magick-description">print usage instructions.</p>
4642
4643<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004644 <h3><a id="highlight-color"></a>-highlight-color <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004645</div>
4646
4647<p class="magick-description">when comparing images, emphasize pixel differences with this color.</p>
4648
4649<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004650 <h3><a id="hough-lines"></a>-hough-lines <var>width</var>x<var>height</var>{<var>+threshold</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04004651</div>
4652
4653<p class="magick-description">identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
4654
4655<p>Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.</p>
4656
4657<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>.
4658
4659<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>
4660
Cristy594d2772015-11-15 10:47:42 -05004661<p>Use <code><a href="command-line-options.html#background" >-background</a></code> to specify the color of the background onto which the lines will be drawn. The default is black.</p>
Cristy882d9f42015-10-29 16:48:39 -04004662
Cristy594d2772015-11-15 10:47:42 -05004663<p>Use <code><a href="command-line-options.html#fill" >-fill</a></code> to specify the color of the lines. The default is black.</p>
Cristy882d9f42015-10-29 16:48:39 -04004664
Cristy594d2772015-11-15 10:47:42 -05004665<p>Use <code><a href="command-line-options.html#stroke" >-stroke</a></code> and <code><a href="command-line-options.html#strokewidth" >-strokewidth</a></code> to specify the thickness of the lines. The default is black and no strokewidth.</p>
Cristy882d9f42015-10-29 16:48:39 -04004666
4667<p>A text file listing the endpoints and counts may be created by using the suffix, .mvg, for the output image.</p>
4668
Cristy594d2772015-11-15 10:47:42 -05004669<p>Use <code><a href="command-line-options.html#define" >-define</a> hough-lines:accumulator=true</code> to return the accumulator image in addition to the lines image.</p>
Cristy882d9f42015-10-29 16:48:39 -04004670
4671<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004672 <h3><a id="iconGeometry"></a>-iconGeometry <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004673</div>
4674
4675<p class="magick-description">specify the icon geometry.</p>
4676
4677<p>Offsets, if present in the geometry specification, are handled in the same
4678manner as the <a href="command-line-options.html#geometry">-geometry</a> option, using X11 style to
4679handle negative offsets.</p>
4680
4681<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
4682
4683<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004684 <h3><a id="iconic"></a>-iconic</h3>
Cristy882d9f42015-10-29 16:48:39 -04004685</div>
4686
4687<p class="magick-description">start in icon mode in X Windows", 'animate', 'display</p>
4688
4689<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004690 <h3><a id="identify"></a>-identify</h3>
Cristy882d9f42015-10-29 16:48:39 -04004691</div>
4692
4693<p class="magick-description">identify the format and characteristics of the image.</p>
4694
4695<p>This information is printed: image scene number; image name; image size;
4696the image class (<var>DirectClass</var> or <var>PseudoClass</var>); the total number of unique colors; and the
4697number of seconds to read and transform the image. Refer to <a href="miff.html">MIFF</a> for
4698a description of the image class.</p>
4699
4700<p>If <a href="command-line-options.html#colors">-colors</a> is also specified, the total unique colors
Cristy594d2772015-11-15 10:47:42 -05004701in the image and color reduction error values are printed. Refer to <a
Cristy6549abb2016-11-10 08:25:55 -05004702href="http://www.imagemagick.org/www/quantize.html">color
Cristy882d9f42015-10-29 16:48:39 -04004703reduction algorithm</a> for a description of these values.</p>
4704
4705<p>If <a href="command-line-options.html#verbose">-verbose</a> precedes this option, copious
4706amounts of image properties are displayed including image statistics, profiles,
4707image histogram, and others.</p>
4708
4709<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004710 <h3><a id="ift"></a>-ift</h3>
Cristy882d9f42015-10-29 16:48:39 -04004711</div>
4712
4713<p class="magick-description">implements the inverse discrete Fourier transform (DFT).</p>
4714
4715<p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows
4716users in ImageMagick 6.6.0-9). It transforms a pair of magnitude and phase
4717images from the frequency domain to a single image in the normal or spatial
Cristy594d2772015-11-15 10:47:42 -05004718domain. See for example, <a
4719href="http://en.wikipedia.org/wiki/Fourier_transform">Fourier Transform</a>,
Cristy882d9f42015-10-29 16:48:39 -04004720<a href="http://en.wikipedia.org/wiki/DFT">Discrete Fourier Transform</a> and
4721<a href="http://en.wikipedia.org/wiki/FFT">Fast Fourier Transform</a>.</p>
4722
4723<p>For example, depending upon the image format used to store the result of
4724the <a href="command-line-options.html#fft">-fft</a>, one would use either</p>
4725
Cristy49380402017-06-29 11:24:55 -04004726<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004727convert fft_image.miff -ift fft_image_ift.png
Cristy49380402017-06-29 11:24:55 -04004728</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004729
4730<p>or</p>
4731
Cristy49380402017-06-29 11:24:55 -04004732<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004733convert fft_image-0.png fft_image-1.png -ift fft_image_ift.png
Cristy49380402017-06-29 11:24:55 -04004734</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004735
4736<p>The resulting image may need to be cropped due to padding introduced when
Cristy594d2772015-11-15 10:47:42 -05004737the original image, prior to the <a href="command-line-options.html#fft">-fft</a> or <a
4738href="command-line-options.html#fft">+fft</a>, was not square or even dimensioned. Any padding is at
Cristy882d9f42015-10-29 16:48:39 -04004739the right and/or bottom sides of the image.</p>
4740
4741<p>The <a href="http://www.fftw.org/">FFTW</a> delegate library is required to
4742use <a href="command-line-options.html#ift">-ift</a>.</p>
4743
4744<p>Use <a href="command-line-options.html#ift">+ift</a> (with HDRI enabled) to transform a pair of real
4745and imaginary images from the frequency domain to a single image in the normal
4746(spatial) domain.</p>
4747
Cristy594d2772015-11-15 10:47:42 -05004748<p>By default the IFT is not normalized (and the FFT is). Use "<code><a href="command-line-options.html#define" >-define</a> fourier:normalize=inverse</code> to explicitly normalize the IFT and unnormalize the FFT.</p>
Cristy882d9f42015-10-29 16:48:39 -04004749
4750<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004751 <h3><a id="immutable"></a>-immutable</h3>
Cristy882d9f42015-10-29 16:48:39 -04004752</div>
4753
4754<p class="magick-description">make image immutable.</p>
4755
4756<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004757 <h3><a id="implode"></a>-implode <var>factor</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004758</div>
4759
4760<p class="magick-description">implode image pixels about the center.</p>
4761
4762<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004763 <h3><a id="insert"></a>-insert <var>index</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004764</div>
4765
4766<p class="magick-description">insert the last image into the image sequence.</p>
4767
4768<p>This option takes last image in the current image sequence and inserts it
4769at the given index. If a negative index is used, the insert position is
4770calculated before the last image is removed from the sequence. As such
4771<code>-insert -1</code> will result in no change to the image sequence.</p>
4772
4773<p>The <code>+insert</code> option is equivalent to <code>-insert -1</code>. In
4774other words, insert the last image, at the end of the current image sequence.
4775Consequently this has no effect on the image sequence order.</p>
4776
4777<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004778 <h3><a id="intensity"></a>-intensity <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004779</div>
4780
4781<p class="magick-description">method to generate intensity value from pixel.</p>
4782
4783<p>ImageMagick provides a number of methods used in situations where an
4784operator needs to determine a single grayscale value for some purpose, from
4785an image with red, green, and blue pixel components. Typically the linear
4786<code>Rec709Luminance</code> formula is used, which is the same formula used when
4787converting images to <code>-colorspace gray</code>. </p>
4788
4789<p>The following formulas are currently provided, and will first convert
4790the pixel values to linear-RGB or non-linear sRGB colorspace before
4791being applied to calculate the final greyscale value. </p>
4792
Cristy49380402017-06-29 11:24:55 -04004793<dl class="row">
4794<dt class="col-md-4">Rec601Luma</dt><dd class="col-md-8"> 0.298839R' + 0.586811G'+ 0.114350B'</dd>
4795<dt class="col-md-4">Rec601Luminance</dt><dd class="col-md-8"> 0.298839R + 0.586811G + 0.114350B</dd>
4796<dt class="col-md-4">Rec709Luma</dt><dd class="col-md-8"> 0.212656R' + 0.715158G' + 0.072186B'</dd>
4797<dt class="col-md-4">Rec709Luminance</dt><dd class="col-md-8"> 0.212656R + 0.715158G + 0.072186B</dd>
4798<dt class="col-md-4">Brightness</dt><dd class="col-md-8"> max(R', G', B')</dd>
4799<dt class="col-md-4">Lightness</dt><dd class="col-md-8"> (min(R', G', B') + max(R', G', B')) / 2.0</dd>
Cristy882d9f42015-10-29 16:48:39 -04004800</dl>
4801
4802<p>Note that the above R,G,B values is the image's linear-RGB values, while
4803R',G',B' are sRGB non-linear values. </p>
4804
4805<p>These intensity methods are mathematical in nature and will use the
4806current value in the images respective R,G,B channel regardless of
4807what that is, or what colorspace the image is currently using.</p>
4808
Cristy49380402017-06-29 11:24:55 -04004809<dl class="row">
4810<dt class="col-md-4">Average</dt><dd class="col-md-8">(R + G + B) / 3.0</dd>
4811<dt class="col-md-4">MS</dt><dd class="col-md-8">(R^2 + G^2 + B^2) / 3.0</dd>
4812<dt class="col-md-4">RMS</dt><dd class="col-md-8">sqrt( (R^2 + G^2 + B^2) / 3.0 )</dd>
Cristy882d9f42015-10-29 16:48:39 -04004813</dl>
4814
4815<p>These methods are often used for other purposes, such as generating a
Cristy594d2772015-11-15 10:47:42 -05004816grayscale difference image between two color images (using <a href="command-line-options.html#compose"
4817>-compose</a> '<code>Difference</code>' composition. </p>
Cristy882d9f42015-10-29 16:48:39 -04004818
4819<p> For example The 'MS' (Mean Squared) setting is good for minimizing color
4820error comparisions. While... The method 'RMS' (Root Mean Squared) for
4821example is appropriate for calculating color vector distance, from a color
Cristy594d2772015-11-15 10:47:42 -05004822difference image. This is equivalent to the color only component of the <a
4823href="command-line-options.html#fuzz" >-fuzz</a> factor color compare setting. </p>
Cristy882d9f42015-10-29 16:48:39 -04004824
Cristy594d2772015-11-15 10:47:42 -05004825<p>See also <a href="command-line-options.html#grayscale" >-grayscale</a> which applies one of the above
4826grayscaling formula directly to an image without setting the <a
4827href="command-line-options.html#intensity" >-intensity</a> setting.</p>
Cristy882d9f42015-10-29 16:48:39 -04004828
Cristy594d2772015-11-15 10:47:42 -05004829<p>The <a href="command-line-options.html#colorspace" >-colorspace gray</a> image conversion also uses
Cristy882d9f42015-10-29 16:48:39 -04004830the current intensity setting, but will always convert the image to the
4831appropriate sRGB or linear-RGB colorspace before appling the above
4832function.</p>
4833
4834<p>To print a complete list of possible pixel intensity setting methods, use <a href="command-line-options.html#list">-list intensity</a>.</p>
4835
Cristy594d2772015-11-15 10:47:42 -05004836<p>Operators affected by the <a href="command-line-options.html#intensity" >-intensity</a> setting include:</p>
Cristy882d9f42015-10-29 16:48:39 -04004837
Cristy49380402017-06-29 11:24:55 -04004838<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004839-adaptive-blur
4840-adaptive-sharpen
4841-black-threshold
4842-clut (when mapping greyscale CLUT image to alpha channel if set by -channels)
4843-colors for gray colorspace
4844-compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}
4845-contrast-stretch
4846-distort {ErodeIntensity, DilateIntensity}
4847-normalize
4848-random-threshold
4849-selective-blur
4850-shade
4851-threshold
4852-tint
4853-white-threshold
Cristy49380402017-06-29 11:24:55 -04004854</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004855
4856<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004857 <h3><a id="intent"></a>-intent <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004858</div>
4859
4860<p class="magick-description">use this type of rendering intent when managing the image color.</p>
4861
4862<p>Use this option to affect the color management operation of an image (see
4863<a href="command-line-options.html#profile">-profile</a>). Choose from these intents: <code>Absolute,
4864Perceptual, Relative, Saturation</code>.</p>
4865
4866<p>The default intent is Perceptual for the sRGB colorspace and undefined for the RGB and gray colorspaces.</p>
4867
4868<p>To print a complete list of rendering intents, use <a href="command-line-options.html#list">-list intent</a>.</p>
4869
4870<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004871 <h3><a id="interlace"></a>-interlace <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004872</div>
4873
4874<p class="magick-description">the type of interlacing scheme.</p>
4875
4876<p>Choose from:</p>
4877
Cristy49380402017-06-29 11:24:55 -04004878<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004879none
4880line
4881plane
4882partition
4883JPEG
4884GIF
4885PNG
Cristy49380402017-06-29 11:24:55 -04004886</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004887
4888<p>This option is used to specify the type of interlacing scheme for raw image
4889formats such as <code>RGB</code> or <code>YUV</code>.</p>
4890
4891<p><code>None</code> means do not interlace (RGBRGBRGBRGBRGBRGB...),</p>
4892
4893<p><code>Line</code> uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and.</p>
4894
4895<p><code>Plane</code> uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...).</p>
4896
4897<p><code>Partition</code> is like plane except the different planes are saved to
4898individual files (e.g. image.R, image.G, and image.B).</p>
4899
4900<p>Use <code>Line</code> or <code>Plane</code> to create an <code>interlaced
4901PNG</code> or <code>GIF</code> or <code>progressive JPEG</code> image.</p>
4902
4903<p>To print a complete list of interlacing schemes, use <a href="command-line-options.html#list">-list
4904interlace</a>.</p>
4905
4906<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004907 <h3><a id="interpolate"></a>-interpolate <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004908</div>
4909
4910<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>
4911
4912<p>When looking up the color of a pixel using a non-integer floating point
4913value, you typically fall in between the pixel colors defined by the source
4914image. This setting determines how the color is determined from the colors of
4915the pixels surrounding that point. That is how to determine the color of a
4916point that falls between two, or even four different colored pixels. </p>
4917
Cristy49380402017-06-29 11:24:55 -04004918<dl class="row">
4919 <dt class="col-md-4">integer</dt>
4920 <dd class="col-md-8">The color of the top-left pixel (floor function)</dd>
4921 <dt class="col-md-4">nearest-neighbor</dt>
4922 <dd class="col-md-8">The nearest pixel to the lookup point (rounded function)</dd>
4923 <dt class="col-md-4">average</dt>
4924 <dd class="col-md-8">The average color of the surrounding four pixels</dd>
4925 <dt class="col-md-4">bilinear</dt>
4926 <dd class="col-md-8">A double linear interpolation of pixels (the default)</dd>
4927 <dt class="col-md-4">mesh</dt>
4928 <dd class="col-md-8">Divide area into two flat triangular interpolations</dd>
4929 <dt class="col-md-4">bicubic</dt>
4930 <dd class="col-md-8">Fitted bicubic-spines of surrounding 16 pixels</dd>
4931 <dt class="col-md-4">spline</dt>
4932 <dd class="col-md-8">Direct spline curves (colors are blurred)</dd>
4933 <dt class="col-md-4">filter</dt>
4934 <dd class="col-md-8">Use resize <a href="command-line-options.html#filter">-filter</a> settings</dd>
Cristy882d9f42015-10-29 16:48:39 -04004935</dl>
4936
Cristy594d2772015-11-15 10:47:42 -05004937<p>This most important for distortion operators such as <a href="command-line-options.html#distort"
4938>-distort</a>, <a href="command-line-options.html#implode" >-implode</a>, <a href="command-line-options.html#transform"
4939>-transform</a> and <a href="command-line-options.html#fx" >-fx</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04004940
4941<p>To print a complete list of interpolation methods, use <a href="command-line-options.html#list">-list interpolate</a>.</p>
4942
Cristy594d2772015-11-15 10:47:42 -05004943<p>See also <a href="command-line-options.html#virtual-pixel" >-virtual-pixel</a>, for control of the
Cristy882d9f42015-10-29 16:48:39 -04004944lookup for positions outside the boundaries of the image. </p>
4945
4946
4947<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004948 <h3><a id="interline-spacing"></a>-interline-spacing <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004949</div>
4950
4951<p class="magick-description">the space between two text lines.</p>
4952
4953<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004954 <h3><a id="interword-spacing"></a>-interword-spacing <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004955</div>
4956
4957<p class="magick-description">the space between two words.</p>
4958
4959<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004960 <h3><a id="kerning"></a>-kerning <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004961</div>
4962
4963<p class="magick-description">the space between two letters.</p>
4964
4965<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004966 <h3><a id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>x<var>sigma</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004967</div>
4968
4969<p class="magick-description">edge preserving noise reduction filter.</p>
4970
Cristy594d2772015-11-15 10:47:42 -05004971<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>
Cristy882d9f42015-10-29 16:48:39 -04004972
4973
4974<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04004975 <h3><a id="label"></a>-label <var>name</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04004976</div>
4977
4978<p class="magick-description">assign a label to an image.</p>
4979
4980<p>Use this option to assign a specific label to the image, as it is read in
Cristy594d2772015-11-15 10:47:42 -05004981or created. You can use the <a href="command-line-options.html#set" >-set</a> operation to re-assign
Cristy882d9f42015-10-29 16:48:39 -04004982a the labels of images already read in. Image formats such as TIFF, PNG,
4983MIFF, supports saving the label information with the image.</p>
4984
4985<p>When saving an image to a <var>PostScript</var> file, any label
4986assigned to an image is used as a header string to print above the postscript
4987image. </p>
4988
4989<p>You can include the image filename, type, width, height, or other image
4990attribute by embedding special format character. See <a href="escape.html">Format and Print Image
4991Properties</a> for details of the percent escape codes.</p>
4992
4993<p>For example,</p>
4994
Cristy49380402017-06-29 11:24:55 -04004995<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04004996-label "%m:%f %wx%h" bird.miff
Cristy49380402017-06-29 11:24:55 -04004997</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04004998
4999<p>assigns an image label of <code>MIFF:bird.miff 512x480</code> to the
5000"<code>bird.miff</code>" image and whose width is 512 and height is 480, as it
5001is read in. If a <a href="command-line-options.html#label">+label</a> option was used instead, any
5002existing label present in the image would be used. You can remove all labels
5003from an image by assigning the empty string. </p>
5004
5005<p>A label is not drawn on the image, but is embedded in the image datastream
5006via <var>Label</var> tag or similar mechanism. If you want the label to be
5007visible on the image itself, use the <a href="command-line-options.html#draw">-draw</a> option, or
5008during the final processing in the creation of an image montage.</p>
5009
5010<p>If the first character of <var>string</var> is <var>@</var>, the image label is read from a file titled by the
5011remaining characters in the string. Labels in a file are literal, no embedded
5012formatting characters are recognized.</p>
5013
5014
5015<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005016 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04005017</div>
5018
5019<p class="magick-description">perform local adaptive threshold.</p>
5020
5021<p>Adaptively threshold each pixel based on the value of pixels in a
5022surrounding window. If the current pixel is lighter than this average plus
5023the optional <code>offset</code>, then it is made white, otherwise it is made
5024black. Small variations in pixel values such as found in scanned documents
5025can be ignored if offset is positive. A negative offset will make it more
5026sensitive to those small variations. </p>
5027
5028<p>This is commonly used to threshold images with an uneven background. It is
5029based on the assumption that average color of the small window is the
5030the local background color, from which to separate the foreground color. </p>
5031
5032
5033<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005034 <h3><a id="layers"></a>-layers <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005035</div>
5036
5037<p class="magick-description">handle multiple images forming a set of image layers or animation frames.</p>
5038
5039<p>Perform various image operation methods to a ordered sequence of images
5040which may represent either a set of overlaid 'image layers', a GIF disposal
5041animation, or a fully-'coalesced' animation sequence. </p>
5042
Cristy49380402017-06-29 11:24:55 -04005043<table class="table table-sm table-striped">
Cristy882d9f42015-10-29 16:48:39 -04005044 <tbody>
5045 <tr>
5046 <th style="width: 8%">Method</th>
5047 <th>Description</th>
5048 </tr>
5049
5050 <tr>
5051 <td>compare-any</td>
5052 <td>Crop the second and later frames to the smallest rectangle
Cristy594d2772015-11-15 10:47:42 -05005053 that contains all the differences between the two images. No GIF <a
5054 href="command-line-options.html#dispose" >-dispose</a> methods are taken into account. </td>
Cristy882d9f42015-10-29 16:48:39 -04005055 </tr>
5056
Cristy594d2772015-11-15 10:47:42 -05005057 <tr><td></td><td>This exactly the same as the <a href="command-line-options.html#deconstruct"
5058 >-deconstruct</a> operator, and does not preserve animations normal
Cristy882d9f42015-10-29 16:48:39 -04005059 working, especially when animation used layer disposal methods such as
5060 '<code>Previous</code>' or '<code>Background</code>'. </td>
5061 </tr>
5062
5063 <tr>
5064 <td>compare-clear</td>
5065 <td>As '<code>compare-any</code>' but crop to the bounds of any
5066 opaque pixels which become transparent in the second frame. That is the
5067 smallest image needed to mask or erase pixels for the next frame. </td>
5068 </tr>
5069
5070 <tr>
5071 <td>compare-overlay</td>
5072 <td>As '<code>compare-any</code>' but crop to pixels that add
5073 extra color to the next image, as a result of overlaying color pixels.
5074 That is the smallest single overlaid image to add or change colors. </td>
5075 </tr>
5076
Cristy594d2772015-11-15 10:47:42 -05005077 <tr><td></td><td>This can be used with the <a href="command-line-options.html#compose" >-compose</a> alpha
Cristy882d9f42015-10-29 16:48:39 -04005078 composition method '<code>change-mask</code>', to reduce the image to
5079 just the pixels that need to be overlaid. </td>
5080 </tr>
5081
5082 <tr>
5083 <td>coalesce</td>
Cristy594d2772015-11-15 10:47:42 -05005084 <td>Equivalent to a call to the <a href="command-line-options.html#coalesce"
5085 >-coalesce</a> operator. Apply the layer disposal methods set in the
Cristy882d9f42015-10-29 16:48:39 -04005086 current image sequence to form a fully defined animation sequence, as
5087 it should be displayed. Effectively converting a GIF animation into a
5088 'film strip'-like animation. </td>
5089 </tr>
5090
5091 <tr>
5092 <td>composite</td>
5093 <td>Alpha Composition of two image lists, separated by a
5094 "<code>null:</code>" image, with the destination image list first, and
5095 the source images last. An image from each list are composited
5096 together until one list is finished. The separator image and source
5097 image lists are removed. </td>
5098 </tr>
5099
5100
5101 <tr><td></td>
Cristy594d2772015-11-15 10:47:42 -05005102 <td>The <a href="command-line-options.html#geometry" >-geometry</a> offset is adjusted according
5103 to <a href="command-line-options.html#gravity" >-gravity</a> in accordance of the virtual
5104 canvas size of the first image in each list. Unlike a normal <a
5105 href="command-line-options.html#composite" >-composite</a> operation, the canvas offset is also
Cristy882d9f42015-10-29 16:48:39 -04005106 added to the final composite positioning of each image. </td> </tr>
5107
5108 <tr><td></td>
5109 <td>If one of the image lists only contains one image, that image is
5110 applied to all the images in the other image list, regardless of which
5111 list it is. In this case it is the image meta-data of the list which
5112 preserved. </td>
5113 </tr>
5114
5115
5116 <tr>
5117 <td>dispose</td>
5118 <td>This like '<code>coalesce</code>' but shows the look of
5119 the animation after the layer disposal method has been applied, before
5120 the next sub-frame image is overlaid. That is the 'dispose' image that
Cristy594d2772015-11-15 10:47:42 -05005121 results from the application of the GIF <a href="command-line-options.html#dispose"
5122 >-dispose</a> method. This allows you to check what
Cristy882d9f42015-10-29 16:48:39 -04005123 is going wrong with a particular animation you may be developing.
5124 </td>
5125 </tr>
5126
5127 <tr>
5128 <td>flatten</td>
5129 <td>Create a canvas the size of the first images virtual
Cristy594d2772015-11-15 10:47:42 -05005130 canvas using the current <a href="command-line-options.html#background" >-background</a> color,
5131 and <a href="command-line-options.html#compose" >-compose</a> each image in turn onto that
Cristy882d9f42015-10-29 16:48:39 -04005132 canvas. Images falling outside that canvas is clipped. Final
5133 image will have a zero virtual canvas offset. </td>
5134 </tr>
5135
5136 <tr><td></td>
5137 <td>This usually used as one of the final 'image layering' operations
5138 overlaying all the prepared image layers into a final image. </td>
5139 </tr>
5140
5141 <tr><td></td>
5142 <td>For a single image this method can also be used to fillout a virtual
5143 canvas with real pixels, or to underlay an opaque color to remove
5144 transparency from an image.</td>
5145 </tr>
5146
5147
5148 <tr>
5149 <td>merge</td>
5150 <td>As 'flatten' method but merging all the given image
5151 layers to create a new layer image just large enough to hold all the
5152 image without clipping or extra space. The new images virtual offset
5153 will preserve the position of the new layer, even if this offset is
5154 negative. The virtual canvas size of the first image is preserved.
5155 </td>
5156 </tr>
5157
5158 <tr><td></td><td>Caution is advised when handling image layers with
5159 negative offsets as few image file formats handle them correctly.
Cristy594d2772015-11-15 10:47:42 -05005160 Following this operation method with <a href="command-line-options.html#repage" >+repage</a>
Cristy882d9f42015-10-29 16:48:39 -04005161 will remove the layer offset, and create an image in which all the
5162 overlaid image positions relative to each other is preserved, though
5163 not necessarily exactly where you specified them.
5164 </td>
5165 </tr>
5166
5167 <tr><td></td><td>See also 'trim-bounds' below which is closely related but
5168 without doing the'flatten' to merge the images together. </td>
5169 </tr>
5170
5171 <tr>
5172 <td>mosaic</td>
5173 <td>As 'flatten' method but expanding the initial canvas size
5174 of the first image in a positive direction only so as to hold all the
5175 image layers. However as a virtual canvas is 'locked' to the origin,
5176 by its own definition, image layers with a negative offsets will still
5177 become clipped by the top and left edges. See 'merge' or 'trim-bounds'
5178 if this could be a problem. </td>
5179
5180 </tr>
5181
5182 <tr><td></td><td>This method is commonly used to layout individual image
5183 using various offset but without knowing the final canvas size. The
5184 resulting image will, like 'flatten' not have any virtual offset, so
5185 can be saved to any image file format. </td>
5186 </tr>
5187
5188
5189 <tr>
5190 <td>optimize</td>
5191 <td>Optimize a coalesced animation, into GIF animation using
5192 a number of general techniques. This currently a short cut to
5193 apply both the '<code>optimize-frame</code>', and
5194 '<code>optimize-transparency</code>' methods but may be expanded to
5195 include other optimization methods as they are developed. </td>
5196 </tr>
5197
5198 <tr>
5199 <td>optimize-frame</td>
5200 <td>Optimize a coalesced animation, into GIF animation by
5201 reducing the number of pixels per frame as much as possible by
5202 attempting to pick the best layer disposal method to use, while ensuring
5203 the result will continue to animate properly. </td>
5204 </tr>
5205
5206 <tr><td></td><td> There is no guarantee that the best optimization is found.
5207 But then no reasonably fast GIF optimization algorithm can do this.
5208 However this does seem to do better than most other GIF frame
5209 optimizers seen. </td>
5210 </tr>
5211
5212 <tr>
5213 <td>optimize-plus</td>
5214 <td>As '<code>optimize-frame</code>' but attempt to improve the
5215 overall optimization by adding extra frames to the animation, without
5216 changing the final look or timing of the animation. The frames are
5217 added to attempt to separate the clearing of pixels from the
5218 overlaying of new additional pixels from one animation frame to the
5219 next. If this does not improve the optimization (for the next frame
5220 only), it will fall back to the results of the previous normal
5221 '<code>optimize-frame</code>' technique. </td>
5222 </tr>
5223
5224 <tr><td></td><td>There is the possibility that the change in the disposal
5225 style will result in a worsening in the optimization of later frames,
5226 though this is unlikely. In other words there no guarantee that it is
5227 better than the normal '<code>optimize-frame</code>' technique. For some
5228 animations however you can get a vast improvement in the final
5229 animation size. </td>
5230 </tr>
5231
5232 <tr>
5233 <td>optimize-transparency</td>
5234 <td>Given a GIF animation, replace any pixel in the sub-frame
5235 overlay images with transparency, if it does not change the resulting
Cristy594d2772015-11-15 10:47:42 -05005236 animation by more than the current <a href="command-line-options.html#fuzz" >-fuzz</a> factor.
Cristy882d9f42015-10-29 16:48:39 -04005237 </td>
5238 </tr>
5239
5240 <tr><td></td><td>This should allow a existing frame optimized GIF animation
5241 to compress into a smaller file size due to larger areas of one
5242 (transparent) color rather than a pattern of multiple colors repeating
5243 the current disposed image of the last frame. </td>
5244 </tr>
5245
5246 <tr>
5247 <td>remove-dups</td>
5248 <td>Remove (and merge time delays) of duplicate consecutive
5249 images, so as to simplify layer overlays of coalesced animations.
5250 </td>
5251 </tr>
5252
5253 <tr><td></td><td>Usually this a result of using a constant time delay
5254 across the whole animation, or after a larger animation was split into
5255 smaller sub-animations. The duplicate frames could also have been
5256 used as part of some frame optimization methods. </td>
5257 </tr>
5258
5259 <tr>
5260 <td>remove-zero</td>
5261 <td>Remove any image with a zero time delay, unless ALL the
5262 images have a zero time delay (and is not a proper timed animation, a
5263 warning is then issued). </td>
5264 </tr>
5265
5266 <tr><td></td><td>In a GIF animation, such images are usually frames which
5267 provide partial intermediary updates between the frames that are
5268 actually displayed to users. These frames are usually added for
5269 improved frame optimization in GIF animations. </td>
5270 </tr>
5271
5272 <tr>
5273 <td>trim-bounds</td>
5274 <td>Find the bounds of all the images in the current
5275 image sequence, then adjust the offsets so all images are contained on
5276 a minimal positive canvas. None of the image data is modified or
5277 merged, only the individual image virtual canvas size and offset.
5278 All the images is given the same canvas size, and and will have
5279 a positive offset, but will remain in the same position relative to
5280 each other. As a result of the minimal canvas size at least one image
5281 will touch every edge of that canvas. The image data touching those
5282 edges however may be transparent. </td>
5283 </tr>
5284
5285 <tr><td></td><td>The result is much like if you used 'merge' followed by a
Cristy594d2772015-11-15 10:47:42 -05005286 <a href="command-line-options.html#repage" >+repage</a> option, except that all the images
Cristy882d9f42015-10-29 16:48:39 -04005287 have been kept separate. If 'flatten' is used after using
5288 'trim-bounds' you will get the same result. </td>
5289 </tr>
5290
5291 </tbody>
5292</table>
5293
5294<p>To print a complete list of layer types, use <a href="command-line-options.html#list">-list layers</a>.</p>
5295
Cristy594d2772015-11-15 10:47:42 -05005296<p>The operators <a href="command-line-options.html#coalesce" >-coalesce</a>, <a href="command-line-options.html#deconstruct"
5297>-deconstruct</a>, <a href="command-line-options.html#flatten" >-flatten</a>, and <a href="command-line-options.html#mosaic"
5298>-mosaic</a> are only aliases for the above methods and may be depreciated in
5299the future. Also see <a href="command-line-options.html#page" >-page</a>, <a href="command-line-options.html#repage"
5300>-repage</a> operators, the <a href="command-line-options.html#compose" >-compose</a> setting, and the
5301GIF <a href="command-line-options.html#dispose" >-dispose</a> and <a href="command-line-options.html#delay" >-delay</a>
Cristy882d9f42015-10-29 16:48:39 -04005302settings. </p>
5303
5304
5305<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005306 <h3><a id="level"></a>-level <var>black_point</var>{,<var>white_point</var>}{<var>%</var>}{,<var>gamma</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04005307</div>
5308
5309<p class="magick-description">adjust the level of image channels.</p>
5310
5311<p>Given one, two or three values delimited with commas: black-point,
5312white-point, gamma (for example: 10,250,1.0 or 2%,98%,0.5). The black and
5313white points range from 0 to <var>QuantumRange</var>, or from 0 to
5314100%; if the white point is omitted it is set to (<var>QuantumRange</var> - black_point), so as to center contrast changes.
5315If a <code>%</code> sign is present anywhere in the string, both black and white
Cristy594d2772015-11-15 10:47:42 -05005316points are percentages of the full color range. Gamma will do a <a
5317href="command-line-options.html#gamma">-gamma</a> adjustment of the values. If it is omitted, the
Cristy882d9f42015-10-29 16:48:39 -04005318default of 1.0 (no gamma correction) is assumed.</p>
5319
5320<p>In normal usage (<code>-level</code>) the image values are stretched so that
5321the given '<code>black_point</code>' value in the original image is set to zero
5322(or black), while the given '<code>white_point</code>' value is set to <var>QuantumRange</var> (or white). This provides you with direct
5323contrast adjustments to the image. The '<code>gamma</code>' of the resulting
5324image will then be adjusted. </p>
5325
5326<p>From ImageMagick v6.4.1-9 using the plus form of the operator
5327(<code>+level</code>) or adding the special '!' flag anywhere in the argument
5328list, will cause the operator to do the reverse of the level adjustment. That
5329is a zero, or <var>QuantumRange</var> value (black, and white, resp.)
5330in the original image, is adjusted to the given level values, allowing you to
5331de-contrast, or compress the channel values within the image. The
5332'<code>gamma</code>' is adjusted before the level adjustment to de-contrast the
5333image is made. </p>
5334
5335<p>Only the channels defined by the current <a href="command-line-options.html#channel">-channel</a>
5336setting are adjusted (defaults to RGB color channels only), allowing you to
5337limit the effect of this operator. </p>
5338
5339<p>Please note that the transparency channel is treated as 'matte'
5340values (0 is opaque) and not as 'alpha' values (0 is transparent).</p>
5341
5342
5343<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005344 <h3><a id="level-colors"></a>-level-colors {<var>black_color</var>}{,}{<var>white_color</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04005345</div>
5346
5347<p class="magick-description">adjust the level of an image using the provided dash separated colors.</p>
5348
5349<p>This function is exactly like <a href="command-line-options.html#level">-level</a>, except that the
5350value value for each color channel is determined by the
5351'<code>black_color</code>' and '<code>white_color</code>' colors given (as
5352described under the <a href="command-line-options.html#fill">-fill</a> option). </p>
5353
5354<p>This effectually means the colors provided to <code>-level-colors</code>
5355is mapped to become 'black' and 'white' respectively, with all the other
5356colors linearly adjusted (or clipped) to match that change. Each channel is
5357adjusted separately using the channel values of the colors specified. </p>
5358
5359<p>On the other hand the plus form of the operator (<code>+level-colors</code>)
5360will map the image color 'black' and 'white' to the given colors
5361respectively, resulting in a gradient (de-contrasting) tint of the image to
Cristy769d8892016-01-19 18:11:14 -05005362those colors. This can also be used to convert a plain grayscale image into a
Cristy882d9f42015-10-29 16:48:39 -04005363one using the gradient of colors specified. </p>
5364
5365<p>By supplying a single color with a comma separator either before or after
5366that color, will just replace the respective 'black' or 'white' point
5367respectively. But if no comma separator is provided, the given color is
5368used for both the black and white color points, making the operator either
5369threshold the images around that color (- form) or set all colors to that
5370color (+ form). </p>
5371
5372
5373<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005374 <h3><a id="limit"></a>-limit <var>type value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005375</div>
5376
5377<p class="magick-description">Set the pixel cache resource limit.</p>
5378
Cristye09ed312016-03-06 08:07:39 -05005379<p>Choose from: <code>width</code>, <code>height</code>, <code>area</code>, <code>memory</code>, <code>map</code>, <code>disk</code>, <code>file</code>, <code>thread</code>, <code>throttle</code>, or <code>time</code>.</p>
Cristy882d9f42015-10-29 16:48:39 -04005380
5381<p>The value for <code>file</code> is in number of files. The other limits are
5382in bytes. Define arguments for the memory, map, area, and disk resource limits
5383with SI prefixes (.e.g 100MB).</p>
5384
5385<p>By default the limits are 768 files, 3GB of image area, 1.5GiB memory, 3GiB
5386memory map, and 18.45EB of disk. These limits are adjusted relative to the
5387available resources on your computer if this information is available. When
5388any limit is reached, ImageMagick fails in some fashion but attempts to take
5389compensating actions, if possible. For example, the following limits
5390memory:</p>
5391
Cristy49380402017-06-29 11:24:55 -04005392<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005393-limit memory 32MiB -limit map 64MiB
Cristy49380402017-06-29 11:24:55 -04005394</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005395
5396<p>Use <a href="command-line-options.html#list">-list resource</a> to list the current limits. For example, our system shows these limits:</p>
5397
Cristy49380402017-06-29 11:24:55 -04005398<pre><code>
Cristy594d2772015-11-15 10:47:42 -05005399-> identify -list resource
Cristy882d9f42015-10-29 16:48:39 -04005400Resource limits:
5401 Width: 100MP
5402 Height: 100MP
5403 Area: 25.181GB
5404 Memory: 11.726GiB
5405 Map: 23.452GiB
5406 Disk: unlimited
5407 File: 768
5408 Thread: 12
5409 Throttle: 0
5410 Time: unlimited
Cristy49380402017-06-29 11:24:55 -04005411</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005412
5413<p>Requests for pixel storage to keep intermediate images are satisfied by one
5414of three resource categories: in-memory pool, memory-mapped files pool, and
Cristy594d2772015-11-15 10:47:42 -05005415disk pool (in that order) depending on the <a href="command-line-options.html#limit">&#x2011;limit</a> settings
Cristy882d9f42015-10-29 16:48:39 -04005416and whether the system honors a resource request. If the total size of
5417allocated pixel storage in the given pool reaches the corresponding limit, the
5418request is passed to the next pool. Additionally, requests that exceed the
5419<code>area</code> limit automagically are allocated on disk.</p>
5420
5421<p>To illustrate how ImageMagick utilizes resource limits, consider a typical
5422image resource request. First, ImageMagick tries to allocate the pixels in
5423memory. The request might be denied if the resource request exceeds the
5424<code>memory</code> limit or if the system does not honor the request. If
5425a memory request is not honored, the pixels are allocated to disk and the file
5426is memory-mapped. However, if the allocation request exceeds the
5427<code>map</code> limit, the resource allocation goes to disk. In all cases, if
5428the resource request exceeds the <code>area</code> limit, the pixels are
5429automagically cached to disk. If the disk has a hard limit, the program
5430fails.</p>
5431
5432<p>In most cases you simply do not need to concern yourself with resource
5433limits. ImageMagick chooses reasonable defaults and most images do not tax
5434your computer resources. Where limits do come in handy is when you process
5435images that are large or on shared systems where ImageMagick can consume all
5436or most of the available memory. In this case, the ImageMagick workflow slows
5437other processes or, in extreme cases, brings the system to a halt. Under
5438these circumstances, setting limits give some assurances that the ImageMagick
5439workflow will not interfere with other concurrent uses of the computer. For
5440example, assume you have a web interface that processes images uploaded from
5441the Internet. To assure ImageMagick does not exceed 10MiB of memory you can
5442simply set the area limit to 10MiB:</p>
5443
Cristy49380402017-06-29 11:24:55 -04005444<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005445-limit area 10MB
Cristy49380402017-06-29 11:24:55 -04005446</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005447
5448<p>Now whenever a large image is processed, the pixels are automagically
5449cached to disk instead of memory. This of course implies that large images
5450typically process very slowly, simply because pixel processing in memory can
5451be an order of magnitude faster than on disk. Because your web site users
5452might inadvertently upload a huge image to process, you should set a disk
5453limit as well:</p>
5454
Cristy49380402017-06-29 11:24:55 -04005455<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005456-limit area 10MB -limit disk 500MB
Cristy49380402017-06-29 11:24:55 -04005457</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005458
5459<p>Here ImageMagick stops processing if an image requires more than 500MB of disk storage.</p>
5460
5461<p>In addition to command-line resource limit option, resources can be set
Cristy594d2772015-11-15 10:47:42 -05005462with <a href="resources.html#environment" >environment variables</a>. Set the
Cristy882d9f42015-10-29 16:48:39 -04005463environment variables <code>MAGICK_AREA_LIMIT</code>,
5464<code>MAGICK_DISK_LIMIT</code>, <code>MAGICK_FILE_LIMIT</code>,
5465<code>MAGICK_MEMORY_LIMIT</code>, <code>MAGICK_MAP_LIMIT</code>,
5466<code>MAGICK_THREAD_LIMIT</code>, <code>MAGICK_TIME_LIMIT</code> for limits of
5467image area, disk space, open files, heap memory, memory map, number of threads
5468of execution, and maximum elapsed time in seconds respectively.</p>
5469
5470<p> Inquisitive users can try adding <a href="command-line-options.html#debug">-debug cache</a> to
5471their commands and then scouring the generated output for references to the
5472pixel cache, in order to determine how the pixel cache was allocated and how
5473resources were consumed. Advanced Unix/Linux users can pipe that output
5474through <code>grep memory|open|destroy|disk</code> for more readable sifting.
5475</p>
5476
5477<p>For more about ImageMagick's use of resources, see the section <b>Cache
Cristy594d2772015-11-15 10:47:42 -05005478Storage and Resource Requirements</b> on the <a href="architecture.html#cache
5479">Architecture</a> page. </p>
Cristy882d9f42015-10-29 16:48:39 -04005480
5481<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005482 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04005483</div>
5484
5485<p class="magick-description">Linear with saturation stretch.</p>
5486
Cristy594d2772015-11-15 10:47:42 -05005487<p>This is very similar to <a href="command-line-options.html#contrast-stretch" >-contrast-stretch</a>,
Cristy882d9f42015-10-29 16:48:39 -04005488and uses a 'histogram bin' to determine the range of color values that needs to
Cristy594d2772015-11-15 10:47:42 -05005489be stretched. However it then stretches those colors using the <a
5490href="command-line-options.html#level" >-level</a> operator.</p>
Cristy882d9f42015-10-29 16:48:39 -04005491
5492<p>As such while the initial determination may have 'binning' round off
5493effects, the image colors are stretched mathematically, rather than using the
5494histogram bins. This makes the operator more accurate. </p>
5495
Cristy594d2772015-11-15 10:47:42 -05005496<p>note however that a <a href="command-line-options.html#linear-stretch" >-linear-stretch</a> of
Cristy882d9f42015-10-29 16:48:39 -04005497'<code>0</code>' does nothing, while a value of '<code>1</code>' does a near
5498perfect stretch of the color range. </p>
5499
Cristy594d2772015-11-15 10:47:42 -05005500<p>See also <a href="command-line-options.html#auto-level" >-auto-level</a> for a 'perfect'
Cristy882d9f42015-10-29 16:48:39 -04005501normalization of mathematical images. </p>
5502
5503<p>This operator is under review for re-development. </p>
5504
5505
5506<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005507 <h3><a id="linewidth"></a>-linewidth</h3>
Cristy882d9f42015-10-29 16:48:39 -04005508</div>
5509
5510<p class="magick-description">the line width for subsequent draw operations.</p>
5511
5512<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005513 <h3><a id="liquid-rescale"></a>-liquid-rescale <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005514</div>
5515
5516<p class="magick-description">rescale image with seam-carving.</p>
5517
5518<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
5519
5520<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005521 <h3><a id="list"></a>-list <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005522</div>
5523
5524<p class="magick-description">Print a list of supported arguments for various options or settings. Choose from these list types:</p>
5525
Cristy49380402017-06-29 11:24:55 -04005526<pre class="pre-scrollable"><code>
Cristy882d9f42015-10-29 16:48:39 -04005527Align
5528Alpha
5529Boolean
5530Cache
5531Channel
5532Class
5533ClipPath
5534Coder
5535Color
5536Colorspace
5537Command
5538Complex
5539Compose
5540Compress
5541Configure
5542DataType
5543Debug
5544Decoration
5545Delegate
5546Direction
5547Dispose
5548Distort
5549Dither
5550Endian
5551Evaluate
5552FillRule
5553Filter
5554Font
5555Format
5556Function
5557Gravity
5558Intensity
5559Intent
5560Interlace
5561Interpolate
5562Kernel
5563Layers
5564LineCap
5565LineJoin
5566List
5567Locale
5568LogEvent
5569Log
5570Magic
5571Method
5572Metric
5573Mime
5574Mode
5575Morphology
5576Module
5577Noise
5578Orientation
5579PixelIntensity
5580Policy
5581PolicyDomain
5582PolicyRights
5583Preview
5584Primitive
5585QuantumFormat
5586Resource
5587SparseColor
5588Statistic
5589Storage
5590Stretch
5591Style
5592Threshold
5593Type
5594Units
5595Validate
5596VirtualPixel
Cristy49380402017-06-29 11:24:55 -04005597</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005598
5599<p>These lists vary depending on your version of ImageMagick. Use "<code>-list
5600list</code>" to get a complete listing of all the "<code>-list</code>" arguments
5601available:</p>
5602
Cristy49380402017-06-29 11:24:55 -04005603<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005604identify -list list
Cristy49380402017-06-29 11:24:55 -04005605</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005606
5607<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005608 <h3><a id="log"></a>-log <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005609</div>
5610
5611<p class="magick-description">Specify format for debug log.</p>
5612
Cristy594d2772015-11-15 10:47:42 -05005613<p>This option specifies the format for the log printed when the <a
5614href="command-line-options.html#debug">-debug</a> option is active.</p>
Cristy882d9f42015-10-29 16:48:39 -04005615
5616<p>You can display the following components by embedding special format
5617characters:</p>
5618
Cristy49380402017-06-29 11:24:55 -04005619<dl class="row">
5620<dt class="col-md-4">%d</dt><dd class="col-md-8">domain</dd>
5621<dt class="col-md-4">%e</dt><dd class="col-md-8">event</dd>
5622<dt class="col-md-4">%f</dt><dd class="col-md-8">function</dd>
5623<dt class="col-md-4">%l</dt><dd class="col-md-8">line</dd>
5624<dt class="col-md-4">%m</dt><dd class="col-md-8">module</dd>
5625<dt class="col-md-4">%p</dt><dd class="col-md-8">process ID</dd>
5626<dt class="col-md-4">%r</dt><dd class="col-md-8">real CPU time</dd>
5627<dt class="col-md-4">%t</dt><dd class="col-md-8">wall clock time</dd>
5628<dt class="col-md-4">%u</dt><dd class="col-md-8">user CPU time</dd>
5629<dt class="col-md-4">%%</dt><dd class="col-md-8">percent sign</dd>
5630<dt class="col-md-4">\n</dt><dd class="col-md-8">newline</dd>
5631<dt class="col-md-4">\r</dt><dd class="col-md-8">carriage return</dd>
Cristy882d9f42015-10-29 16:48:39 -04005632</dl>
5633
5634<p>For example:</p>
5635
Cristy49380402017-06-29 11:24:55 -04005636<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005637convert -debug coders -log "%u %m:%l %e" in.gif out.png
Cristy49380402017-06-29 11:24:55 -04005638</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005639
5640<p>The default behavior is to print all of the components.</p>
5641
5642<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005643 <h3><a id="loop"></a>-loop <var>iterations</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005644</div>
5645
5646<p class="magick-description">add Netscape loop extension to your GIF animation.</p>
5647
5648<p>Set iterations to zero to repeat the animation an infinite number of times,
5649otherwise the animation repeats itself up to <var>iterations</var>
5650times.</p>
5651
5652<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005653 <h3><a id="lowlight-color"></a>-lowlight-color <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005654</div>
5655
5656<p class="magick-description">when comparing images, de-emphasize pixel differences with this color.</p>
5657
5658<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005659 <h3><a id="magnify"></a>-magnify</h3>
Cristy882d9f42015-10-29 16:48:39 -04005660</div>
5661
5662<p class="magick-description">double the size of the image with pixel art scaling.</p>
5663
5664
5665<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005666 <h3><a id="map"></a>-map <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005667</div>
5668
5669<p class="magick-description">Display image using this <var>type</var>.</p>
5670
5671<p>Choose from these <var>Standard Colormap</var> types:</p>
5672
Cristy49380402017-06-29 11:24:55 -04005673<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005674best
5675default
5676gray
5677red
5678green
5679blue
Cristy49380402017-06-29 11:24:55 -04005680</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005681
5682<p>The <var>X server</var> must support the <var>Standard
5683Colormap</var> you choose, otherwise an error occurs. Use <code>list</code> as
5684the type and <code>display</code> searches the list of colormap types in
5685<code>top-to-bottom</code> order until one is located. See <var>xstdcmap(1)</var> for one way of creating Standard Colormaps.</p>
5686
5687
5688<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005689 <h3><a id="map_stream_"></a>-map <var>components</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005690</div>
5691
5692<p class="magick-description">pixel map.</p>
5693
5694<p>Here are the valid components of a map:</p>
5695
Cristy49380402017-06-29 11:24:55 -04005696<dl class="row">
5697<dt class="col-md-4">r</dt><dd class="col-md-8"> red pixel component</dd>
5698<dt class="col-md-4">g</dt><dd class="col-md-8"> green pixel component</dd>
5699<dt class="col-md-4">b</dt><dd class="col-md-8"> blue pixel component</dd>
5700<dt class="col-md-4">a</dt><dd class="col-md-8"> alpha pixel component (0 is transparent)</dd>
5701<dt class="col-md-4">o</dt><dd class="col-md-8"> opacity pixel component (0 is opaque)</dd>
5702<dt class="col-md-4">i</dt><dd class="col-md-8"> grayscale intensity pixel component</dd>
5703<dt class="col-md-4">c</dt><dd class="col-md-8"> cyan pixel component</dd>
5704<dt class="col-md-4">m</dt><dd class="col-md-8"> magenta pixel component</dd>
5705<dt class="col-md-4">y</dt><dd class="col-md-8"> yellow pixel component</dd>
5706<dt class="col-md-4">k</dt><dd class="col-md-8"> black pixel component</dd>
5707<dt class="col-md-4">p</dt><dd class="col-md-8"> pad component (always 0)</dd>
Cristy882d9f42015-10-29 16:48:39 -04005708</dl>
5709
5710<p>You can specify as many of these components as needed in any order (e.g.
5711bgr). The components can repeat as well (e.g. rgbr).</p>
5712
5713
5714<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005715 <h3><a id="mattecolor"></a>-mattecolor <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005716</div>
5717
5718<p class="magick-description">Specify the color to be used with the <a href="command-line-options.html#frame">-frame</a> option.</p>
5719
5720<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
5721
Cristy594d2772015-11-15 10:47:42 -05005722<p>The default matte color is <code>#BDBDBD</code>, <span
5723style="background-color: #bdbdbd;">this shade of gray</span>.</p>
Cristy882d9f42015-10-29 16:48:39 -04005724
5725<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005726 <h3><a id="maximum"></a>-maximum</h3>
Cristy882d9f42015-10-29 16:48:39 -04005727</div>
5728
5729<p class="magick-description">return the maximum intensity of an image sequence.</p>
5730
5731<p>Select the 'maximum' value from all the surrounding pixels. </p>
5732
Cristy594d2772015-11-15 10:47:42 -05005733<p>This is legacy option from the <a href="command-line-options.html#statistic" >method</a> of the same
Cristy882d9f42015-10-29 16:48:39 -04005734name. </p>
5735
5736<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005737 <h3><a id="median"></a>-median <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005738</div>
5739
5740<p class="magick-description">apply a median filter to the image.</p>
5741
5742<p>Select the 'middle' value from all the surrounding pixels. </p>
5743
Cristy594d2772015-11-15 10:47:42 -05005744<p>This is legacy option from the <a href="command-line-options.html#statistic" >method</a> of the same
Cristy882d9f42015-10-29 16:48:39 -04005745name. </p>
5746
5747<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005748 <h3><a id="mean-shift"></a>-mean-shift <var>width</var>x<var>height</var>{<var>+distance</var>{%}</h3>
Cristy882d9f42015-10-29 16:48:39 -04005749</div>
5750
5751<p class="magick-description">image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
5752
5753<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>
5754
5755<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>
5756
5757<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005758 <h3><a id="metric"></a>-metric <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005759</div>
5760
5761<p class="magick-description">Output to STDERR a measure of the differences between images according to the <var>type</var> given metric.</p>
5762
5763<p>Choose from:</p>
5764
Cristy49380402017-06-29 11:24:55 -04005765<dl class="row">
5766<dt class="col-md-4">AE</dt><dd class="col-md-8"> absolute error count, number of different pixels (-fuzz effected)</dd>
5767<dt class="col-md-4">FUZZ</dt><dd class="col-md-8"> mean color distance</dd>
5768<dt class="col-md-4">MAE</dt><dd class="col-md-8"> mean absolute error (normalized), average channel error distance</dd>
5769<dt class="col-md-4">MEPP</dt><dd class="col-md-8"> mean error per pixel (normalized mean error, normalized peak error)</dd>
5770<dt class="col-md-4">MSE</dt><dd class="col-md-8"> mean error squared, average of the channel error squared</dd>
5771<dt class="col-md-4">NCC</dt><dd class="col-md-8"> normalized cross correlation</dd>
5772<dt class="col-md-4">PAE</dt><dd class="col-md-8"> peak absolute (normalized peak absolute)</dd>
5773<dt class="col-md-4">PHASH</dt><dd class="col-md-8"> perceptual hash for the sRGB and HCLp colorspaces. Specify an alternative colorspace with <code>-define phash:colorspaces=<var>colorspace,colorspace,...</var></code></dd>
5774<dt class="col-md-4">PSNR</dt><dd class="col-md-8"> peak signal to noise ratio</dd>
5775<dt class="col-md-4">RMSE</dt><dd class="col-md-8"> root mean squared (normalized root mean squared)</dd>
Cristy882d9f42015-10-29 16:48:39 -04005776</dl>
5777
5778<p>Control the '<code>AE</code>', or absolute count of pixels that are different,
Cristy594d2772015-11-15 10:47:42 -05005779with the <a href="command-line-options.html#fuzz" >-fuzz</a> factor (ignore pixels which
Cristy882d9f42015-10-29 16:48:39 -04005780only changed by a small amount). Use '<code>PAE</code>' to find the
Cristy594d2772015-11-15 10:47:42 -05005781size of the <a href="command-line-options.html#fuzz" >-fuzz</a> factor needed to make all pixels
Cristy882d9f42015-10-29 16:48:39 -04005782'similar', while '<code>MAE</code>' determines the factor needed
5783for about half the pixels to be similar. </p>
5784
5785<p>The '<code>MEPP</code>' metric returns three different metrics
5786('<code>MAE</code>', '<code>MAE</code>' normalized, and '<code>PAE</code>'
5787normalized) from a single comparison run. </p>
5788
5789<p>To print a complete list of metrics, use the <a href="command-line-options.html#list">-list
5790metric</a> option.</p>
5791
5792
5793<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005794 <h3><a id="minimum"></a>-minimum</h3>
Cristy882d9f42015-10-29 16:48:39 -04005795</div>
5796
5797<p class="magick-description">return the minimum intensity of an image sequence.</p>
5798
5799<p>Select the 'minimal' value from all the surrounding pixels. </p>
5800
Cristy594d2772015-11-15 10:47:42 -05005801<p>This is legacy option from the <a href="command-line-options.html#statistic" >method</a> of the same
Cristy882d9f42015-10-29 16:48:39 -04005802name. </p>
5803
5804
5805
5806<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005807 <h3><a id="mode"></a>-mode <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005808</div>
5809
5810<p class="magick-description">make each pixel the \'predominant color\' of the neighborhood.'</p>
5811
5812<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005813 <h3>-mode <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005814</div>
5815
5816<p class="magick-description">Mode of operation.</p>
5817
5818<p>Choose the <var>value</var> from these styles: <code>Frame,
5819Unframe, or Concatenate</code></p>
5820
Cristy594d2772015-11-15 10:47:42 -05005821<p>Use the <a href="command-line-options.html#list" >-list</a> option with a '<code>Mode</code>' argument
5822for a list of <a href="command-line-options.html#mode" >-mode</a> arguments available in your
Cristy882d9f42015-10-29 16:48:39 -04005823ImageMagick installation.</p>
5824
5825
5826<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005827 <h3><a id="modulate"></a>-modulate <var>brightness</var>[,<var>saturation</var>,<var>hue</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -04005828</div>
5829
5830<p class="magick-description">Vary the <var>brightness</var>, <var>saturation</var>, and <var>hue</var> of an image.</p>
5831
5832<p>The arguments are given as a percentages of variation. A value of 100 means
5833no change, and any missing values are taken to mean 100.</p>
5834
5835<p>The <var>brightness</var> is a multiplier of the overall
5836brightness of the image, so 0 means pure black, 50 is half as bright, 200 is
5837twice as bright. To invert its meaning <a href="command-line-options.html#negate">-negate</a> the image
5838before and after. </p>
5839
5840<p>The <var>saturation</var> controls the amount of color in an
5841image. For example, 0 produce a grayscale image, while a large value such as
5842200 produce a very colorful, 'cartoonish' color.</p>
5843
5844<p>The <var>hue</var> argument causes a "rotation" of the colors
5845within the image by the amount specified. For example, 50 results in
5846a counter-clockwise rotation of 90, mapping red shades to purple, and so on.
5847A value of either 0 or 200 results in a complete 180 degree rotation of the
5848image. Using a value of 300 is a 360 degree rotation resulting in no change to
5849the original image. </p>
5850
5851<p>For example, to increase the color brightness by 20% and decrease the color
Cristy594d2772015-11-15 10:47:42 -05005852saturation by 10% and leave the hue unchanged, use <a
5853href="command-line-options.html#modulate">-modulate 120,90</a>.</p>
Cristy882d9f42015-10-29 16:48:39 -04005854
Cristy594d2772015-11-15 10:47:42 -05005855<p>Use <a href="command-line-options.html#set">-set</a> attribute of '<code
5856>option:modulate:colorspace</code>' to specify which colorspace to
Cristy882d9f42015-10-29 16:48:39 -04005857modulate. 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>
5858
Cristy49380402017-06-29 11:24:55 -04005859<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005860convert image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png
Cristy49380402017-06-29 11:24:55 -04005861</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005862
5863<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005864 <h3><a id="moments"></a>-moments</h3>
Cristy882d9f42015-10-29 16:48:39 -04005865</div>
5866
5867<p class="magick-description">report image moments and perceptual hash.</p>
5868
5869
5870<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005871 <h3><a id="monitor"></a>-monitor</h3>
Cristy882d9f42015-10-29 16:48:39 -04005872</div>
5873
5874<p class="magick-description">monitor progress.</p>
5875
5876
5877<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005878 <h3><a id="monochrome"></a>-monochrome</h3>
Cristy882d9f42015-10-29 16:48:39 -04005879</div>
5880
5881<p class="magick-description">transform the image to black and white.</p>
5882
5883<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005884 <h3><a id="morph"></a>-morph <var>frames</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005885</div>
5886
5887<p class="magick-description">morphs an image sequence.</p>
5888
5889<p>Both the image pixels and size are linearly interpolated to give the
5890appearance of a metamorphosis from one image to the next, over all the images
Cristy594d2772015-11-15 10:47:42 -05005891in the current image list. The added images are the equivalent of a <a
5892href="command-line-options.html#blend">-blend</a> composition. The <var>frames</var>
Cristy882d9f42015-10-29 16:48:39 -04005893argument determine how many images to interpolate between each image. </p>
5894
5895
5896<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005897 <h3><a id="morphology"></a>-morphology</h3>
5898 <h3>-morphology <var>method</var> <var>kernel</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005899</div>
5900
5901<p class="magick-description">apply a morphology method to the image.</p>
5902
Cristy594d2772015-11-15 10:47:42 -05005903<p>Until I get around to writing an option summary for this, see <a
Cristy364a72f2016-11-04 22:38:41 -04005904href="https://www.imagemagick.org/Usage/morphology/" >IM Usage Examples,
Cristy882d9f42015-10-29 16:48:39 -04005905Morphology</a>. </p>
5906
5907
5908<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005909 <h3><a id="mosaic"></a>-mosaic</h3>
Cristy882d9f42015-10-29 16:48:39 -04005910</div>
5911
Cristy594d2772015-11-15 10:47:42 -05005912<p class="magick-description">an simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "mosaic"</p>
Cristy882d9f42015-10-29 16:48:39 -04005913
5914
5915<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005916 <h3><a id="motion-blur"></a>-motion-blur <var>radius</var><br />-motion-blur <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04005917</div>
5918
5919<p class="magick-description">simulate motion blur.</p>
5920
5921<p>Blur with the given radius, standard deviation (sigma), and angle. The
5922angle given is the angle toward which the image is blurred. That is the
5923direction people would consider the object is coming from. </p>
5924
5925<p>Note that the blur is not uniform distribution, giving the motion a
5926definite sense of direction of movement. </p>
5927
5928<p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine how
5929pixels which are outside the image proper are blurred into the final result.
5930</p>
5931
5932<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005933 <h3><a id="name"></a>-name</h3>
Cristy882d9f42015-10-29 16:48:39 -04005934</div>
5935
5936<p class="magick-description">name an image.</p>
5937<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005938 <h3><a id="negate"></a>-negate</h3>
Cristy882d9f42015-10-29 16:48:39 -04005939</div>
5940
5941<p class="magick-description">replace each pixel with its complementary color.</p>
5942
5943<p>The red, green, and blue intensities of an image are negated. White becomes
5944black, yellow becomes blue, etc. Use <a href="command-line-options.html#negate">+negate</a> to only
5945negate the grayscale pixels of the image.</p>
5946
5947<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005948 <h3><a id="noise"></a>-noise <var>geometry</var><br/>
Cristy882d9f42015-10-29 16:48:39 -04005949 +noise <var>type</var></h3>
5950</div>
5951
5952<p class="magick-description">Add or reduce noise in an image.</p>
5953
5954<p>The principal function of noise peak elimination filter is to smooth the
5955objects within an image without losing edge information and without creating
5956undesired structures. The central idea of the algorithm is to replace a pixel
5957with its next neighbor in value within a pixel window, if this pixel has been
5958found to be noise. A pixel is defined as noise if and only if this pixel is
5959a maximum or minimum within the pixel window.</p>
5960
5961<p>Use <code><a href="command-line-options.html#noise">-noise</a> <var>radius</var></code> to
5962specify the width of the neighborhood when reducing noise. This is equivalent
Cristy594d2772015-11-15 10:47:42 -05005963to using a <code><a href="command-line-options.html#statistic" >-statistic</a> NonPeak</code> operation,
Cristy882d9f42015-10-29 16:48:39 -04005964which should be used in preference.</p>
5965
5966<p>Use <a href="command-line-options.html#noise">+noise</a> followed by a noise <var>type</var> to add noise to an image. Choose from these noise
5967types:</p>
5968
Cristy49380402017-06-29 11:24:55 -04005969<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04005970Gaussian
5971Impulse
5972Laplacian
5973Multiplicative
5974Poisson
5975Random
5976Uniform
Cristy49380402017-06-29 11:24:55 -04005977</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04005978
Cristy594d2772015-11-15 10:47:42 -05005979<p>The amount of noise added can be controlled by the <code><a
5980href="command-line-options.html#attenuate" >-attenuate</a></code> setting. If unset the value is
Cristy882d9f42015-10-29 16:48:39 -04005981equivalent to 1.0, or a maximum noise addition.</p>
5982
5983<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>
5984
5985<p>To print a complete list of noises, use the <a href="command-line-options.html#list">-list noise</a> option.</p>
5986
5987<p>Also see the <a href="command-line-options.html#evaluate">-evaluate</a> noise functions that allows
5988the use of a controlling value to specify the amount of noise that should be
5989added to an image. </p>
5990
5991
5992<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04005993 <h3><a id="normalize"></a>-normalize</h3>
Cristy882d9f42015-10-29 16:48:39 -04005994</div>
5995
5996<p class="magick-description">Increase the contrast in an image by <var>stretching</var> the range of intensity values.</p>
5997
5998<p>The intensity values are stretched to cover the entire range of possible
5999values. While doing so, black-out at most <var>2%</var> of the pixels and
6000white-out at most <var>1%</var> of the pixels.</p>
6001
Cristy594d2772015-11-15 10:47:42 -05006002<p>Note that as of ImageMagick 6.4.7-0, <a href="command-line-options.html#normalize" >-normalize</a>
6003is equivalent to <a href="command-line-options.html#contrast-stretch" >-contrast-stretch 2%x1%</a>.
6004(Before this version, it was equivalent to <a href="command-line-options.html#contrast-stretch"
6005>-contrast-stretch 2%x99%</a>).</p>
Cristy882d9f42015-10-29 16:48:39 -04006006
Cristy769d8892016-01-19 18:11:14 -05006007<p>All the channels are normalized in concert by the same amount so as to
Cristy594d2772015-11-15 10:47:42 -05006008preserve color integrity, when the default <a href="command-line-options.html#channel" >+channel</a>
6009setting is in use. Specifying any other <a href="command-line-options.html#channel" >-channel</a>
Cristy882d9f42015-10-29 16:48:39 -04006010setting will normalize the RGB channels independently.</p>
6011
Cristy594d2772015-11-15 10:47:42 -05006012<p>See <a href="command-line-options.html#contrast-stretch" >-contrast-stretch</a> for more details.
6013Also see <a href="command-line-options.html#auto-level" >-auto-level</a> for a 'perfect' normalization
Cristy882d9f42015-10-29 16:48:39 -04006014that is better suited to mathematically generated images. </p>
6015
6016<p>This operator is under review for re-development. </p>
6017
6018
6019<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006020 <h3><a id="opaque"></a>-opaque <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006021</div>
6022
6023<p class="magick-description">change this color to the fill color within the image.</p>
6024
6025<p>The <var>color</var> argument is defined using the format
Cristy594d2772015-11-15 10:47:42 -05006026described under the <a href="command-line-options.html#fill" >-fill</a> option. The <a href="command-line-options.html#fuzz"
6027>-fuzz</a> setting can be used to match and replace colors similar to the one
Cristy882d9f42015-10-29 16:48:39 -04006028given.</p>
6029
6030<p>Use <a href="command-line-options.html#opaque">+opaque</a> to paint any pixel that does not match
6031the target color. </p>
6032
6033<p>The <a href="command-line-options.html#transparent">-transparent</a> operator is exactly the same
Cristy594d2772015-11-15 10:47:42 -05006034as <a href="command-line-options.html#opaque" >-opaque</a> but replaces the matching color with
Cristy882d9f42015-10-29 16:48:39 -04006035transparency rather than the current <a href="command-line-options.html#fill">-fill</a> color setting.
6036To ensure that it can do this it also ensures that the image has an alpha
Cristy594d2772015-11-15 10:47:42 -05006037channel enabled, as per "<code><a href="command-line-options.html#alpha" >-alpha</a> set</code>", for
6038the new transparent colors, and does not require you to modify the <a
6039href="command-line-options.html#channel">-channel</a> to enable alpha channel handling. </p>
Cristy882d9f42015-10-29 16:48:39 -04006040
6041
6042<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006043 <h3><a id="ordered-dither"></a>-ordered-dither <var>threshold_map</var>{,<var>level</var>...}</h3>
Cristy882d9f42015-10-29 16:48:39 -04006044</div>
6045
6046<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
6047given number of <var>levels</var> per color channel.</p>
6048
6049<p>You can choose from these standard threshold maps:</p>
6050
Cristy49380402017-06-29 11:24:55 -04006051<pre class="pre-scrollable"><code>
Cristy882d9f42015-10-29 16:48:39 -04006052threshold 1x1 Threshold 1x1 (non-dither)
6053checks 2x1 Checkerboard 2x1 (dither)
6054o2x2 2x2 Ordered 2x2 (dispersed)
6055o3x3 3x3 Ordered 3x3 (dispersed)
6056o4x4 4x4 Ordered 4x4 (dispersed)
6057o8x8 8x8 Ordered 8x8 (dispersed)
6058h3x4a 4x1 Halftone 4x4 (angled)
6059h6x6a 6x1 Halftone 6x6 (angled)
6060h8x8a 8x1 Halftone 8x8 (angled)
6061h3x4o Halftone 4x4 (orthogonal)
6062h6x6o Halftone 6x6 (orthogonal)
6063h8x8o Halftone 8x8 (orthogonal)
6064h36x16o Halftone 16x16 (orthogonal)
6065c5x5b c5x5 Circles 5x5 (black)
6066c5x5w Circles 5x5 (white)
6067c6x6b c6x6 Circles 6x6 (black)
6068c6x6w Circles 6x6 (white)
6069c7x7b c7x7 Circles 7x7 (black)
6070c7x7w Circles 7x7 (white)
Cristy49380402017-06-29 11:24:55 -04006071</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006072
6073<p> The <code>threshold</code> generated a simple 50% threshold of the image.
Cristy594d2772015-11-15 10:47:42 -05006074This could be used with <var >level</var> to do the equivalent of <a
6075href="command-line-options.html#posterize" >-posterize</a> to reduce an image to basic primary colors.
Cristy882d9f42015-10-29 16:48:39 -04006076</p>
6077
6078<p>The <code>checks</code> pattern produces a 3 level checkerboard dither
6079pattern. That is a grayscale will become a pattern of solid black, solid
6080white, and mid-tone colors into a checkerboard pattern of black and white.
6081</p>
6082
Cristy594d2772015-11-15 10:47:42 -05006083<p>You can define your own <var >threshold map</var> for ordered
Cristy882d9f42015-10-29 16:48:39 -04006084dithering and halftoning your images, in either personal or system
Cristy594d2772015-11-15 10:47:42 -05006085<code>thresholds.xml</code> XML file. See <a href="resources.html" >Resources</a>
Cristy882d9f42015-10-29 16:48:39 -04006086for more details of configuration files. </p>
6087
6088<p>To print a complete list of the thresholds that have been defined, use the
Cristy594d2772015-11-15 10:47:42 -05006089<a href="command-line-options.html#list" >-list threshold</a> option.</p>
Cristy882d9f42015-10-29 16:48:39 -04006090
6091<p>Note that at this time the same threshold dithering map is used for all
6092color channels, no attempt is made to offset or rotate the map for different
6093channels is made, to create an offset printing effect. Also as the maps are
6094simple threshold levels, the halftone and circle maps will create incomplete
6095circles along the edges of a colored area. Also all the effects are purely
6096on/off boolean effects, without anti-aliasing to make the circles smooth
6097looking. Large dots can be made to look better with a small amount of blurring
6098after being created. </p>
6099
6100
6101<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006102 <h3><a id="orient"></a>-orient <var>image orientation</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006103</div>
6104
6105<p class="magick-description">specify orientation of a digital camera image.</p>
6106
6107<p>Choose from these orientations:</p>
6108
Cristy49380402017-06-29 11:24:55 -04006109<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006110bottom-left right-top
6111bottom-right top-left
6112left-bottom top-right
6113left-top undefined
6114right-bottom
Cristy49380402017-06-29 11:24:55 -04006115</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006116
Cristy594d2772015-11-15 10:47:42 -05006117<p>To print a complete list of orientations, use the <a href="command-line-options.html#list" >-list
Cristy882d9f42015-10-29 16:48:39 -04006118orientation</a> option.</p>
6119
6120
6121<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006122 <h3><a id="page"></a>-page <var>geometry</var><br/>
Cristy594d2772015-11-15 10:47:42 -05006123 -page <var>media</var>[<var>offset</var>][{<var>^!&lt;&gt;</var>}]<br/>
Cristy882d9f42015-10-29 16:48:39 -04006124 +page
6125 </h3>
6126</div>
6127
6128<p class="magick-description">Set the size and location of an image on the larger virtual canvas.</p>
6129
6130<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
6131
6132<p>For convenience you can specify the page size using <var>media</var> (see below). Offsets can then be added as with other
Cristy594d2772015-11-15 10:47:42 -05006133<var>geometry</var> arguments (e.g. <a
6134href="command-line-options.html#page">-page</a> <code>Letter+43+43</code>).</p>
Cristy882d9f42015-10-29 16:48:39 -04006135
6136<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.
6137The choices for a PostScript page are:</p>
6138
Cristy49380402017-06-29 11:24:55 -04006139<dl class="row">
6140<dt class="col-md-4"> 11x17 </dt> <dd class="col-md-8"> 792 x 1224</dd>
6141<dt class="col-md-4"> Ledger </dt> <dd class="col-md-8"> 1224 x 792</dd>
6142<dt class="col-md-4"> Legal </dt> <dd class="col-md-8"> 612 x 1008</dd>
6143<dt class="col-md-4"> Letter </dt> <dd class="col-md-8"> 612 x 792</dd>
6144<dt class="col-md-4"> LetterSmall</dt> <dd class="col-md-8"> 612 x 792</dd>
6145<dt class="col-md-4"> ArchE </dt> <dd class="col-md-8"> 2592 x 3456</dd>
6146<dt class="col-md-4"> ArchD </dt> <dd class="col-md-8"> 1728 x 2592</dd>
6147<dt class="col-md-4"> ArchC </dt> <dd class="col-md-8"> 1296 x 1728</dd>
6148<dt class="col-md-4"> ArchB </dt> <dd class="col-md-8"> 864 x 1296</dd>
6149<dt class="col-md-4"> ArchA </dt> <dd class="col-md-8"> 648 x 864</dd>
6150<dt class="col-md-4"> A0 </dt> <dd class="col-md-8"> 2380 x 3368</dd>
6151<dt class="col-md-4"> A1 </dt> <dd class="col-md-8"> 1684 x 2380</dd>
6152<dt class="col-md-4"> A2 </dt> <dd class="col-md-8"> 1190 x 1684</dd>
6153<dt class="col-md-4"> A3 </dt> <dd class="col-md-8"> 842 x 1190</dd>
6154<dt class="col-md-4"> A4 </dt> <dd class="col-md-8"> 595 x 842</dd>
6155<dt class="col-md-4"> A4Small </dt> <dd class="col-md-8"> 595 x 842</dd>
6156<dt class="col-md-4"> A5 </dt> <dd class="col-md-8"> 421 x 595</dd>
6157<dt class="col-md-4"> A6 </dt> <dd class="col-md-8"> 297 x 421</dd>
6158<dt class="col-md-4"> A7 </dt> <dd class="col-md-8"> 210 x 297</dd>
6159<dt class="col-md-4"> A8 </dt> <dd class="col-md-8"> 148 x 210</dd>
6160<dt class="col-md-4"> A9 </dt> <dd class="col-md-8"> 105 x 148</dd>
6161<dt class="col-md-4"> A10 </dt> <dd class="col-md-8"> 74 x 105</dd>
6162<dt class="col-md-4"> B0 </dt> <dd class="col-md-8"> 2836 x 4008</dd>
6163<dt class="col-md-4"> B1 </dt> <dd class="col-md-8"> 2004 x 2836</dd>
6164<dt class="col-md-4"> B2 </dt> <dd class="col-md-8"> 1418 x 2004</dd>
6165<dt class="col-md-4"> B3 </dt> <dd class="col-md-8"> 1002 x 1418</dd>
6166<dt class="col-md-4"> B4 </dt> <dd class="col-md-8"> 709 x 1002</dd>
6167<dt class="col-md-4"> B5 </dt> <dd class="col-md-8"> 501 x 709</dd>
6168<dt class="col-md-4"> C0 </dt> <dd class="col-md-8"> 2600 x 3677</dd>
6169<dt class="col-md-4"> C1 </dt> <dd class="col-md-8"> 1837 x 2600</dd>
6170<dt class="col-md-4"> C2 </dt> <dd class="col-md-8"> 1298 x 1837</dd>
6171<dt class="col-md-4"> C3 </dt> <dd class="col-md-8"> 918 x 1298</dd>
6172<dt class="col-md-4"> C4 </dt> <dd class="col-md-8"> 649 x 918</dd>
6173<dt class="col-md-4"> C5 </dt> <dd class="col-md-8"> 459 x 649</dd>
6174<dt class="col-md-4"> C6 </dt> <dd class="col-md-8"> 323 x 459</dd>
6175<dt class="col-md-4"> Flsa </dt> <dd class="col-md-8"> 612 x 936</dd>
6176<dt class="col-md-4"> Flse </dt> <dd class="col-md-8"> 612 x 936</dd>
6177<dt class="col-md-4"> HalfLetter </dt> <dd class="col-md-8"> 396 x 612</dd>
Cristy882d9f42015-10-29 16:48:39 -04006178</dl>
6179
6180<p>This option is also used to place subimages when writing to a multi-image
6181format that supports offsets, such as GIF89 and MNG. When used for this
6182purpose the offsets are always measured from the top left corner of the canvas
6183and are not affected by the <a href="command-line-options.html#gravity">-gravity</a> option. To
6184position a GIF or MNG image, use <a href="command-line-options.html#page">-page</a><var>{+-}x{+-}y</var> (e.g. -page +100+200). When writing to a MNG
6185file, a <a href="command-line-options.html#page">-page</a> option appearing ahead of the first image in
6186the sequence with nonzero width and height defines the width and height values
6187that are written in the <code>MHDR</code> chunk. Otherwise, the MNG width and
6188height are computed from the bounding box that contains all images in the
6189sequence. When writing a GIF89 file, only the bounding box method is used to
6190determine its dimensions.</p>
6191
Cristy594d2772015-11-15 10:47:42 -05006192<p>For a PostScript page, the image is sized as in <a
6193href="command-line-options.html#geometry">-geometry</a> but positioned relative to the <var>lower
6194left-hand corner</var> of the page by {+-}<code>x</code><var>offset</var>{+-}<code>y</code> <var>offset</var>. Use <a
6195href="command-line-options.html#page">-page 612x792</a>, for example, to center the image within the
Cristy882d9f42015-10-29 16:48:39 -04006196page. If the image size exceeds the PostScript page, it is reduced to fit the
6197page. The default gravity for the <a href="command-line-options.html#page">-page</a> option is <var>NorthWest</var>, i.e., positive <code>x</code> and <code>y</code> <var>offset</var> are measured rightward and downward from the top left
6198corner of the page, unless the <a href="command-line-options.html#gravity">-gravity</a> option is
6199present with a value other than <var>NorthWest</var>.</p>
6200
6201<p>The default page dimensions for a TEXT image is 612x792.</p>
6202
6203<p>This option is used in concert with <a href="command-line-options.html#density">-density</a>.</p>
6204
6205<p>Use <a href="command-line-options.html#page">+page</a> to remove the page settings for an image.</p>
6206
6207<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006208 <h3><a id="paint"></a>-paint <var>radius</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006209</div>
6210
6211<p class="magick-description">simulate an oil painting.</p>
6212
6213<p>Each pixel is replaced by the most frequent color in a circular
6214neighborhood whose width is specified with <var>radius</var>.</p>
6215
6216<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006217 <h3><a id="path"></a>-path <var>path</var></h3></div>
Cristy882d9f42015-10-29 16:48:39 -04006218
6219<p class="magick-description">write images to this path on disk.</p>
6220
6221<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006222 <h3><a id="pause_animate_"></a>-pause <var>seconds</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006223</div>
6224
6225<p class="magick-description">Pause between animation loops</p>
6226
6227<p>Pause for the specified number of seconds before repeating the animation.</p>
6228
6229<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006230 <h3><a id="pause_import_"></a>-pause <var>seconds</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006231</div>
6232
6233<p class="magick-description">Pause between snapshots.</p>
6234
6235<p>Pause for the specified number of seconds before taking the next snapshot.</p>
6236
6237<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006238 <h3><a id="perceptible"></a>-perceptible <var>epsilon</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006239</div>
6240
6241<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>
6242
6243<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006244 <h3><a id="ping"></a>-ping</h3>
Cristy882d9f42015-10-29 16:48:39 -04006245</div>
6246
6247<p class="magick-description">efficiently determine image characteristics.</p>
6248
6249<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006250 <h3><a id="pointsize"></a>-pointsize <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006251</div>
6252
6253<p class="magick-description">pointsize of the PostScript, OPTION1, or TrueType font.</p>
6254
6255<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006256 <h3><a id="polaroid"></a>-polaroid <var>angle</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006257</div>
6258
6259<p class="magick-description">simulate a Polaroid picture.</p>
6260
6261<p>Use <code>+polaroid</code> to rotate the image at a random angle between -15 and +15 degrees.</p>
6262
6263<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006264 <h3><a id="poly"></a>-poly <var>"wt,exp ..."</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006265</div>
6266
6267<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>
6268
6269<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>
6270
6271<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>
6272
6273<p>The format is: <var>output = wt1*image1^exp1 + wt2*image2^exp2 </var>...</p>
6274
6275<p>Some simple uses are:</p>
6276<ul>
6277<li>A weighted sum of each image provided all weights add to unity and all exponents=1. If the the weights are all equal to 1/(number of images), then this is equivalent to <a href="command-line-options.html#profile">-evaluate-sequence</a> <var>mean</var>.</li>
6278<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>
6279</ul>
6280
6281<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>
6282
6283<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>
6284
6285
6286<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006287 <h3><a id="posterize"></a>-posterize <var>levels</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006288</div>
6289
6290<p class="magick-description">reduce the image to a limited number of color levels per channel.</p>
6291
6292<p>Very low values of <var>levels</var>, e.g., 2, 3, 4, have the most
6293visible effect.</p>
6294
6295<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006296 <h3><a id="precision"></a>-precision <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006297</div>
6298
6299<p class="magick-description">set the maximum number of significant digits to be printed.</p>
6300
6301<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006302 <h3><a id="preview"></a>-preview <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006303</div>
6304
6305<p class="magick-description">image preview type.</p>
6306
6307<p>Use this option to affect the preview operation of an image (e.g.
6308<code>convert file.png -preview Gamma Preview:gamma.png</code>). Choose from
6309these previews:</p>
6310
Cristy49380402017-06-29 11:24:55 -04006311<pre class="pre-scrollable"><code>
Cristy882d9f42015-10-29 16:48:39 -04006312AddNoise
6313Blur
6314Brightness
6315Charcoal
6316Despeckle
6317Dull
6318EdgeDetect
6319Gamma
6320Grayscale
6321Hue
6322Implode
6323JPEG
6324OilPaint
6325Quantize
6326Raise
6327ReduceNoise
6328Roll
6329Rotate
6330Saturation
6331Segment
6332Shade
6333Sharpen
6334Shear
6335Solarize
6336Spiff
6337Spread
6338Swirl
6339Threshold
6340Wave
Cristy49380402017-06-29 11:24:55 -04006341</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006342
6343<p>To print a complete list of previews, use the <a href="command-line-options.html#list">-list preview</a> option.</p>
6344
6345<p>The default preview is <code>JPEG</code>.</p>
6346
6347<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006348 <h3><a id="print"></a>-print <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006349</div>
6350
6351<p class="magick-description">interpret string and print to console.</p>
6352
6353<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006354 <h3><a id="process"></a>-process <var>command</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006355</div>
6356
6357<p class="magick-description">process the image with a custom image filter.</p>
6358
6359<p>The command arguments has the form <code>"module arg1 arg2 arg3 ...
6360argN"</code> where <code>module</code> is the name of the module to invoke (e.g.
6361"Analyze") and arg1 arg2 arg3 ... argN are an arbitrary number of arguments to
6362pass to the process module.</p>
6363
6364<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006365 <h3><a id="profile"></a>-profile <var>filename</var><br/>
Cristy882d9f42015-10-29 16:48:39 -04006366 +profile <var>profile_name</var></h3>
6367</div>
6368
6369<p class="magick-description">Manage ICM, IPTC, or generic profiles in an image.</p>
6370
6371<p>Using <a href="command-line-options.html#profile">-profile</a> <var>filename</var> adds an
6372ICM (ICC color management), IPTC (newswire information), or a generic profile
6373to the image.</p>
6374
6375<p>Use <a href="command-line-options.html#profile">+profile <var>profile_name</var></a> to
6376remove the indicated profile. ImageMagick uses standard filename globbing, so
6377wildcard expressions may be used to remove more than one profile. Here we
6378remove all profiles from the image except for the XMP profile: <code>+profile
6379"!xmp,*"</code>. </p>
6380
6381<p>Use <code>identify -verbose</code> to find out which profiles are in the
6382image file. Use <a href="command-line-options.html#strip">-strip</a> to remove all profiles (and
6383comments).</p>
6384
6385<p>To extract a profile, the <a href="command-line-options.html#profile">-profile</a> option is not
6386used. Instead, simply write the file to an image format such as <var>APP1, 8BIM, ICM,</var> or <var>IPTC</var>.</p>
6387
6388<p>For example, to extract the Exif data (which is stored in JPEG files in the
6389<var>APP1</var> profile), use.</p>
6390
Cristy49380402017-06-29 11:24:55 -04006391<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006392convert cockatoo.jpg profile.exif
Cristy49380402017-06-29 11:24:55 -04006393</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006394
6395<p>It is important to note that results may depend on whether or not the
Cristy594d2772015-11-15 10:47:42 -05006396original image already has an included profile. Also, keep in mind that <a
6397href="command-line-options.html#profile">-profile</a> is an "operator" (as opposed to a "setting") and
Cristy882d9f42015-10-29 16:48:39 -04006398therefore a conversion is made each time it is encountered, in order, in the
6399command-line. For instance, in the following example, if the original image is
6400CMYK with profile, a CMYK-CMYK-RGB conversion results.</p>
6401
Cristy49380402017-06-29 11:24:55 -04006402<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006403convert CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff
Cristy49380402017-06-29 11:24:55 -04006404</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006405
6406<p>Furthermore, since ICC profiles are not necessarily symmetric, extra
6407conversion steps can yield unwanted results. CMYK profiles are often very
6408asymmetric since they involve 3−&gt;4 and 4−&gt;3 channel mapping.
6409</p>
6410
6411<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006412 <h3><a id="quality"></a>-quality <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006413</div>
6414
6415<p class="magick-description">JPEG/MIFF/PNG compression level.</p>
6416
6417<p>For the JPEG and MPEG image formats, quality is 1 (lowest image quality and
6418highest compression) to 100 (best quality but least effective compression).
6419The default is to use the estimated quality of your input image if it can
6420be determined, otherwise 92. When the quality is greater than 90, then the
6421chroma channels are not downsampled.
6422Use the <a href="command-line-options.html#sampling-factor">-sampling-factor</a> option to specify the
6423factors for chroma downsampling.</p>
6424
6425<p>For the JPEG-2000 image format, quality is mapped using a non-linear
6426equation to the compression ratio required by the Jasper library. This
6427non-linear equation is intended to loosely approximate the quality provided by
6428the JPEG v1 format. The default quality value 100, a request for non-lossy
6429compression. A quality of 75 results in a request for 16:1 compression.</p>
6430
6431<p>For the MNG and PNG image formats, the quality value sets the zlib
6432compression level (quality / 10) and filter-type (quality % 10). The default
6433PNG "quality" is 75, which means compression level 7 with adaptive PNG
6434filtering, unless the image has a color map, in which case it means
6435compression level 7 with no PNG filtering.</p>
6436
6437<p>For compression level 0 (quality value less than 10), the Huffman-only
6438strategy is used, which is fastest but not necessarily the worst
6439compression.</p>
6440
6441<p>If filter-type is 4 or less, the specified PNG filter-type is used for
6442all scanlines:</p>
6443
Cristy49380402017-06-29 11:24:55 -04006444<dl class="row">
6445<dt class="col-md-4">0</dt><dd class="col-md-8">none</dd>
6446<dt class="col-md-4">1</dt><dd class="col-md-8">sub</dd>
6447<dt class="col-md-4">2</dt><dd class="col-md-8">up</dd>
6448<dt class="col-md-4">3</dt><dd class="col-md-8">average</dd>
6449<dt class="col-md-4">4</dt><dd class="col-md-8">Paeth</dd>
Cristy882d9f42015-10-29 16:48:39 -04006450</dl>
6451
6452<p>If filter-type is 5, adaptive filtering is used when quality is greater
6453than 50 and the image does not have a color map, otherwise no filtering is
6454used.</p>
6455
6456<p>If filter-type is 6, adaptive filtering
6457with <var>minimum-sum-of-absolute-values</var> is used.</p>
6458
6459<p>Only if the output is MNG, if filter-type is 7, the LOCO color
6460transformation (intrapixel differencing) and adaptive filtering
6461with <var>minimum-sum-of-absolute-values</var> are used.</p>
6462
6463<p>If the filter-type is 8 the zlib Z_RLE compression strategy (or the
6464Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with
6465adaptive PNG filtering.</p>
6466
6467<p>If the filter-type is 9 the zlib Z_RLE compression strategy (or the
6468Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with
6469no PNG filtering.</p>
6470
6471<p>The quality setting has no effect on the appearance or signature of PNG
6472and MNG images, since the compression is always lossless.</p>
6473
6474<p>Not all combinations of compression level, strategy, and PNG filter type
6475can be obtained using the -quality option. For more precise control,
6476you can use the PNG:compression-level=N, PNG:compression-strategy=N, and
6477PNG:compression-filter=N defines, respectively, instead.
6478See <a href="command-line-options.html#define">-define</a>. Values from the defines take precedence
6479over values from the -quality option.</p>
6480
6481<p>For further information, see
6482the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>
6483
6484<p>For the MIFF and TIFF image formats, quality/10 is the <a href="command-line-options.html#compress">Zip/BZip</a> compression level, which is 0 (worst but fastest compression) to 9 (best but slowest). It has no effect on the image appearance, since the compression is always lossless.</p>
6485
6486<p>For the BPG image format, quality/2 is the actual BPG compression level (range from 0 to 51).</p>
6487
6488<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006489 <h3><a id="quantize"></a>-quantize <var>colorspace</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006490</div>
6491
6492<p class="magick-description">reduce colors using this colorspace.</p>
6493
6494<p>This setting defines the colorspace used to sort out and reduce the number
Cristy594d2772015-11-15 10:47:42 -05006495of colors needed by an image (for later dithering) by operators such as <a
6496href="command-line-options.html#colors" >-colors</a>, Note that color reduction also happens
Cristy882d9f42015-10-29 16:48:39 -04006497automatically when saving images to color-limited image file formats, such as
6498GIF, and PNG8.</p>
6499
6500
6501<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006502 <h3><a id="quiet"></a>-quiet</h3>
Cristy882d9f42015-10-29 16:48:39 -04006503</div>
6504
6505<p class="magick-description">suppress all warning messages. Error messages are still reported.</p>
6506
6507<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006508 <h3><a id="radial-blur"></a>-radial-blur <var>angle</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006509</div>
6510
6511<p class="magick-description">Blur around the center of the image.</p>
6512
6513<p>Note that this is actually a rotational blur rather than a radial and as
6514such actually mis-named. </p>
6515
6516<p>The <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> setting will determine how
6517pixels which are outside the image proper are blurred into the final result.
6518</p>
6519
6520
6521<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006522 <h3><a id="raise"></a>-raise <var>thickness</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006523</div>
6524
6525<p class="magick-description">Lighten or darken image edges.</p>
6526
6527<p>This will create a 3-D effect. Use <a href="command-line-options.html#raise">-raise</a> to create
6528a raised effect, otherwise use <a href="command-line-options.html#raise">+raise</a>. </p>
6529
Cristy594d2772015-11-15 10:47:42 -05006530<p>Unlike the similar <a href="command-line-options.html#frame">-frame</a> option, <a
6531href="command-line-options.html#raise">-raise</a> does not alter the dimensions of the image.</p>
Cristy882d9f42015-10-29 16:48:39 -04006532
6533<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006534 <h3><a id="random-threshold"></a>-random-threshold <var>low</var>x<var>high</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006535</div>
6536
6537<p class="magick-description">Apply a random threshold to the image.</p>
6538
6539<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006540 <h3><a id="read-mask"></a>-read-mask
Cristye0779712016-07-30 17:25:22 -04006541<var>filename</var></h3>
6542</div>
6543
6544<p class="magick-description">Prevent updates to image pixels specified by the mask.</p>
6545
6546<p>This the same as using a mask used for composite masking operations, with
6547grayscale values causing blended updates of the image the mask is attached to.
6548</p>
6549
6550<p>Use <a href="command-line-options.html#read-mask">+read-mask</a> to remove the mask from images.</p>
6551
6552<p>Also see <a href="command-line-options.html#clip-mask">-clip-mask</a> which work in the same way,
6553but with strict boolean masking. </p>
6554
6555<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006556 <h3><a id="red-primary"></a>-red-primary <var>x,y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006557</div>
6558
6559<p class="magick-description">Set the red chromaticity primary point.</p>
6560
6561<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006562 <h3><a id="regard-warnings"></a>-regard-warnings</h3>
Cristy882d9f42015-10-29 16:48:39 -04006563</div>
6564
6565<p class="magick-description">Pay attention to warning messages.</p>
6566
6567<p>This option causes some warnings in some image formats to be treated
6568as errors. </p>
6569
6570<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006571 <h3><a id="remap"></a>-remap <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006572</div>
6573
6574<p class="magick-description">Reduce the number of colors in an image to the colors used by this image.</p>
6575
6576<p>If the <a href="command-line-options.html#dither">-dither</a> setting is enabled (the default) then
6577the given colors are dithered over the image as necessary, otherwise the closest
6578color (in RGB colorspace) is selected to replace that pixel in the image. </p>
6579
6580<p>As a side effect of applying a <a href="command-line-options.html#remap">-remap</a> of colors across all
6581images in the current image sequence, all the images will have the same color
6582table. That means that when saved to a file format such as GIF, it will use
6583that color table as a single common or global color table, for all the images,
6584without requiring extra local color tables. </p>
6585
6586<p>Use <a href="command-line-options.html#remap">+remap</a> to reduce all images in the current image
6587sequence to use a common color map over all the images. This equivalent to
6588appending all the images together (without extra background colors) and color
6589reducing those images using <a href="command-line-options.html#colors">-colors</a> with a 256 color
6590limit, then <a href="command-line-options.html#remap">-remap</a> those colors over the original list of
6591images. This ensures all the images follow a single color map. </p>
6592
Cristy594d2772015-11-15 10:47:42 -05006593<p>If the number of colors over all the images is less than 256, then <a
6594href="command-line-options.html#remap">+remap</a> should not perform any color reduction or dithering, as
Cristy882d9f42015-10-29 16:48:39 -04006595no color changes are needed. In that case, its only effect is to force the use
Cristy594d2772015-11-15 10:47:42 -05006596of a global color table. This recommended after using either <a
6597href="command-line-options.html#colors">-colors</a> or <a href="command-line-options.html#ordered-dither">-ordered-dither</a> to
Cristy882d9f42015-10-29 16:48:39 -04006598reduce the number of colors in an animated image sequence. </p>
6599
6600<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>
6601
6602<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006603 <h3><a id="region"></a>-region <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006604</div>
6605
6606<p class="magick-description">Set a region in which subsequent operations apply.</p>
6607
6608<p>The <var>x</var> and <var>y</var> offsets are treated
6609in the same manner as in <a href="command-line-options.html#crop">-crop</a>.</p>
6610
6611<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
6612
6613<p>Use <code>+region</code> to remove any previously set regions.</p>
6614
Cristy882d9f42015-10-29 16:48:39 -04006615<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006616 <h3><a id="remote"></a>-remote</h3>
Cristy882d9f42015-10-29 16:48:39 -04006617</div>
6618
6619<p class="magick-description">perform a remote operation.</p>
6620
6621<p>The only command recognized is the name of an image file to load.</p>
6622
6623<p>If you have more than one <a href="display.html">display</a> application
6624running simultaneously, use the <a href="command-line-options.html#window"> window</a> option to
6625specify which application to control.</p>
6626
6627<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006628 <h3><a id="render"></a>-render</h3>
Cristy882d9f42015-10-29 16:48:39 -04006629</div>
6630
6631<p class="magick-description">render vector operations.</p>
6632
6633<p>Use <a href="command-line-options.html#render">+render</a> to turn off rendering vector operations.
6634This useful when saving the result to vector formats such as MVG or SVG.</p>
6635
6636<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006637<h3><a id="repage"></a>-repage <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006638</div>
6639
6640<p class="magick-description">Adjust the canvas and offset information of the image.</p>
6641
6642<p>This option is like <a href="command-line-options.html#page">-page</a> but acts as an image operator
6643rather than a setting. You can separately set the canvas size or the offset
6644of the image on that canvas by only providing those components. </p>
6645
6646<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
6647
6648<p>If a <code>!</code> flag is given the offset given is added to the existing
6649offset to move the image relative to its previous position. This useful for
6650animation sequences. </p>
6651
6652<p>A given a canvas size of zero such as '<code>0x0</code>' forces it to
6653recalculate the canvas size so the image (at its current offset) will appear
6654completely on that canvas (unless it has a negative offset).</p>
6655
6656<p>Use <a href="command-line-options.html#repage">+repage</a> to completely remove/reset the virtual
6657canvas meta-data from the images. </p>
6658
6659<p>The <a href="command-line-options.html#set">-set</a> '<code>page</code>' option can be used to
6660directly assign virtual canvas meta-data. </p>
6661
6662
6663<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006664 <h3><a id="resample"></a>-resample <var>horizontal</var>x<var>vertical</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006665</div>
6666
6667<p class="magick-description">Resample image to specified horizontal and vertical resolution.</p>
6668
6669<p>Resize the image so that its rendered size remains the same as the original
6670at the specified target resolution. For example, if a 300 DPI image renders at
66713 inches by 2 inches on a 300 DPI device, when the image has been resampled to
667272 DPI, it will render at 3 inches by 2 inches on a 72 DPI device. Note that
6673only a small number of image formats (e.g. JPEG, PNG, and TIFF) are capable of
6674storing the image resolution. For formats which do not support an image
Cristy594d2772015-11-15 10:47:42 -05006675resolution, the original resolution of the image must be specified via <a
6676href="command-line-options.html#density">-density</a> on the command line prior to specifying the
Cristy882d9f42015-10-29 16:48:39 -04006677resample resolution.</p>
6678
6679<p>Note that Photoshop stores and obtains image resolution from a proprietary
6680embedded profile. If this profile exists in the image, then Photoshop will
6681continue to treat the image using its former resolution, ignoring the image
6682resolution specified in the standard file header.</p>
6683
6684<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006685 <h3><a id="resize"></a>-resize <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006686</div>
6687
6688<p class="magick-description">Resize an image.</p>
6689
6690<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets, if present in the geometry string, are
6691ignored, and the <a href="command-line-options.html#gravity">-gravity</a> option has no effect.</p>
6692
6693<p>If the <a href="command-line-options.html#filter">-filter</a> option
Cristy594d2772015-11-15 10:47:42 -05006694or <code>-define filter:option=value</code> precedes the <a
6695href="command-line-options.html#resize">-resize</a> option, the image is resized with the specified
Cristy882d9f42015-10-29 16:48:39 -04006696filter.</p>
6697
6698<p>Many image processing algorithms assume your image is in a linear-light
6699coding. If your image is gamma-corrected, you can remove the nonlinear gamma
6700correction, apply the transform, then restore it like this:</p>
6701
Cristy49380402017-06-29 11:24:55 -04006702<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006703convert portrait.jpg -gamma .45455 -resize 25% -gamma 2.2 \
6704 -quality 92 passport.jpg
Cristy49380402017-06-29 11:24:55 -04006705</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006706
6707<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006708 <h3><a id="respect-parentheses"></a>-respect-parentheses</h3>
Cristy882d9f42015-10-29 16:48:39 -04006709</div>
6710
6711<p class="magick-description">settings remain in effect until parenthesis boundary.</p>
6712
6713<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006714 <h3><a id="reverse"></a>-reverse</h3>
Cristy882d9f42015-10-29 16:48:39 -04006715</div>
6716
6717<p class="magick-description">Reverse the order of images in the current image list.</p>
6718
6719
6720<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006721 <h3><a id="roll"></a>-roll {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006722</div>
6723
6724<p class="magick-description">roll an image vertically or horizontally by the amount given.</p>
6725
6726<p>A negative <var>x</var> offset rolls the image right-to-left.
6727A negative <var>y</var> offset rolls the image bottom-to-top.</p>
6728
6729
6730<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006731 <h3><a id="rotate"></a>-rotate <var>degrees</var>{<var>&lt;</var>}{<var>&gt;</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04006732</div>
6733
6734<p class="magick-description">Apply Paeth image rotation (using shear operations) to the image.</p>
6735
6736<p>Use <code>&gt;</code> to rotate the image only if its width exceeds the
6737height. <code>&lt;</code> rotates the image <var>only</var> if its width is less
6738than the height. For example, if you specify <code>-rotate "-90&gt;"</code> and
6739the image size is 480x640, the image is not rotated. However, if the image is
6740640x480, it is rotated by -90 degrees. If you use <code>&gt;</code> or
6741<code>&lt;</code>, enclose it in quotation marks to prevent it from being
6742misinterpreted as a file redirection.</p>
6743
6744<p>Empty triangles in the corners, left over from rotating the image, are
6745filled with the <code>background</code> color. </p>
6746
6747<p>See also the <a href="command-line-options.html#distort">-distort</a> operator and specifically the
6748'<code>ScaleRotateTranslate</code>' distort method. </p>
6749
6750
6751<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006752 <h3><a id="sample"></a>-sample <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006753</div>
6754
6755<p class="magick-description">minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
6756
6757<p>Change the image size simply by directly sampling the pixels original
6758from the image. When magnifying, pixels are replicated in blocks. When
6759minifying, pixels are sub-sampled (i.e., some rows and columns are skipped
6760over). </p>
6761
6762<p>The results are thus equivalent to using <a href="command-line-options.html#resize">-resize</a> with
6763a <a href="command-line-options.html#filter">-filter</a> setting of <code>point</code> (nearest
6764neighbor), though <a href="command-line-options.html#sample">-sample</a> is a lot faster, as it
6765avoids all the filter processing of the image. As such it completely ignores
6766the current <a href="command-line-options.html#filter">-filter</a> setting. </p>
6767
6768<p>The key feature of the <a href="command-line-options.html#sample">-sample</a> is that no new colors
6769will be added to the resulting image, though some colors may disappear. </p>
6770
6771<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Offsets, if present in the geometry string, are
6772ignored, unlike <a href="command-line-options.html#resize">-resize</a>. </p>
6773
6774
6775<p>The actual sampling point is the middle of the sub-region being sampled.
6776As such a single pixel sampling of an image will take the middle pixel, (or
Cristy594d2772015-11-15 10:47:42 -05006777top-left-middle if image has even dimensions). However the <a
6778href="command-line-options.html#define">-define</a> '<code>sample:offset</code>' can be set to modify
Cristy882d9f42015-10-29 16:48:39 -04006779this position some other location within each sub-region being sampled, as
6780a percentage offset.</p>
6781
6782<p>By default this value is '<code>50</code>' for the midpoint, but could be set
6783to '<code>0</code>' for top-left, '<code>100</code>' for bottom-right, or with
6784separate X and Y offsets such as '<code>0x50</code>' for left-middle edge of
6785sampling sub-region.</p>
6786
6787
6788<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006789 <h3><a id="sampling-factor"></a>-sampling-factor <var>horizontal-factor</var>x<var>vertical-factor</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006790</div>
6791
6792<p class="magick-description">sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
6793
6794<p>This option specifies the sampling factors to be used by the JPEG encoder
6795for chroma downsampling. If this option is omitted, the JPEG library will use
6796its own default values. When reading or writing the YUV format and when
Cristy594d2772015-11-15 10:47:42 -05006797writing the M2V (MPEG-2) format, use <a
6798href="command-line-options.html#sampling-factor">-sampling-factor 2x1</a> or <a
6799href="command-line-options.html#sampling-factor">-sampling-factor 4:2:2</a> to specify the 4:2:2
Cristy882d9f42015-10-29 16:48:39 -04006800downsampling method.</p>
6801
6802<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006803 <h3><a id="scale"></a>-scale <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006804</div>
6805
6806<p class="magick-description">minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
6807
6808<p>Change the image size simply by replacing pixels by averaging pixels
6809together when minifying, or replacing pixels when magnifying. </p>
6810
6811<p>The results are thus equivalent to using <a href="command-line-options.html#resize">-resize</a> with
6812a <a href="command-line-options.html#filter">-filter</a> setting of <code>box</code>. Though it is a lot
6813faster, as it avoids all the filter processing of the image. As such it
6814completely ignores the current <a href="command-line-options.html#filter">-filter</a> setting. </p>
6815
6816<p>If when shrinking (minifying) images the original image is some integer
6817multiple of the new image size, the number of pixels averaged together to
6818produce the new pixel color is the same across the whole image. This is
6819a special case known as 'binning' and is often used as a method of reducing
6820noise in image such as those generated by digital cameras, especially in low
6821light conditions. </p>
6822
6823
6824<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006825 <h3><a id="scene"></a>-scene <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006826</div>
6827
6828<p class="magick-description">set scene number.</p>
6829
6830<p>This option sets the scene number of an image or the first image in an image sequence.</p>
6831
6832<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006833 <h3><a id="screen"></a>-screen</h3>
Cristy882d9f42015-10-29 16:48:39 -04006834</div>
6835
6836<p class="magick-description">specify the screen to capture.</p>
6837
6838<p>This option indicates that the GetImage request used to obtain the image
6839should be done on the root window, rather than directly on the specified
6840window. In this way, you can obtain pieces of other windows that overlap the
6841specified window, and more importantly, you can capture menus or other popups
6842that are independent windows but appear over the specified window.</p>
6843
6844<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006845 <h3><a id="seed"></a>-seed</h3>
Cristy882d9f42015-10-29 16:48:39 -04006846</div>
6847
6848<p class="magick-description">seed a new sequence of pseudo-random numbers</p>
6849
6850<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006851 <h3><a id="segment"></a>-segment <var>cluster-threshold</var>x<var>smoothing-threshold</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006852</div>
6853
6854<p class="magick-description">segment the colors of an image.</p>
6855
6856<p>Segment an image by analyzing the histograms of the color components and
6857identifying units that are homogeneous with the fuzzy c-means technique. This
6858is part of the ImageMagick color quantization routines. </p>
6859
6860<p>Specify <var>cluster threshold</var> as the number of pixels in
6861each cluster that must exceed the cluster threshold to be considered valid.
6862<var>Smoothing threshold</var> eliminates noise in the second
6863derivative of the histogram. As the value is increased, you can expect
6864a smoother second derivative. The default is 1.5.</p>
6865
6866<p>If the <a href="command-line-options.html#verbose">-verbose</a> setting is defined, a detailed report
6867of the color clusters is returned.</p>
6868
6869
6870<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006871 <h3><a id="selective-blur"></a>-selective-blur <var>radius</var><br />-selective-blur <var>radius</var>x<var>sigma</var>{<var>+threshold</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04006872</div>
6873
6874<p class="magick-description">Selectively blur pixels within a contrast threshold.</p>
6875
6876<p>Blurs those pixels that are less than or equal to the threshold in
6877contrast. The threshold may be expressed as a fraction of <var>QuantumRange</var> or as a percentage.</p>
6878
6879<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006880 <h3><a id="separate"></a>-separate</h3>
Cristy882d9f42015-10-29 16:48:39 -04006881</div>
6882
6883<p class="magick-description">separate an image channel into a grayscale image. Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
6884
6885<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006886 <h3><a id="sepia-tone"></a>-sepia-tone <var>percent-threshold</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006887</div>
6888
6889<p class="magick-description">simulate a sepia-toned photo.</p>
6890
6891<p>Specify <var>threshold</var> as the percent threshold of the intensity (0 - 99.9%).</p>
6892
6893<p>This option applies a special effect to the image, similar to the effect
6894achieved 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
6895toning. A threshold of 80% is a good starting point for a reasonable
6896tone.</p>
6897
6898
6899
6900<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04006901 <h3><a id="set"></a>-set <var>key value</var></h3>
6902 <h3>+set <var>key</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04006903</div>
6904
6905<p class="magick-description">sets image attributes and properties for images in the current image sequence.</p>
6906
6907<p>This will assign (or modify) specific settings attached to all the images
6908in the current image sequence. Using the <a href="command-line-options.html#set">+set</a> form of the
6909option will either remove, or reset that setting to a default state, as
6910appropriate. </p>
6911
6912<p>For example, it will modify specific well known image meta-data
Cristy594d2772015-11-15 10:47:42 -05006913'attributes' such as those normally overridden by: the options <a
6914href="command-line-options.html#delay" >-delay</a>, <a href="command-line-options.html#dispose" >-dispose</a>, and <a
6915href="command-line-options.html#page" >-page</a>, <a href="command-line-options.html#colorspace" >-colorspace</a>; generally
Cristy882d9f42015-10-29 16:48:39 -04006916assigned before the image is read in, by using a <var>key</var> of
6917the same name. </p>
6918
6919<p>If the given <var>key</var> does not match a specific known
6920'attribute ', such as shown above, the setting is stored as a a free form
Cristy594d2772015-11-15 10:47:42 -05006921'property' string. Such settings are listed in <a href="command-line-options.html#verbose"
6922>-verbose</a> information ("<code>info:</code>" output format) as "Properties".
Cristy882d9f42015-10-29 16:48:39 -04006923</p>
6924
6925<p>This includes string 'properties' that are set by and assigned to images
Cristy594d2772015-11-15 10:47:42 -05006926using the options <a href="command-line-options.html#comment" >-comment</a>, <a href="command-line-options.html#label"
6927>-label</a>, <a href="command-line-options.html#caption" >-caption</a>. These options actually assign
6928a global 'artifact' which are automatically assigned (and any <a href="escape.html" >Format Percent
Cristy882d9f42015-10-29 16:48:39 -04006929Escapes</a> expanded) to images as they are read in. For example:</p>
6930
Cristy49380402017-06-29 11:24:55 -04006931<pre><code>
Cristy594d2772015-11-15 10:47:42 -05006932-> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png
Cristy882d9f42015-10-29 16:48:39 -04006933identify -format %c rose.png
6934Rose is a rose is a rose is a rose
Cristy49380402017-06-29 11:24:55 -04006935</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006936
Cristy594d2772015-11-15 10:47:42 -05006937<p>The set value can also make use of <a href="escape.html" >Format and Print Image
Cristy882d9f42015-10-29 16:48:39 -04006938Properties</a> in the defined value. For example:</p>
6939
Cristy49380402017-06-29 11:24:55 -04006940<pre><code>
Cristy594d2772015-11-15 10:47:42 -05006941-> convert rose: -set origsize '%wx%h' -resize 50% \
Cristy882d9f42015-10-29 16:48:39 -04006942 -format 'Old size = %[origsize] New size = %wx%h' info:
6943Old size = 70x46 New size = 35x23
Cristy49380402017-06-29 11:24:55 -04006944</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006945
6946<p>Other well known 'properties' that are available include:
6947'<code>date:create</code>' and '<code>date:modify</code>' and
6948'<code>signature</code>'. </p>
6949
6950<p>The <a href="command-line-options.html#repage">-repage</a> operator will also allow you to modify
6951the '<code>page</code>' attribute of an image for images already in memory (also
6952see <a href="command-line-options.html#repage">-page</a>). However it is designed to provide a finer
6953control of the sub-parts of this 'attribute'. The <a href="command-line-options.html#set">-set page</a>
6954option will only provide a direct, unmodified assignment of '<code>page</code>'
6955attribute. </p>
6956
6957<p>This option can also associate a colorspace or profile with your image.
6958For example,</p>
6959
Cristy49380402017-06-29 11:24:55 -04006960<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006961convert image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd
Cristy49380402017-06-29 11:24:55 -04006962</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006963
6964<p>Some 'properties' must be defined in a specific way to be used. For
6965example only 'properties' prefixed with "<code>filename:</code>" can be used to
6966modify the output filename of an image. For example</p>
6967
Cristy49380402017-06-29 11:24:55 -04006968<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006969convert rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'
Cristy49380402017-06-29 11:24:55 -04006970</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006971
6972<p>If the setting value is prefixed with "<code>option:</code>" the setting will
Cristy594d2772015-11-15 10:47:42 -05006973be saved as a global "Artifact" exactly as if it was set using the <a
6974href="command-line-options.html#define" >-define</a> option. As such settings are global in scope, they
Cristy882d9f42015-10-29 16:48:39 -04006975can be used to pass 'attributes' and 'properties' of one specific image,
6976in a way that allows you to use them in a completely different image, even if
6977the original image has long since been modified or destroyed. For example: </p>
6978
Cristy49380402017-06-29 11:24:55 -04006979<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006980convert rose: -set option:rosesize '%wx%h' -delete 0 \
6981 label:'%[rosesize]' label_size_of_rose.gif"
Cristy49380402017-06-29 11:24:55 -04006982</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006983
Cristy594d2772015-11-15 10:47:42 -05006984<p>Note that <a href="escape.html" >Format Percent Escapes</a> will only match
Cristy882d9f42015-10-29 16:48:39 -04006985a 'artifact' if the given <var>key</var> does not match an existing
6986'attribute' or 'property'. </p>
6987
6988<p>You can set the attributes of the image registry by prefixing the value
6989with <code>registry:</code>.</p>
6990
6991<p>The <a href="command-line-options.html#set">-set profile</a> option can also be used to inject
6992previously-formatted ancillary chunks into the output PNG file, using
6993the commandline option as shown below or by setting the profile via a
6994programming interface:</p>
6995
Cristy49380402017-06-29 11:24:55 -04006996<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04006997convert in.png -set profile PNG-chunk-x:&lt;filename&gt; out.png
Cristy49380402017-06-29 11:24:55 -04006998</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04006999
7000<p>where <var>x</var> is a location flag and
7001<var>filename</var> is a file containing the chunk
7002name in the first 4 bytes, then a colon (":"), followed by the chunk data.
7003This encoder will compute the chunk length and CRC, so those must not
7004be included in the file.</p>
7005
7006<p>"x" can be "b" (before PLTE), "m" (middle, i.e., between PLTE and IDAT),
7007or "e" (end, i.e., after IDAT). If you want to write multiple chunks
7008of the same type, then add a short unique string after the "x" to prevent
7009subsequent profiles from overwriting the preceding ones, e.g.,</p>
7010
7011
Cristy49380402017-06-29 11:24:55 -04007012<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007013convert in.png -set profile PNG-chunk-b01:file01 \
7014 -profile PNG-chunk-b02:file02 out.png
Cristy49380402017-06-29 11:24:55 -04007015</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007016
7017<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007018 <h3><a id="shade"></a>-shade <var>azimuth</var>x<var>elevation</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007019</div>
7020
7021<p class="magick-description">shade the image using a distant light source.</p>
7022
7023<p>Specify <var>azimuth</var> and <var>elevation</var> as
7024the position of the light source. Use <a href="command-line-options.html#shade">+shade</a> to return
7025the shading results as a grayscale image.</p>
7026
7027<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007028 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04007029</div>
7030
7031<p class="magick-description">simulate an image shadow.</p>
7032
7033<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007034 <h3><a
Cristy594d2772015-11-15 10:47:42 -05007035id="shared-memory"></a>-shared-memory</h3>
Cristy882d9f42015-10-29 16:48:39 -04007036</div>
7037
7038<p class="magick-description">use shared memory.</p>
7039
7040<p>This option specifies whether the utility should attempt to use shared
7041memory for pixmaps. ImageMagick must be compiled with shared memory support,
7042and the display must support the <var>MIT-SHM</var> extension.
7043Otherwise, this option is ignored. The default is <code>True</code>.</p>
7044
7045<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007046 <h3><a id="sharpen"></a>-sharpen <var>radius</var><br />-sharpen <var>radius</var>x<var>sigma</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007047</div>
7048
7049<p class="magick-description">sharpen the image.</p>
7050
7051<p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p>
7052
7053<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007054 <h3><a id="shave"></a>-shave <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007055</div>
7056
7057<p class="magick-description">Shave pixels from the image edges.</p>
7058
7059<p>The <var>size</var> portion of the <var>geometry</var>
7060argument specifies the width of the region to be removed from both sides of
7061the image and the height of the regions to be removed from top and bottom.
7062Offsets are ignored.</p>
7063
7064<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
7065
7066<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007067 <h3><a id="shear"></a>-shear <var>Xdegrees</var>[x<var>Ydegrees</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -04007068</div>
7069
7070<p class="magick-description">Shear the image along the x-axis and/or y-axis.</p>
7071
7072<p>The shear angles may be positive, negative, or zero. When <var>Ydegrees</var> is omitted it defaults to 0. When both angles are
7073given, the horizontal component of the shear is performed before the vertical
7074component.</p>
7075
7076<p>Shearing slides one edge of an image along the x-axis or y-axis (i.e.,
7077horizontally or vertically, respectively),creating a parallelogram. The amount
7078of each is controlled by the respective shear angle. For horizontal shears,
7079<var>Xdegrees</var> is measured clockwise relative to "up" (the
7080negative 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
7081positive 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>
7082
7083<p>Empty triangles left over from shearing the image are filled with the color
7084defined by the <a href="command-line-options.html#fill">-background</a> option. The color is specified
7085using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
7086
7087<p>The horizontal shear is performed before the vertical part. This is
7088important to note, since horizontal and vertical shears do not
7089<var>commute</var>, i.e., the order matters in a sequence of shears. For
7090example, the following two commands are not equivalent.</p>
7091
Cristy49380402017-06-29 11:24:55 -04007092<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007093convert logo: -shear 20x0 -shear 0x60 logo-sheared.png
7094convert logo: -shear 0x60 -shear 20x0 logo-sheared.png
Cristy49380402017-06-29 11:24:55 -04007095</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007096
7097<p>The first of the two commands above is equivalent to the following, except
7098for the amount of empty space created; the command that follows generates
7099a smaller image, and so is a better choice in terms of time and space.</p>
7100
Cristy49380402017-06-29 11:24:55 -04007101<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007102convert logo: -shear 20x60 logo-sheared.png
Cristy49380402017-06-29 11:24:55 -04007103</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007104
7105<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007106 <h3><a id="sigmoidal-contrast"></a>-sigmoidal-contrast <var>contrast</var>x<var>mid-point</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007107</div>
7108
7109<p class="magick-description">increase the contrast without saturating highlights or shadows.</p>
7110
7111<p>Increase the contrast of the image using a sigmoidal transfer function
7112without saturating highlights or shadows. <var>Contrast</var>
7113indicates how much to increase the contrast. For example, 0 is none, 3 is
7114typical and 20 is a lot.
7115</p>
7116
7117<p>The <var>mid-point</var> indicates where the maximum change
7118'slope' in contrast should fall in the resultant image (0 is white; 50% is
7119middle-gray; 100% is black). </p>
7120
7121<p>By default the image contrast is increased, use <var>+sigmoidal-contrast</var> to decrease the contrast.</p>
7122
7123<p>To achieve the equivalent of a sigmoidal brightness change (similar to
7124a gamma adjustment), you would use <var>-sigmoidal-contrast
7125{brightness}x0%</var> to increase brightness and <var>+sigmoidal-contrast {brightness}x0%</var> to decrease brightness.
7126Note the use of '0' fo rthe mid-point of the sigmoidal curve. </p>
7127
7128<p>Using a very high <var>contrast</var> will produce a sort of
7129'smoothed thresholding' of the image. Not as sharp (with high aliasing
7130effects) of a true threshold, but with tapered gray-levels around the threshold
7131<var>mid-point</var>. </p>
7132
7133<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007134 <h3><a id="silent"></a>-silent</h3>
Cristyf650f4f2016-04-01 10:53:07 -04007135
7136
Cristy882d9f42015-10-29 16:48:39 -04007137</div>
7138
Cristyf650f4f2016-04-01 10:53:07 -04007139<p class="magick-description">operate silently. This option is only used
7140by the <a href="import.html">import</a> tool.</p>
Cristy882d9f42015-10-29 16:48:39 -04007141
7142<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007143 <h3><a id="similarity-threshold"></a>-similarity-threshold <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007144</div>
7145
7146<p class="magick-description">minimum RMSE for subimage match.</p>
7147
7148<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>
7149
7150<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007151 <h3><a id="size"></a>-size <var>width</var>[x<var>height</var>][<var>+offset</var>]</h3>
Cristy882d9f42015-10-29 16:48:39 -04007152</div>
7153
7154<p class="magick-description">set the width and height of the image.</p>
7155
7156<p>Use this option to specify the width and height of raw images whose
7157dimensions are unknown such as <code>GRAY</code>, <code>RGB</code>, or
Cristy594d2772015-11-15 10:47:42 -05007158<code>CMYK</code>. In addition to width and height, use <a
7159href="command-line-options.html#size">-size</a> with an offset to skip any header information in the
Cristy882d9f42015-10-29 16:48:39 -04007160image or tell the number of colors in a <code>MAP</code> image file, (e.g. -size
7161640x512+256).</p>
7162
7163<p>For Photo CD images, choose from these sizes:</p>
7164
Cristy49380402017-06-29 11:24:55 -04007165<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007166192x128
7167384x256
7168768x512
71691536x1024
71703072x2048
Cristy49380402017-06-29 11:24:55 -04007171</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007172
7173<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007174 <h3><a id="sketch"></a>-sketch <var>radius</var><br />-sketch <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007175</div>
7176
7177<p class="magick-description">simulate a pencil sketch.</p>
7178
7179<p>Sketch with the given radius, standard deviation (sigma), and angle. The
7180angle given is the angle toward which the image is sketched. That is the
7181direction people would consider the object is coming from. </p>
7182
7183<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007184 <h3><a id="smush"></a>-smush <var>offset</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007185</div>
7186
Cristybc232422016-11-22 07:46:18 -05007187<p class="magick-description">appends an image sequence together ignoring transparency.</p>
7188
7189<p>Smush is a more flexible version of <a href="command-line-options.html#append">-append</a>, joining the images in the sequence top-to-bottom (<a href="command-line-options.html#smush">-smush</a>) or left-to-right (<a href="command-line-options.html#smush">+smush</a>), with a gap between images according to the specified offset.</p>
7190
7191<p>If the offset is negative, images will overlap by that amount.</p>
7192
7193<p><a href="command-line-options.html#smush">-smush</a> respects <a href="command-line-options.html#gravity">-gravity</a>. Any empty space will be filled with the <a href="command-line-options.html#background">-background</a> color.</p>
7194
7195<p>For zero offset and transparent images, the non-transparent parts of the two images will be aligned as close as possible without overlapping.</p>
Cristy882d9f42015-10-29 16:48:39 -04007196
7197<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007198 <h3><a id="snaps"></a>-snaps <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007199</div>
7200
7201<p class="magick-description">Set the number of screen snapshots.</p>
7202
7203<p>Use this option to grab more than one image from the X server screen, to create an animation sequence.</p>
7204
7205<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007206 <h3><a id="solarize"></a>-solarize <var>percent-threshold</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007207</div>
7208
7209<p class="magick-description">negate all pixels above the threshold level.</p>
7210
7211<p>Specify <var>factor</var> as the percent threshold of the intensity (0 - 99.9%).</p>
7212
7213<p>This option produces a <var>solarization</var> effect seen when
7214exposing a photographic film to light during the development process.</p>
7215
7216<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007217 <h3><a id="sparse-color"></a>-sparse-color <var>method</var> '<var>x</var>,<var>y</var> <var>color</var> ...'</h3>
Cristy882d9f42015-10-29 16:48:39 -04007218</div>
7219
7220<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>
7221
7222
Cristy49380402017-06-29 11:24:55 -04007223<dl class="row">
7224 <dt class="col-md-4">barycentric</dt>
7225 <dd class="col-md-8">three point triangle of color given 3 points.
Cristy882d9f42015-10-29 16:48:39 -04007226 Giving only 2 points will form a linear gradient between those points.
7227 The gradient generated extends beyond the triangle created by those
7228 3 points. </dd>
Cristy49380402017-06-29 11:24:55 -04007229 <dt class="col-md-4">bilinear</dt>
7230 <dd class="col-md-8">Like barycentric but for 4 points. Less than 4 points
Cristy882d9f42015-10-29 16:48:39 -04007231 fall back to barycentric. </dd>
Cristy49380402017-06-29 11:24:55 -04007232 <dt class="col-md-4">voronoi</dt>
7233 <dd class="col-md-8">Simply map each pixel to the to nearest color point
Cristy882d9f42015-10-29 16:48:39 -04007234 given. The result are polygonal 'cells' of solid color. </dd>
Cristy49380402017-06-29 11:24:55 -04007235 <dt class="col-md-4">manhatten</dt>
7236 <dd class="col-md-8">Like voronoi, but resulting polygonal 'cells' are mapped to a fixed coordinate system.</dd>
7237 <dt class="col-md-4">shepards</dt>
7238 <dd class="col-md-8">Colors points biased on the ratio of inverse distance
Cristy882d9f42015-10-29 16:48:39 -04007239 squared. Generating spots of color in a sea of the average of
7240 colors. </dd>
Cristy49380402017-06-29 11:24:55 -04007241 <dt class="col-md-4">inverse</dt>
7242 <dd class="col-md-8">Colors points biased on the ratio of inverse distance.
Cristy882d9f42015-10-29 16:48:39 -04007243 This generates sharper points of color rather than rounded spots of
7244 '<code>shepards</code>' Generating spots of color in a sea of the
7245 average of colors. </dd>
7246</dl>
7247
7248<p>The points are placed according to the images location on the virtual
Cristy594d2772015-11-15 10:47:42 -05007249canvas (<a href="command-line-options.html#page" >-page</a> or <a href="command-line-options.html#repage" >-repage</a>
Cristy882d9f42015-10-29 16:48:39 -04007250offset), and do not actually have to exist on the given image, but may be
7251some point beyond the edge of the image. All points are floating point values.
7252</p>
7253
Cristy594d2772015-11-15 10:47:42 -05007254<p>Only the color channels defined by the <a href="command-line-options.html#channel" >-channel</a> are
Cristy882d9f42015-10-29 16:48:39 -04007255modified, which means that by default matte/alpha transparency channel is not
7256effected. Typically transparency channel is turned off either before or after
7257the operation. </p>
7258
7259<p>Of course if some color points are transparent to generate a transparent
7260gradient, then the image also requires transparency enabled to store the
7261values. </p>
7262
7263<p>All the above methods when given a single point of color will replace all
7264the colors in the image with the color given, regardless of the point. This is
7265logical, and provides an alternative technique to recolor an image to some
7266default value. </p>
7267
7268
7269<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007270 <h3><a id="splice"></a>-splice <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007271</div>
7272
7273<p class="magick-description">Splice the current background color into the image.</p>
7274
Cristy594d2772015-11-15 10:47:42 -05007275<p>This will add rows and columns of the current <a
7276href="command-line-options.html#background">-background</a> color into the given image according to the
Cristy882d9f42015-10-29 16:48:39 -04007277given <a href="command-line-options.html#gravity">-gravity</a> geometry setting. See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument. Essentially <a href="command-line-options.html#splice">-splice</a> will divide the
7278image into four quadrants, separating them by the inserted rows and columns.
7279</p>
7280
7281<p>If a dimension of geometry is zero no rows or columns will be added for that
Cristy594d2772015-11-15 10:47:42 -05007282dimension. Similarly using a zero offset with the appropriate <a
7283href="command-line-options.html#gravity">-gravity</a> setting will add rows and columns to the edges of
7284the image, padding the image only along that one edge. Edge padding is what <a
7285href="command-line-options.html#splice">-splice</a> is most commonly used for. </p>
Cristy882d9f42015-10-29 16:48:39 -04007286
Cristy594d2772015-11-15 10:47:42 -05007287<p>If the exact same <var>geometry</var> and <a
7288href="command-line-options.html#gravity">-gravity</a> is later used with <a href="command-line-options.html#chop">-chop</a> the
Cristy882d9f42015-10-29 16:48:39 -04007289added added all splices removed. </p>
7290
7291<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007292 <h3><a id="spread"></a>-spread <var>amount</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007293</div>
7294
7295<p class="magick-description">displace image pixels by a random amount.</p>
7296
7297<p>The argument <var>amount</var> defines the size of the
7298neighborhood around each pixel from which to choose a candidate pixel to
7299blend.</p>
7300
7301<p>The lookup is controlled by the <a href="command-line-options.html#interpolate">-interpolate</a> setting.</p>
7302
7303<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007304 <h3><a id="statistic"></a>-statistic <var>type</var> <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007305</div>
7306
7307<p class="magick-description">replace each pixel with corresponding statistic from the neighborhood.</p>
7308
7309<p>Choose from these statistic types:</p>
Cristy49380402017-06-29 11:24:55 -04007310<dl class="row">
7311<dt class="col-md-4">Gradient</dt><dd class="col-md-8">maximum difference (max - min) value in neighborhood</dd>
7312<dt class="col-md-4">Maximum</dt><dd class="col-md-8">maximum value per channel in neighborhood</dd>
7313<dt class="col-md-4">Minimum</dt><dd class="col-md-8">minimum value per channel in neighborhood</dd>
7314<dt class="col-md-4">Mean</dt><dd class="col-md-8">average value per channel in neighborhood</dd>
7315<dt class="col-md-4">Median</dt><dd class="col-md-8">median value per channel in neighborhood</dd>
7316<dt class="col-md-4">Mode</dt><dd class="col-md-8">mode (most frequent) value per channel in neighborhood</dd>
7317<dt class="col-md-4">Nonpeak</dt><dd class="col-md-8">value just before or after the median value per channel in neighborhood</dd>
7318<dt class="col-md-4">RMS</dt><dd class="col-md-8">root mean square value per channel in neighborhood</dd>
7319<dt class="col-md-4">StandardDeviation</dt><dd class="col-md-8"> standard deviation value per channel in neighborhood</dd>
Cristy882d9f42015-10-29 16:48:39 -04007320</dl>
7321
7322<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007323 <h3><a id="stegano"></a>-stegano <var>offset</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007324</div>
7325
7326<p class="magick-description">hide watermark within an image.</p>
7327
7328<p>Use an offset to start the image hiding some number of pixels from the
7329beginning of the image. Note this offset and the image size. You will need
7330this information to recover the steganographic image (e.g. display -size
7331320x256+35 stegano:image.png).</p>
7332
7333<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007334 <h3><a id="stereo"></a>-stereo <var>+x</var>{<var>+y</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04007335</div>
7336
7337<p class="magick-description">composite two images to create a red / cyan stereo anaglyph.</p>
7338
7339<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>
7340
7341<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007342 <h3><a id="storage-type"></a>-storage-type <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007343</div>
7344
7345<p class="magick-description">pixel storage type. Here are the valid types:</p>
7346
Cristy49380402017-06-29 11:24:55 -04007347<dl class="row">
7348<dt class="col-md-4">char</dt><dd class="col-md-8">unsigned characters</dd>
7349<dt class="col-md-4">double</dt><dd class="col-md-8">doubles</dd>
7350<dt class="col-md-4">float</dt><dd class="col-md-8">floats</dd>
7351<dt class="col-md-4">integer</dt><dd class="col-md-8">integers</dd>
7352<dt class="col-md-4">long</dt><dd class="col-md-8">longs</dd>
7353<dt class="col-md-4">quantum</dt><dd class="col-md-8">pixels in the native depth of your ImageMagick distribution</dd>
7354<dt class="col-md-4">short</dt><dd class="col-md-8">unsigned shorts</dd>
Cristy882d9f42015-10-29 16:48:39 -04007355</dl>
7356
7357<p>Float and double types are normalized from 0.0 to 1.0 otherwise the pixels
7358values range from 0 to the maximum value the storage type can support.</p>
7359
7360<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007361 <h3><a id="stretch"></a>-stretch <var>fontStretch</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007362</div>
7363
7364<p class="magick-description">Set a type of stretch style for fonts.</p>
7365
7366<p>This setting suggests a type of stretch that ImageMagick should try to
7367apply to the currently selected font family. Select <var>fontStretch</var> from the following.</p>
7368
Cristy49380402017-06-29 11:24:55 -04007369<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007370Any
7371Condensed
7372Expanded
7373ExtraCondensed
7374ExtraExpanded
7375Normal
7376SemiCondensed
7377SemiExpanded
7378UltraCondensed
7379UltraExpanded
Cristy49380402017-06-29 11:24:55 -04007380</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007381
7382<p>To print a complete list of stretch types, use <a href="command-line-options.html#list">-list
7383stretch</a>.</p>
7384
Cristy594d2772015-11-15 10:47:42 -05007385<p>For other settings that affect fonts, see the options <a
7386href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a
7387href="command-line-options.html#style">-style</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04007388
7389<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007390 <h3><a id="strip"></a>-strip</h3>
Cristy882d9f42015-10-29 16:48:39 -04007391</div>
7392
Cristy776113a2016-04-29 12:01:19 -04007393<p class="magick-description">strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.</p>
Cristy882d9f42015-10-29 16:48:39 -04007394
7395<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007396 <h3><a id="stroke"></a>-stroke <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007397</div>
7398
7399<p class="magick-description">color to use when stroking a graphic primitive.</p>
7400
7401<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
7402
7403<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
7404
7405<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007406 <h3><a id="strokewidth"></a>-strokewidth <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007407</div>
7408
7409<p class="magick-description">set the stroke width.</p>
7410
7411<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
7412
7413<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007414 <h3><a id="style"></a>-style <var>fontStyle</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007415</div>
7416
7417<p class="magick-description">Set a font style for text.</p>
7418
7419<p>This setting suggests a font style that ImageMagick should try to apply to
7420the currently selected font family. Select <var>fontStyle</var> from
7421the following.</p>
7422
Cristy49380402017-06-29 11:24:55 -04007423<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007424Any
7425Italic
7426Normal
7427Oblique
Cristy49380402017-06-29 11:24:55 -04007428</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007429
Cristy594d2772015-11-15 10:47:42 -05007430<p>For other settings that affect fonts, see the options <a
7431href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a
7432href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line-options.html#weight">-weight</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04007433
7434<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007435 <h3><a id="subimage-search"></a>-subimage-search</h3>
Cristy882d9f42015-10-29 16:48:39 -04007436</div>
7437
7438<p class="magick-description">search for subimage.</p>
7439
7440<p>This option is required to have compare search for the best match location
7441of a small image within a larger image. This search will produce two images
7442(or two frames). The first is the "difference" image and the second will
7443be the "match score" image.</p>
7444
7445<p>The "match-score" image is smaller containing a pixel for ever possible
7446position of the top-left corner of the given sub-image. that is its size will
7447be the size of the larger_image - sub_image + 1. The brightest location in
7448this image is the location s the locate on the best match that is also
7449reported. Note that this may or may not be a perfect match, and the actual
7450brightness will reflect this. Other bright 'peaks' can be used to locate other
7451possible matching locations. </p>
7452
7453<p>Note that the search will try to compare the sub-image at every possible
7454location in the larger image, as such it can be very slow. The smaller the
7455sub-image the faster this search is. </p>
7456
7457
7458<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007459 <h3><a id="swap"></a>-swap <var>index,index</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007460</div>
7461
7462<p class="magick-description">Swap the positions of two images in the image sequence.</p>
7463
7464<p>For example, <a href="command-line-options.html#swap">-swap 0,2</a> swaps the first and the third
7465images in the current image sequence. Use <a href="command-line-options.html#swap">+swap</a> to switch
7466the last two images in the sequence.</p>
7467
7468<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007469 <h3><a id="swirl"></a>-swirl <var>degrees</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007470</div>
7471
7472<p class="magick-description">swirl image pixels about the center.</p>
7473
7474<p><var>Degrees</var> defines the tightness of the swirl.</p>
7475
7476<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007477 <h3><a id="synchronize"></a>-synchronize</h3>
Cristy882d9f42015-10-29 16:48:39 -04007478</div>
7479
7480<p class="magick-description">synchronize image to storage device.</p>
7481
7482<p>Set to "true" to ensure all image data is fully flushed and synchronized
7483to disk. There is a performance penalty, but the benefits include ensuring a
7484valid image file in the event of a system crash and early reporting if there
7485is not enough disk space for the image pixel cache.</p>
7486
7487<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007488 <h3><a id="taint"></a>-taint</h3>
Cristy882d9f42015-10-29 16:48:39 -04007489</div>
7490
7491<p class="magick-description">Mark the image as modified.</p>
7492
7493<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007494 <h3><a id="text-font"></a>-text-font <var>name</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007495</div>
7496
7497<p class="magick-description">font for writing fixed-width text.</p>
7498
7499<p>Specifies the name of the preferred font to use in fixed (typewriter style)
7500formatted text. The default is 14 point <var>Courier</var>.</p>
7501
7502<p>You can tag a font to specify whether it is a PostScript, TrueType, or
7503OPTION1 font. For example, <code>Courier.ttf</code> is a TrueType font and
7504<code>x:fixed</code> is OPTION1.</p>
7505
7506<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007507 <h3><a id="texture"></a>-texture <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007508</div>
7509
7510<p class="magick-description">name of texture to tile onto the image background.</p>
7511
7512<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007513 <h3><a id="threshold"></a>-threshold <var>value</var>{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04007514</div>
7515
7516<!-- {<var>green,blue,opacity</var>}
7517<p>If the green or blue value is omitted, these channels use the same value as
7518the first one provided. If all three color values are the same, the result is
7519a bi-level image. If the opacity threshold is omitted, OpaqueOpacity is used
7520and any partially transparent pixel becomes fully transparent.</p>
7521-->
7522
7523<p class="magick-description">Apply simultaneous black/white threshold to the image.</p>
7524
Cristy594d2772015-11-15 10:47:42 -05007525<p>Any pixel values (more specifically, those channels set using <a href="command-line-options.html#channel">&#x2011;channel</a>) that exceed the specified threshold are reassigned the
Cristy882d9f42015-10-29 16:48:39 -04007526maximum channel value, while all other values are assigned the minimum.</p>
7527
7528<p> The threshold value can be given as a percentage or as an absolute integer
7529value corresponding to the desired channel value. When given as an integer,
7530the minimum attainable value is 0 (corresponding to black when all channels
7531are affected), but the maximum value (corresponding to white) is that of the
7532<code>quantum depth</code> of the particular build of ImageMagick, and is
7533therefore dependent on the installation. For that reason, a reasonable
7534recommendation for most applications is to specify the threshold values as
7535a percentage. </p>
7536
7537<p> The following would force pixels with red values above 50% to have 100%
7538red values, while those at or below 50% red would be set to 0 in the red
7539channel. The green, blue, and alpha channels (if present) would be unchanged.
7540</p>
7541
Cristy49380402017-06-29 11:24:55 -04007542<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007543convert in.png -channel red -threshold 50% out.png
Cristy49380402017-06-29 11:24:55 -04007544</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007545
7546<p>As (possibly) impractical but instructive examples, the following would
7547generate an all-black and an all-white image with the same dimensions as the
7548input image.</p>
7549
7550
Cristy49380402017-06-29 11:24:55 -04007551<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007552convert in.png -threshold 100% black.png
7553convert in.png -threshold -1 white.png
Cristy49380402017-06-29 11:24:55 -04007554</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007555
7556<p>Note that the values of the transparency channel is treated as 'matte'
7557values (0 is opaque) and not as 'alpha' values (0 is transparent).</p>
7558
Cristy594d2772015-11-15 10:47:42 -05007559<p> See also <a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a> and <a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a>.
Cristy882d9f42015-10-29 16:48:39 -04007560</p>
7561
7562<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007563 <h3><a id="thumbnail"></a>-thumbnail <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007564</div>
7565
7566<p class="magick-description">Create a thumbnail of the image.</p>
7567
7568<p>This is similar to <a href="command-line-options.html#resize">-resize</a>, except it is optimized
7569for speed and any image profile, other than a color profile, is removed to
Cristy594d2772015-11-15 10:47:42 -05007570reduce the thumbnail size. To strip the color profiles as well, add <a
7571href="command-line-options.html#strip">-strip</a> just before of after this option.</p>
Cristy882d9f42015-10-29 16:48:39 -04007572
7573<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
7574
7575<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007576 <h3><a id="tile"></a>-tile <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007577</div>
7578
7579<p class="magick-description">Set the tile image used for filling a subsequent graphic primitive.</p>
7580
7581<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007582 <h3>-tile <var>geometry</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007583</div>
7584
7585<p class="magick-description">Specify the layout of images.</p>
7586
7587<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
7588
7589<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007590 <h3>-tile</h3>
Cristy882d9f42015-10-29 16:48:39 -04007591</div>
7592
7593<p class="magick-description">Specifies that a subsequent composite operation is repeated across and down image.</p>
7594
7595<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007596 <h3><a id="tile-offset"></a>-tile-offset {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007597</div>
7598
7599<p class="magick-description">Specify the offset for tile images, relative to the background image it is tiled on.</p>
7600
Cristy594d2772015-11-15 10:47:42 -05007601<p>This should be set before the tiling image is set by <a href="command-line-options.html#tile"
7602>-tile</a> or <a href="command-line-options.html#texture" >-texture</a>, or directly applied for
Cristy882d9f42015-10-29 16:48:39 -04007603creating a tiled canvas using <code>TILE:</code> or <code>PATTERN:</code> input
7604formats. </p>
7605
Cristy594d2772015-11-15 10:47:42 -05007606<p>Internally ImageMagick does a <a href="command-line-options.html#roll" >-roll</a> of the tile image
Cristy882d9f42015-10-29 16:48:39 -04007607by the arguments given when the tile image is set. </p>
7608
7609<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007610 <h3><a id="tint"></a>-tint <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007611</div>
7612
7613<p class="magick-description">Tint the image with the fill color.</p>
7614
7615<p>Tint the image with the fill color.</p>
7616
7617<p>Specify the amount of tinting as a percentage. Pure colors like black,
7618white red, yellow, will not be affected by -tint. Only mid-range colors such
7619as the various shades of grey.</p>
7620
7621<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007622 <h3><a id="title"></a>-title <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007623</div>
7624
7625<p class="magick-description">Assign a title to displayed image.", "animate", "display", "montage</p>
7626
7627<p>Use this option to assign a specific title to the image. This assigned to
7628the image window and is typically displayed in the window title bar.
7629Optionally you can include the image filename, type, width, height, Exif data,
7630or other image attribute by embedding special format characters described
7631under the <a href="command-line-options.html#format">-format</a> option.</p>
7632
7633<p>For example,</p>
7634
Cristy49380402017-06-29 11:24:55 -04007635<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007636-title "%m:%f %wx%h"
Cristy49380402017-06-29 11:24:55 -04007637</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007638
7639<p>produces an image title of <code>MIFF:bird.miff 512x480</code> for an image
7640titled <code>bird.miff</code> and whose width is 512 and height is 480.</p>
7641
7642
7643<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007644 <h3><a id="transform"></a>-transform</h3>
Cristy882d9f42015-10-29 16:48:39 -04007645</div>
7646
7647<p class="magick-description">transform the image.</p>
7648
7649<p>This option applies the transformation matrix from a previous <a href="command-line-options.html#affine">-affine</a> option.</p>
7650
Cristy49380402017-06-29 11:24:55 -04007651<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007652convert -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg
Cristy49380402017-06-29 11:24:55 -04007653</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007654
7655
Cristy594d2772015-11-15 10:47:42 -05007656<p>This operator has been now been superseded by the <a
7657href="command-line-options.html#distort">-distort</a> '<code>AffineProjection</code>' method. </p>
Cristy882d9f42015-10-29 16:48:39 -04007658
7659
7660<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007661 <h3><a id="transparent"></a>-transparent <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007662</div>
7663
7664<p class="magick-description">Make this color transparent within the image.</p>
7665
7666<p>The <var>color</var> argument is defined using the format
Cristy594d2772015-11-15 10:47:42 -05007667described under the <a href="command-line-options.html#fill">-fill</a> option. The <a href="command-line-options.html#fuzz"
7668>-fuzz</a> setting can be used to match and replace colors similar to the one
Cristy882d9f42015-10-29 16:48:39 -04007669given. </p>
7670
Cristy594d2772015-11-15 10:47:42 -05007671<p>Use <a href="command-line-options.html#transparent" >+transparent</a> to invert the pixels matched.
Cristy882d9f42015-10-29 16:48:39 -04007672that is make all non-matching colors transparent. </p>
7673
Cristy594d2772015-11-15 10:47:42 -05007674<p>The <a href="command-line-options.html#opaque">-opaque</a> operator is exactly the same as <a
7675href="command-line-options.html#transparent" >-transparent</a> but replaces the matching color with the
Cristy882d9f42015-10-29 16:48:39 -04007676current <a href="command-line-options.html#fill">-fill</a> color setting, rather than transparent.
Cristy594d2772015-11-15 10:47:42 -05007677However the <a href="command-line-options.html#transparent" >-transparent</a> operator also ensures
7678that the image has an alpha channel enabled, as per "<code><a href="command-line-options.html#alpha"
7679>-alpha</a> set</code>", and does not require you to modify the <a
7680href="command-line-options.html#channel">-channel</a> to enable alpha channel handling. </p>
Cristy882d9f42015-10-29 16:48:39 -04007681
7682<p>Note that this does not define the color as being the 'transparency color'
Cristy594d2772015-11-15 10:47:42 -05007683used for color-mapped image formats, such as GIF. For that use <a
7684href="command-line-options.html#transparent-color" >-transparent-color</a> </p>
Cristy882d9f42015-10-29 16:48:39 -04007685
7686
7687<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007688 <h3><a id="transparent-color"></a>-transparent-color <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007689</div>
7690
7691<p class="magick-description">Set the transparent color.</p>
7692
7693<p>Sometimes this is used for saving to image formats such as
7694GIF and PNG8 which uses this color to represent boolean transparency. This
7695does not make a color transparent, it only defines what color the transparent
Cristy594d2772015-11-15 10:47:42 -05007696color is in the color palette of the saved image. Use <a
7697href="command-line-options.html#transparent">-transparent</a> to make an opaque color transparent.</p>
Cristy882d9f42015-10-29 16:48:39 -04007698
7699<p>This option allows you to have both an opaque visible color, as well as a
7700transparent color of the same color value without conflict. That is, you can
7701use the same color for both the transparent and opaque color areas within an
7702image. This, in turn, frees to you to select a transparent color that is
7703appropriate when an image is displayed by an application that does not handle a
7704transparent color index, while allowing ImageMagick to correctly handle images of this
7705type. </p>
7706
7707<p>The default transparent color is <code>#00000000</code>, which is fully transparent black.</p>
7708
7709<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007710 <h3><a id="transpose"></a>-transpose</h3>
Cristy882d9f42015-10-29 16:48:39 -04007711</div>
7712
7713<p class="magick-description">Mirror the image along the top-left to bottom-right diagonal.</p>
7714
7715<p> This option mathematically transposes the pixel array. It is equivalent to the sequence <code>-flip -rotate 90</code>.
7716</p>
7717
7718<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007719 <h3><a id="transverse"></a>-transverse</h3>
Cristy882d9f42015-10-29 16:48:39 -04007720</div>
7721
7722<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>
7723
7724
7725<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007726 <h3><a id="treedepth"></a>-treedepth <var>value</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007727</div>
7728
7729<p class="magick-description">tree depth for the color reduction algorithm.</p>
7730
7731<p>Normally, this integer value is zero or one. A value of zero or one causes
7732the use of an optimal tree depth for the color reduction algorithm.</p>
7733
7734<p>An optimal depth generally allows the best representation of the source
7735image with the fastest computational speed and the least amount of memory.
7736However, the default depth is inappropriate for some images. To assure the
7737best representation, try values between 2 and 8 for this parameter. Refer to
Cristy6549abb2016-11-10 08:25:55 -05007738the <a href="http://www.imagemagick.org/www/quantize.html"
Cristy594d2772015-11-15 10:47:42 -05007739>color reduction algorithm</a> for more details.</p>
Cristy882d9f42015-10-29 16:48:39 -04007740
7741<p>The <a href="command-line-options.html#colors">-colors</a> or <a href="command-line-options.html#monochrome">-monochrome</a>
7742option, or writing to an image format which requires color reduction, is
7743required for this option to take effect.</p>
7744
7745<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007746 <h3><a id="trim"></a>-trim</h3>
Cristy882d9f42015-10-29 16:48:39 -04007747</div>
7748
7749<p class="magick-description">trim an image.</p>
7750
7751<p>This option removes any edges that are exactly the same color as the corner
7752pixels. Use <a href="command-line-options.html#fuzz">-fuzz</a> to make <a href="command-line-options.html#trim">-trim</a> remove
7753edges that are nearly the same color as the corner pixels.</p>
7754
7755<p>The page or virtual canvas information of the image is preserved allowing
7756you to extract the result of the <a href="command-line-options.html#trim">-trim</a> operation from the
7757image. Use a <a href="command-line-options.html#repage">+repage</a> to remove the virtual canvas page
7758information if it is unwanted.</p>
7759
7760<p>If the trimmed image 'disappears' an warning is produced, and a special
7761single pixel transparent 'missed' image is returned, in the same way as when a
7762<a href="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p>
7763
7764
7765<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007766 <h3><a id="type"></a>-type <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007767</div>
7768
7769<p class="magick-description">the image type.</p> <p>Choose from: <code>Bilevel</code>,
7770<code>Grayscale</code>, <code>GrayscaleMatte</code>, <code>Palette</code>,
7771<code>PaletteMatte</code>, <code>TrueColor</code>, <code>TrueColorMatte</code>,
7772<code>ColorSeparation</code>, or <code>ColorSeparationMatte</code>.</p>
7773
7774<p>Normally, when a format supports different subformats such as grayscale and
Cristy594d2772015-11-15 10:47:42 -05007775truecolor, the encoder will try to choose an efficient subformat. The <a
7776href="command-line-options.html#type">-type</a> option can be used to override this behavior. For
Cristy882d9f42015-10-29 16:48:39 -04007777example, to prevent a JPEG from being written in grayscale format even though
7778only gray pixels are present, use.</p>
7779
Cristy49380402017-06-29 11:24:55 -04007780<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007781convert bird.png -type TrueColor bird.jpg
Cristy49380402017-06-29 11:24:55 -04007782</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007783
7784<p>Similarly, use <a href="command-line-options.html#type">-type TrueColorMatte</a> to force the
7785encoder to write an alpha channel even though the image is opaque, if the
7786output format supports transparency.</p>
7787
7788<p>Use <a href="command-line-options.html#type">-type optimize</a> to ensure the image is written in the smallest possible file size.</p>
7789
7790<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007791 <h3><a id="undercolor"></a>-undercolor <var>color</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007792</div>
7793
7794<p class="magick-description">set the color of the annotation bounding box.</p>
7795
7796<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
7797
7798<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
7799
7800
7801<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007802 <h3><a id="update"></a>-update <var>seconds</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007803</div>
7804
7805<p class="magick-description">detect when image file is modified and redisplay.</p>
7806
7807<p>Suppose that while you are displaying an image the file that is currently
7808displayed is over-written. <code>display</code> will automagically detect that
7809the input file has been changed and update the displayed image
7810accordingly.</p>
7811
7812
7813<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007814 <h3><a id="unique-colors"></a>-unique-colors</h3>
Cristy882d9f42015-10-29 16:48:39 -04007815</div>
7816
7817<p class="magick-description">discard all but one of any pixel color.</p>
7818
7819
7820<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007821 <h3><a id="units"></a>-units <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007822</div>
7823
7824<p class="magick-description">the units of image resolution.</p>
7825
7826<p>Choose from: <code>Undefined</code>, <code>PixelsPerInch</code>, or
7827<code>PixelsPerCentimeter</code>. This option is normally used in conjunction
7828with the <a href="command-line-options.html#density">-density</a> option.</p>
7829
7830
7831<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007832 <h3><a id="unsharp"></a>-unsharp <var>radius</var><br />-unsharp <var>radius</var>x<var>sigma</var>{<var>+gain</var>}{<var>+threshold</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04007833</div>
7834
7835<p class="magick-description">sharpen the image with an unsharp mask operator.</p>
7836
7837<p>The <a href="command-line-options.html#unsharp">-unsharp</a> option sharpens an image. The image is
7838convolved with a Gaussian operator of the given radius and standard deviation
7839(sigma). For reasonable results, radius should be larger than sigma. Use
7840a radius of 0 to have the method select a suitable radius.</p>
7841
7842<p>The parameters are:</p>
7843
Cristy49380402017-06-29 11:24:55 -04007844<dl class="row">
7845<dt class="col-md-4">radius</dt>
7846<dd class="col-md-8">The radius of the Gaussian, in pixels, not counting the center pixel (default 0).</dd>
7847<dt class="col-md-4">sigma</dt>
7848<dd class="col-md-8">The standard deviation of the Gaussian, in pixels (default 1.0).</dd>
7849<dt class="col-md-4">gain</dt>
7850<dd class="col-md-8">The fraction of the difference between the original and the blur image that is added back into the original (default 1.0).</dd>
7851<dt class="col-md-4">threshold</dt>
7852<dd class="col-md-8">The threshold, as a fraction of <var>QuantumRange</var>, needed to apply the difference amount (default 0.05).</dd>
Cristy882d9f42015-10-29 16:48:39 -04007853</dl>
7854
7855<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007856 <h3><a id="verbose"></a>-verbose</h3>
Cristy882d9f42015-10-29 16:48:39 -04007857</div>
7858
7859<p class="magick-description">print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
7860
7861
7862<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007863 <h3><a id="version"></a>-version</h3>
Cristy882d9f42015-10-29 16:48:39 -04007864</div>
7865
7866<p class="magick-description">print ImageMagick version string and exit.</p>
7867
7868
7869<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007870 <h3><a id="view"></a>-view <var>string</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007871</div>
7872
7873<p class="magick-description">FlashPix viewing parameters.</p>
7874
7875
7876<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007877 <h3><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>
Cristy882d9f42015-10-29 16:48:39 -04007878</div>
7879
7880<p class="magick-description">soften the edges of the image in vignette style.</p>
7881
7882<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>
7883
7884<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007885 <h3><a id="virtual-pixel"></a>-virtual-pixel <var>method</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007886</div>
7887
7888<p class="magick-description">Specify contents of <var>virtual pixels</var>.</p>
7889
7890<p>This option defines what color source should be used if and when a color
7891lookup completely 'misses' the source image. The color(s) that appear to
7892surround the source image. Generally this color is derived from the source
7893image, but could also be set to a specify background color. </p>
7894
7895<p>Choose from these methods:</p>
7896
Cristy49380402017-06-29 11:24:55 -04007897<dl class="row">
7898<dt class="col-md-4">background</dt><dd class="col-md-8">the area surrounding the image is the background color</dd>
7899<dt class="col-md-4">black</dt><dd class="col-md-8">the area surrounding the image is black</dd>
7900<dt class="col-md-4">checker-tile</dt><dd class="col-md-8">alternate squares with image and background color</dd>
7901<dt class="col-md-4">dither</dt><dd class="col-md-8">non-random 32x32 dithered pattern</dd>
7902<dt class="col-md-4">edge</dt><dd class="col-md-8">extend the edge pixel toward infinity</dd>
7903<dt class="col-md-4">gray</dt><dd class="col-md-8">the area surrounding the image is gray</dd>
7904<dt class="col-md-4">horizontal-tile</dt><dd class="col-md-8">horizontally tile the image, background color above/below</dd>
7905<dt class="col-md-4">horizontal-tile-edge</dt><dd class="col-md-8">horizontally tile the image and replicate the side edge pixels</dd>
7906<dt class="col-md-4">mirror</dt><dd class="col-md-8">mirror tile the image</dd>
7907<dt class="col-md-4">random</dt><dd class="col-md-8">choose a random pixel from the image</dd>
7908<dt class="col-md-4">tile</dt><dd class="col-md-8">tile the image (default)</dd>
7909<dt class="col-md-4">transparent</dt><dd class="col-md-8">the area surrounding the image is transparent blackness</dd>
7910<dt class="col-md-4">vertical-tile</dt><dd class="col-md-8">vertically tile the image, sides are background color</dd>
7911<dt class="col-md-4">vertical-tile-edge</dt><dd class="col-md-8">vertically tile the image and replicate the side edge pixels</dd>
7912<dt class="col-md-4">white</dt><dd class="col-md-8">the area surrounding the image is white</dd>
Cristy882d9f42015-10-29 16:48:39 -04007913</dl>
7914
7915<p>The default value is "edge".</p>
7916
Cristy594d2772015-11-15 10:47:42 -05007917<p>This most important for distortion operators such as <a href="command-line-options.html#distort"
7918>-distort</a>, <a href="command-line-options.html#implode" >-implode</a>, and <a href="command-line-options.html#fx" >-fx</a>.
Cristy882d9f42015-10-29 16:48:39 -04007919However it also effects operations that may access pixels just outside the
Cristy594d2772015-11-15 10:47:42 -05007920image proper, such as <a href="command-line-options.html#convolve">-convolve</a>, <a
7921href="command-line-options.html#blur">-blur</a>, and <a href="command-line-options.html#sharpen">-sharpen</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04007922
Cristy594d2772015-11-15 10:47:42 -05007923<p>To print a complete list of virtual pixel types, use the <a
7924href="command-line-options.html#list">-list virtual-pixel</a> option.</p>
Cristy882d9f42015-10-29 16:48:39 -04007925
7926
7927<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007928 <h3><a id="visual"></a>-visual <var>type</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007929</div>
7930
7931<p class="magick-description">Animate images using this X visual type.", 'animate', 'display'</p>
7932
7933<p>Choose from these visual classes:</p>
7934
Cristy49380402017-06-29 11:24:55 -04007935<pre><code>
Cristy882d9f42015-10-29 16:48:39 -04007936StaticGray TrueColor
7937GrayScale DirectColor
7938StaticColor default
7939PseudoColor visual id
Cristy49380402017-06-29 11:24:55 -04007940</code></pre>
Cristy882d9f42015-10-29 16:48:39 -04007941
7942<p>The X server must support the visual you choose, otherwise an error occurs.
7943If a visual is not specified, the visual class that can display the most
7944simultaneous colors on the default screen is chosen.</p>
7945
7946
7947<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007948 <h3><a id="watermark"></a>-watermark <var>brightness</var>x<var>saturation</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007949</div>
7950
7951<p class="magick-description">Watermark an image using the given percentages of brightness and saturation.</p>
7952
7953<p>Take a grayscale image (with alpha mask) and modify the destination image's
7954brightness according to watermark image's grayscale value and the
7955<var>brightness</var> percentage. The destinations color saturation
7956attribute is just direct modified by the <var>saturation</var>
7957percentage, which defaults to 100 percent (no color change). </p>
7958
7959
7960<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007961 <h3><a id="wave"></a>-wave <var>amplitude</var><br />-wave <var>amplitude</var>x<var>wavelength</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007962</div>
7963
7964<p class="magick-description">Shear the columns of an image into a sine wave.</p>
7965
Cristye09ed312016-03-06 08:07:39 -05007966<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007967 <h3><a id="wavelet-denoise"></a>-wavelet-denoise <var>threshold</var><br />-wavelet-denoise <var>threshold</var>x<var>softness</var></h3>
Cristye09ed312016-03-06 08:07:39 -05007968</div>
7969
7970<p class="magick-description">removes noise from the image using a wavelet transform. The threshold is the value below which everything is considered noise and ranges from 0.0 (none) to QuantumRange or use percent (e.g. 5%). Softness attenuates the threshold and typically ranges from 0.0 (none) to 1.0. The higher the value the more noise that remains in the image.</p>
Cristy882d9f42015-10-29 16:48:39 -04007971
7972<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04007973 <h3><a id="weight"></a>-weight <var>fontWeight</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04007974</div>
7975
7976<p class="magick-description">Set a font weight for text.</p>
7977
7978<p>This setting suggests a font weight that ImageMagick should try to apply to
7979the currently selected font family. Use a positive integer for
7980<var>fontWeight</var> or select from the following.</p>
7981
Cristy49380402017-06-29 11:24:55 -04007982<dl class="row">
7983<dt class="col-md-4">Thin </dt>
7984<dd class="col-md-8">Same as <var>fontWeight</var> = 100.</dd>
7985<dt class="col-md-4">ExtraLight </dt>
7986<dd class="col-md-8">Same as <var>fontWeight</var> = 200.</dd>
7987<dt class="col-md-4">Light </dt>
7988<dd class="col-md-8">Same as <var>fontWeight</var> = 300.</dd>
7989<dt class="col-md-4">Normal </dt>
7990<dd class="col-md-8">Same as <var>fontWeight</var> = 400.</dd>
7991<dt class="col-md-4">Medium </dt>
7992<dd class="col-md-8">Same as <var>fontWeight</var> = 500.</dd>
7993<dt class="col-md-4">DemiBold </dt>
7994<dd class="col-md-8">Same as <var>fontWeight</var> = 600.</dd>
7995<dt class="col-md-4">Bold </dt>
7996<dd class="col-md-8">Same as <var>fontWeight</var> = 700.</dd>
7997<dt class="col-md-4">ExtraBold </dt>
7998<dd class="col-md-8">Same as <var>fontWeight</var> = 800.</dd>
7999<dt class="col-md-4">Heavy </dt>
8000<dd class="col-md-8">Same as <var>fontWeight</var> = 900.</dd>
Cristy882d9f42015-10-29 16:48:39 -04008001</dl>
Cristy594d2772015-11-15 10:47:42 -05008002<br/>
Cristy882d9f42015-10-29 16:48:39 -04008003
8004<p>To print a complete list of weight types, use <a href="command-line-options.html#list">-list weight</a>.</p>
8005
Cristy594d2772015-11-15 10:47:42 -05008006<p>For other settings that affect fonts, see the options <a
8007href="command-line-options.html#font">-font</a>, <a href="command-line-options.html#family">-family</a>, <a
8008href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line-options.html#style">-style</a>. </p>
Cristy882d9f42015-10-29 16:48:39 -04008009
8010<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008011 <h3><a id="white-point"></a>-white-point <var>x,y</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04008012</div>
8013
8014<p class="magick-description">chromaticity white point.</p>
8015
8016<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008017 <h3><a id="white-threshold"></a>-white-threshold <var>value</var>{<var>%</var>}</h3>
Cristy882d9f42015-10-29 16:48:39 -04008018</div>
8019
8020<p class="magick-description">Force to white all pixels above the threshold while leaving all pixels at or below the threshold unchanged.</p>
8021
8022<p> The threshold value can be given as a percentage or as an absolute integer
8023value within [0, <var>QuantumRange</var>] corresponding to the
Cristy594d2772015-11-15 10:47:42 -05008024desired <a href="command-line-options.html#channel">&#x2011;channel</a> value. See <a href="command-line-options.html#threshold">&#x2011;threshold</a>for more details on thresholds and resulting values. </p>
Cristy882d9f42015-10-29 16:48:39 -04008025
8026<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008027 <h3><a id="window"></a>-window <var>id</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04008028</div>
8029
8030<p class="magick-description">Make the image the background of a window.", 'animate', 'display'</p>
8031
8032<p><var>id</var> can be a window id or name. Specify <code>root</code>
8033to select X's root window as the target window.</p>
8034
8035<p>By default the image is tiled onto the background of the target window. If
8036<code>backdrop</code> or <a href="command-line-options.html#geometry">-resize</a> are specified, the
8037image is surrounded by the background color. Refer to <code>X RESOURCES</code>
8038for details.</p>
8039
8040<p>The image will not display on the root window if the image has more unique
Cristy594d2772015-11-15 10:47:42 -05008041colors than the target window colormap allows. Use <a
8042href="command-line-options.html#colors">-colors</a> to reduce the number of colors.</p>
Cristy882d9f42015-10-29 16:48:39 -04008043
8044<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008045 <h3><a id="window-group"></a>-window-group</h3>
Cristy882d9f42015-10-29 16:48:39 -04008046</div>
8047
8048<p class="magick-description">specify the window group.</p>
8049
8050<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008051 <h3><a id="write"></a>-write <var>filename</var></h3>
Cristy882d9f42015-10-29 16:48:39 -04008052</div>
8053
8054<p class="magick-description">write an image sequence.</p>
8055
8056<p>The image sequence preceding the <a href="command-line-options.html#write">-write</a> <var>filename</var> option is written out, and processing continues with the same image in its current state if there are additional options. To restore the image to its original state after writing it, use the <a href="command-line-options.html#write">+write</a> <var>filename</var> option.</p>
8057
8058<p>Use <a href="command-line-options.html#compress">-compress</a> to specify the type of image compression.</p>
Cristye0779712016-07-30 17:25:22 -04008059
8060<div style="margin: auto;">
Cristy49380402017-06-29 11:24:55 -04008061 <h3><a id="write-mask"></a>-write-mask <var>filename</var></h3>
Cristye0779712016-07-30 17:25:22 -04008062</div>
8063
8064<p class="magick-description">Prevent updates to image pixels specified by the mask.</p>
8065
8066<p>This the same as using a mask used for composite masking operations, with
8067grayscale values causing blended updates of the image the mask is attached to.
8068</p>
8069
8070<p>Use <a href="command-line-options.html#write-mask">+write-mask</a> to remove the mask from images.</p>
8071
8072<p>Also see <a href="command-line-options.html#clip-mask">-clip-mask</a> which work in the same way,
8073but with strict boolean masking. </p>
Cristy882d9f42015-10-29 16:48:39 -04008074</div>
8075</div>
8076
8077
Cristye93be682015-11-26 09:07:51 -05008078
Cristy882d9f42015-10-29 16:48:39 -04008079 <footer class="magick-footer">
cristy29f2c972015-07-28 13:37:46 +00008080 <p><a href="support.html">Donate</a>
8081 <a href="sitemap.html">Sitemap</a>
cristyd2432012015-05-04 23:15:15 +00008082 <a href="links.html">Related</a>
Cristye0779712016-07-30 17:25:22 -04008083 <a href="security-policy.html">Security</a>
cristy29f2c972015-07-28 13:37:46 +00008084 <a href="architecture.html">Architecture</a>
cristyd2432012015-05-04 23:15:15 +00008085</p>
8086 <p><a href="command-line-options.html#">Back to top</a>
cristyea2793e2015-05-31 16:52:26 +00008087 <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a>
Cristy6549abb2016-11-10 08:25:55 -05008088 <a href="https://www.imagemagick.org/script/contact.php">Contact Us</a></p>
Cristyfe36f992016-12-29 20:24:13 -05008089 <p><small>© 1999-2017 ImageMagick Studio LLC</small></p>
cristyd2432012015-05-04 23:15:15 +00008090 </footer>
8091</div><!-- /.container -->
8092
Cristyb7f455a2017-03-03 19:30:34 -05008093 <script src="https://localhost/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
Cristy1f1f3a02016-06-01 07:25:42 -04008094 <script src="../js/magick.html"></script>
cristyd2432012015-05-04 23:15:15 +00008095</div>
cristyad41c0c2012-10-31 00:49:28 +00008096</body>
cristy5a367e42015-05-05 12:39:18 +00008097</html>
Cristy49380402017-06-29 11:24:55 -04008098<!-- Magick Cache 29th June 2017 10:55 -->