http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
- <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
+ <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>\r
<title>ImageMagick: Command-line Options</title>
<meta http-equiv="Content-Language" content="en-US"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
<meta name="Application-name" content="ImageMagick"/>
- <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images."/>
+ <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images automagically."/>
<meta name="Application-url" content="http://www.imagemagick.org"/>
<meta name="Generator" content="PHP"/>
- <meta name="Keywords" content="command-line, options, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
+ <meta name="Keywords" content="command-line, options, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Image, Processing, Automagically"/>
<meta name="Rating" content="GENERAL"/>
<meta name="Robots" content="INDEX, FOLLOW"/>
<meta name="Generator" content="ImageMagick Studio LLC"/>
<meta name="Distribution" content="Global"/>
<link rel="icon" href="../images/wand.png"/>
<link rel="shortcut icon" href="../images/wand.ico" type="images/x-icon"/>
+ <link rel="canonical" href="http://www.imagemagick.org" />\r
<link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
<link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
+ <link rel="stylesheet" type="text/css" href="http://www.imagemagick.org/fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
<style type="text/css" media="all">\r
@import url("../www/magick.css");\r
</style>\r
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
- <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
- <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>\r
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>\r
+ <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
<script type="text/javascript">\r
$(document).ready(function() {\r
$("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
<div class="menu">
<a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
-<div class="sep"></div>\r
<div class="menu">
<a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
- <a title="Binary Release: iPhone" href="../www/binary-releases.html#iPhone">iPhone</a>
+ <a title="Binary Release: iOS" href="../www/binary-releases.html#iOS">iOS</a>
</div>
<div class="sub">
<a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>\r
<div class="menu">
- <a title="Sponsors" href="../www/sponsors.html">Sponsors:</a>
+ <a rel="follow" title="Sponsors" href="../www/sponsors.html">Sponsors:</a>
<a href="http://www.networkredux.com">
- <img src="../images/networkredux.png" alt="[sponsor]"
+ <img src="../images/networkredux.png" width="140" height="31" alt="[sponsor]"
style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div class="sponsor">
- <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201109010090 alexanian media -->
+ <a rel="follow" title="Sponsor: Autoteile" href="http://www.q11-shop.de">Autoteile</a><!-- 201205010540s suvalj -->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
</div>
<div class="sponsor">
- <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
+ <a rel="follow" title="Sponsor: Autos part" href="http://www.pkwteile.de/autoteile">Autos part</a><!-- 201112010090s jr@pkwte... -->
</div>
<div class="sponsor">
- <a title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
+ <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
</div>
<div class="sponsor">
- <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
+ <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div class="sponsor">
- <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
+ <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div class="sponsor">
- <a title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
+ <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div class="sponsor">
- <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
+ <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div class="sponsor">
- <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
+ <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div class="sponsor">
- <a title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011070100030 autoteile-Carparts-->
+ <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
+</div>
+<div class="sponsor">
+ <a rel="follow" title="Sponsor: Bildbearbeitung" href="http://www.bildschliff.de">Bildbearbeitung</a><!-- 2012060100300 strait.de-->
</div>
</div>
</div>
</div>\r
\r
<div class="eastbar">\r
-\r
+ <div class="g-plusone" data-size="standard" data-count="false"></div>\r
</div>\r
\r
<div class="main">\r
</p>
<p>It uses the <a href="#channel" >-channel</a> setting, (including the
-'<em>sync</em>' flag for channel syncronization), to determine which color
+'<em>sync</em>' flag for channel synchronization), to determine which color
values is used and modified. As the default <a href="#channel"
>-channel</a> setting is '<em>RGB,sync</em>', channels are modified
together by the same gamma value, preserving colors. </p>
>-auto-level</a> is the perfect or ideal version these operators. </p>
<p>It uses the <a href="#channel" >-channel</a> setting, (including the
-special '<em>sync</em>' flag for channel syncronization), to determine
+special '<em>sync</em>' flag for channel synchronization), to determine
which color values are used and modified. As the default <a
href="#channel" >+channel</a> setting is '<em>RGB,sync</em>', the
'<em>sync</em>' ensures that the color channels will are modified
-channel RB
</p>
-<p>All the channels that is present in an image can be specified using the
+<p>All the channels that are present in an image can be specified using the
special channel type <kbd>All</kbd>. Not all operators are 'channel capable',
but generally any operators that are generally 'grey-scale' image operators,
will understand this setting. See individual operator documentation. </p>
<br />
-<p>On top of the normal channel selection a extra flag can be specified,
+<p>On top of the normal channel selection an extra flag can be specified,
'<kbd>Sync</kbd>'. This is turned on by default and if set means that
operators that understand this flag should perform: cross-channel
-syncronization of the channels. If not specified, then most grey-scale
+synchronization of the channels. If not specified, then most grey-scale
operators will apply their image processing operations to each individual
channel (as specified by the rest of the <a href="#channel">-channel</a>
setting) completely independently from each other. </p>
processing with the understanding that fully-transparent colors should not
contribute to the final result. </p>
-<p>Basically, by default, operators work with color channels in syncronous, and
+<p>Basically, by default, operators work with color channels in synchronous, and
treats transparency as special, unless the <a href="#channel">-channel</a>
setting is modified so as to remove the effect of the '<kbd>Sync</kbd>' flag.
How each operator does this depends on that operators current implementation.
which can be 1, 2, 4, or 8. In such files, the color samples always have
8-bit depth.</dd>
+<dt>png:compression-filter=<em class="arg">value</em></dt>
+ <dd> valid values are 0 through 7. 0-4 are the corresponding PNG filters,
+ 5 means adaptive filtering except for images with a colormap, 6 means
+ adaptive filtering for all images, 7 means MNG "loco" compression.</dd>
+
+<dt>png:compression-level=<em class="arg">value</em></dt>
+ <dd> valid values are 0 through 9, with 0 providing the least but fastest
+ compression and 9 usually providing the best and always the slowest.</dd>
+
+<dt>png:compression-strategy=<em class="arg">value</em></dt>
+ <dd> valid values are 0 through 4, meaning default, filtered, huffman_only,
+ rle, and fixed ZLIB compression strategy. If you are using an old zlib
+ that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),
+ values 3 and 4, respectively, will use the zlib default strategy
+ instead.</dd>
+
<dt>png:exclude-chunk=<em class="arg">value</em></dt>
<dt>png:include-chunk=<em class="arg">value</em></dt>
<dd>ancillary chunks to be excluded from or included in PNG output.
</pre>
<p>The critical PNG chunks <kbd>IHDR</kbd>, <kbd>PLTE</kbd>,
- <kbd>IDAT</kbd>, and <kbd>IEND</kbd> cannot be excluded. Any of
- these entries appearing in the list will be ignored.</p>
+ <kbd>IDAT</kbd>, and <kbd>IEND</kbd> cannot be excluded. Any such
+ entries appearing in the list will be ignored.</p>
<p>If the ancillary PNG <kbd>tRNS</kbd> chunk is excluded and the
image has transparency, the PNG colortype is forced to be 4 or 6
any other nearby pixel, producing complex 2 dimensional displacements, rather
than a simple 1 dimensional vector displacements. </p>
-<p>Alteratively rather than suppling two separate images, as of IM v6.4.4-0,
+<p>Alteratively rather than supplying two separate images, as of IM v6.4.4-0,
you can use the 'red' channel of the overlay image to specify the horizontal
or X displacement, and the 'green' channel for the vertical or Y displacement.
</p>
<p>You can use 0,0 for the image size, which means to use the actual
dimensions found in the image header. Otherwise, it is scaled to the given
dimensions. See <a href="../www/compose.html">Alpha Compositing</a> for
-a detailed discussion of alpha composition methods that are available. </p>
-
+a detailed discussion of alpha composition methods that are available.
+The "special augmented compose operators" such as "dissolve" that require
+arguments cannot be used at present with the <kbd>-draw image</kbd> option.
+ </p>
<p>Use <kbd>text</kbd> to annotate an image with text. Follow the text coordinates with a string. If the string has embedded spaces, enclose it in single or double quotes.</p>
<p>For example, the following annotates the image with <kbd>Works like magick!</kbd> for an image titled <kbd>bird.miff</kbd>. </p>
<p class="crtsnip">
- -draw 'text 100,100 "Works like magick!"'
+ -draw "text 100,100 'Works like magick!' "
</p>
<p>See the <a href="#annotate">-annotate</a> option for another convenient way to annotate an image with text.</p>
<p>Drawing primitives conform to the <a href="../www/magick-vector-graphics.html">Magick Vector Graphics</a> format.</p>
+
<div style="margin: auto;">
<h4><a id="duplicate"></a>-duplicate <em class="arg">count,indexes</em></h4>
</div>
<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>create a <em>mirror image</em>.</td><td style='text-align:right;'></td></tr></table>
-<p>reflect the scanlines in the vertical direction.</p>
+<p>reflect the scanlines in the vertical direction. The image will be mirrored
+upside-down. </p>
+
<div style="margin: auto;">
<h4><a id="floodfill"></a>-floodfill {<em class="arg">+-</em>}<em class="arg">x</em>{<em class="arg">+-</em>}<em class="arg">y</em> <em class="arg">color</em></h4>
</div>
-<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>floodfill the image with color at the specified offset. Using <a href="#fuzz" >-fuzz</a> to floodfill pixels which only change by a small amount.</td><td style='text-align:right;'></td></tr></table>
+<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>floodfill the image with color at the specified offset.</td><td style='text-align:right;'></td></tr></table>
+
+<p>Flood fill starts from the given 'seed point' which is not gravity effected.
+Any color that matches within <a href="#fuzz" >-fuzz</a> color distance of the
+given <em class="arg">color</em> argument, connected to that 'seed point'
+will be replaced with the current <a href="#fill" >-fill</a> color. </p>
+
+<p>Note that if the pixel at the 'seed point' does not itself match the given
+<em class="arg">color</em> (according to <a href="#fuzz" >-fuzz</a>), then no
+action will be taken. </p>
+
+<p>This operator works more like the <a href="#opaque" >-opaque</A> option, than
+a more general flood fill that reads the matching color directly at the 'seed point'. For this form of flood fill, look at <a href="#draw" >-draw</a> and its 'color floodfill' drawing method. </p>
+
<div style="margin: auto;">
<h4><a id="flop"></a>-flop</h4>
<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>create a <em>mirror image</em>.</td><td style='text-align:right;'></td></tr></table>
-<p>reflect the scanlines in the horizontal direction.</p>
+<p>Reflect the scanlines in the horizontal direction, just like the image in
+a vertical mirror. </p>
<div style="margin: auto;">
<tr valign="top">
<td valign="top">merge</td>
<td valign="top">As 'flatten' method but merging all the given image
- layers into a new layer image just large enough to hold all the image
- without clipping or extra space. The new images virtual offset will
- prevere the position of the new layer, even if this offset is
- negative. the virtual canvas size of the first image is preserved.
+ layers to create a new layer image just large enough to hold all the
+ image without clipping or extra space. The new images virtual offset
+ will preserve the position of the new layer, even if this offset is
+ negative. The virtual canvas size of the first image is preserved.
</td>
- </tr>
+ </tr>
- <tr><td></td><td>Caution is advised when handling image layers with negative offsets
- as few image file formats handle them correctly. </td>
+ <tr><td></td><td>Caution is advised when handling image layers with
+ negative offsets as few image file formats handle them correctly.
+ Following this operation methd with <a href="#repage" >+repage</a>
+ will remove the layer offset, and create a image in which all the
+ overlaid image positions relative to each other is preserved, though
+ not nessaraily exactly where you specified them.
+ </td>
+ </tr>
+
+ <tr><td></td><td>See also 'trim-bounds' below whcih is closely related but
+ without doing the'flatten' to merge the images together. </td>
</tr>
<tr valign="top">
<td valign="top">mosaic</td>
<td valign="top">As 'flatten' method but expanding the initial canvas size
- of the first image so as to hold all the image layers. However as a
- virtual canvas is 'locked' to the origin, by definition, image layers
- with a negative offsets will still be clipped by the top and left
- edges.</td>
+ of the first image in a positive direction only so as to hold all the
+ image layers. However as a virtual canvas is 'locked' to the origin,
+ by its own definition, image layers with a negative offsets will still
+ become clipped by the top and left edges. See 'merge' or 'trim-bounds'
+ if this could be a problem. </td>
+
</tr>
- <tr><td></td><td>This method is commonly used to layout individual image using various
- offset but without knowing the final canvas size. The resulting image
- will, like 'flatten' not have any virtual offset, so can be saved to
- any image file format. </td>
+ <tr><td></td><td>This method is commonly used to layout individual image
+ using various offset but without knowing the final canvas size. The
+ resulting image will, like 'flatten' not have any virtual offset, so
+ can be saved to any image file format. </td>
</tr>
the result will continue to animate properly. </td>
</tr>
- <tr><td></td><td> There is no guarantee that the best optimization is found. But
- then no reasonably fast GIF optimization algorithm can do this.
+ <tr><td></td><td> There is no guarantee that the best optimization is found.
+ But then no reasonably fast GIF optimization algorithm can do this.
However this does seem to do better than most other GIF frame
optimizers seen. </td>
</tr>
'<kbd>optimize-frame</kbd>' technique. </td>
</tr>
- <tr><td></td><td>There is the possibility that the change in the disposal style will
- result in a worsening in the optimization of later frames, though this
- is unlikely. In other words there no guarantee that it is better than
- the normal '<kbd>optimize-frame</kbd>' technique. For some animations
- however you can get a vast improvement in the final animation size. </td>
+ <tr><td></td><td>There is the possibility that the change in the disposal
+ style will result in a worsening in the optimization of later frames,
+ though this is unlikely. In other words there no guarantee that it is
+ better than the normal '<kbd>optimize-frame</kbd>' technique. For some
+ animations however you can get a vast improvement in the final
+ animation size. </td>
</tr>
<tr valign="top">
</td>
</tr>
- <tr><td></td><td>This should allow a existing frame optimized GIF animation to compress
- into a smaller file size due to larger areas of one (transparent)
- color rather than a pattern of multiple colors repeating the current
- disposed image of the last frame. </td>
+ <tr><td></td><td>This should allow a existing frame optimized GIF animation
+ to compress into a smaller file size due to larger areas of one
+ (transparent) color rather than a pattern of multiple colors repeating
+ the current disposed image of the last frame. </td>
</tr>
<tr valign="top">
</td>
</tr>
- <tr><td></td><td>Usually this a result of using a constant time delay across the
- whole animation, or after a larger animation was split into smaller
- sub-animations. The duplicate frames could also have been used as
- part of some frame optimization methods. </td>
+ <tr><td></td><td>Usually this a result of using a constant time delay
+ across the whole animation, or after a larger animation was split into
+ smaller sub-animations. The duplicate frames could also have been
+ used as part of some frame optimization methods. </td>
</tr>
<tr valign="top">
warning is then issued). </td>
</tr>
- <tr><td></td><td>In a GIF animation, such images are usually frames which provide
- partial intermediary updates between the frames that are actually
- displayed to users. These frames are usally added for improved frame
- optimization in GIF animations. </td>
+ <tr><td></td><td>In a GIF animation, such images are usually frames which
+ provide partial intermediary updates between the frames that are
+ actually displayed to users. These frames are usally added for
+ improved frame optimization in GIF animations. </td>
</tr>
<tr valign="top">
<td valign="top">trim-bounds</td>
<td valign="top">Find the bounds of all the images in the current
image sequence, then adjust the offsets so all images are contained on
- a minimal positive canvas. None of the image data is modified, only
- there virtual canvas size and offset. The all the image is given
- the same canvas size, and and will have a positive offset, but will
- remain in the same position relative to each other. As a result of the
- minimal canvas size at least one image will touch every edge of that
- canvas. The image data however may be transparent.
- </td>
+ a minimal positive canvas. None of the image data is modified or
+ merged, only the individual image virtual canvas size and offset.
+ All the images is given the same canvas size, and and will have
+ a positive offset, but will remain in the same position relative to
+ each other. As a result of the minimal canvas size at least one image
+ will touch every edge of that canvas. The image data touching those
+ edges however may be transparent. </td>
+ </tr>
+
+ <tr><td></td><td>The result is much like if you used 'merge' followed by a
+ <a href="#repage" >+repage</a> option, except that all the images
+ have been kept separate. If 'flatten' is used after using
+ 'trim-bounds' you will get the same result. </td>
</tr>
</tbody>
<p>The operators <a href="#coalesce" >-coalesce</a>, <a href="#deconstruct"
>-deconstruct</a>, <a href="#flatten" >-flatten</a>, and <a href="#mosaic"
->-mosaic</a> are only aliases for the above methods. Also see <a
-href="#page" >-page</a>, <a href="#repage" >-repage</a> operators, the <a
-href="#compose" >-compose</a> setting, and the GIF <a href="#dispose"
->-dispose</a> and <a href="#delay" >-delay</a> settings. </p>
+>-mosaic</a> are only aliases for the above methods and may be depreciated in
+the future. Also see <a href="#page" >-page</a>, <a href="#repage"
+>-repage</a> operators, the <a href="#compose" >-compose</a> setting, and the
+GIF <a href="#dispose" >-dispose</a> and <a href="#delay" >-delay</a>
+settings. </p>
<div style="margin: auto;">
<h4><a id="mode"></a>-mode <em class="arg">geometry</em></h4>
</div>
-<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>make each pixel the 'predominate color' of the neighborhood.</td><td style='text-align:right;'>[<a href="../www/convert.html">convert</a>, <a href="../www/mogrify.html">mogrify</a>]</td></tr></table>
+<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>make each pixel the 'predominant color' of the neighborhood.</td><td style='text-align:right;'>[<a href="../www/convert.html">convert</a>, <a href="../www/mogrify.html">mogrify</a>]</td></tr></table>
<div style="margin: auto;">
<h4>-mode <em class="arg">value</em></h4>
CMYK profiles are often very asymmetric since they involve 3−>4 and 4−>3 channel mapping.
</p>
-<p>The <a href="#profile">-profile</a> option can also be used to inject
-previously-formatted ancillary chunks into the output PNG file, using
-the commandline option as shown below or by setting the profile via a
-programming interface:</p>
-
-<p class='crt'><span class="crtprompt"> $magick> </span><span class='crtin'>-profile PNG-chunk-x:<filename></span></p>
-<p>where <em>x</em> is a location flag and
-<em class="arg">filename</em> is a file containing the chunk
-name in the first 4 bytes, then a colon (":"), followed by the chunk data.
-This encoder will compute the chunk length and CRC, so those must not
-be included in the file.</p>
-
-<p>"x" can be "b" (before PLTE), "m" (middle, i.e., between PLTE and IDAT),
-or "e" (end, i.e., after IDAT). If you want to write multiple chunks
-of the same type, then add a short unique string after the "x" to prevent
-subsequent profiles from overwriting the preceding ones, e.g.,</p>
-
-
-<p class='crt'><span class="crtprompt"> $magick> </span><span class='crtin'>-profile PNG-chunk-b01:file01 -profile PNG-chunk-b02:file02</span></p>
<div style="margin: auto;">
<h4><a id="quality"></a>-quality <em class="arg">value</em></h4>
</div>
<table style='background-color:#FFFFE0; margin-left:40px; margin-right:40px; width:88%'><tr><td style='width:75%'>JPEG/MIFF/PNG compression level.</td><td style='text-align:right;'></td></tr></table>
-<p>For the JPEG and MPEG image formats, quality is 1 (lowest image quality and highest compression) to 100 (best quality but least effective compression). The default is to use the estimate quality of your input image otherwise 92. Use the <a href="#sampling-factor">-sampling-factor</a> option to specify the factors for chroma downsampling.</p>
+<p>For the JPEG and MPEG image formats, quality is 1 (lowest image quality and
+highest compression) to 100 (best quality but least effective compression).
+The default is to use the estimated quality of your input image if it can
+be determined, otherwise 92. When the quality is greater than 90, then the
+chroma channels are not downsampled.
+Use the <a href="#sampling-factor">-sampling-factor</a> option to specify the
+factors for chroma downsampling.</p>
<p>For the MIFF image format, quality/10 is the zlib compression level, which is 0 (worst but fastest compression) to 9 (best but slowest). It has no effect on the image appearance, since the compression is always lossless.</p>
<p>For the JPEG-2000 image format, quality is mapped using a non-linear equation to the compression ratio required by the Jasper library. This non-linear equation is intended to loosely approximate the quality provided by the JPEG v1 format. The default quality value 100, a request for non-lossy compression. A quality of 75 results in a request for 16:1 compression.</p>
-<p>For the MNG and PNG image formats, the quality value sets the zlib compression level (quality / 10) and filter-type (quality % 10). For compression level 0, the Huffman-only strategy is used, which is fastest but not necessarily the worst compression. The default PNG compression is 75.</p>
+<p>For the MNG and PNG image formats, the quality value sets the zlib
+compression level (quality / 10) and filter-type (quality % 10). The default
+PNG "quality" is 75, which means compression level 7 with adaptive PNG
+filtering, unless the image has a color map, in which case it means
+compression level 7 with no PNG filtering.</p>
+
+<p>For compression level 0, the Huffman-only strategy is used, which is fastest but not necessarily the worst compression.</p>
-<p>If filter-type is 4 or less, the specified filter-type is used for all scanlines:</p>
+<p>If filter-type is 4 or less, the specified PNG filter-type is used for
+all scanlines:</p>
<pre class="text">
0: none
4: Paeth
</pre>
-<p>If filter-type is 5, adaptive filtering is used when quality is greater than 50 and the image does not have a color map, otherwise no filtering is used.</p>
+<p>If filter-type is 5, adaptive filtering is used when quality is greater
+than 50 and the image does not have a color map, otherwise no filtering is
+used.</p>
+
+<p>If filter-type is 6, adaptive filtering
+with <em class="arg">minimum-sum-of-absolute-values</em> is used.</p>
+
+<p>Only if the output is MNG, if filter-type is 7, the LOCO color
+transformation (intrapixel differencing) and adaptive filtering
+with <em class="arg">minimum-sum-of-absolute-values</em> are used.</p>
-<p>If filter-type is 6, adaptive filtering with <em class="arg">minimum-sum-of-absolute-values</em> is used.</p>
+<p>If the filter-type is 8 the zlib Z_RLE compression strategy is used with
+ no PNG filtering.</p>
-<p>Only if the output is MNG, if filter-type is 7, the LOCO color transformation and adaptive filtering with <em class="arg">minimum-sum-of-absolute-values</em> are used.</p>
+<p>If the filter-type is 9 the zlib Z_RLE compression strategy is used with
+ adaptive PNG filtering.</p>
-<p>The quality setting has no effect on the appearance of PNG and MNG images, since the compression is always lossless.</p>
+<p>The quality setting has no effect on the appearance or signature of PNG
+and MNG images, since the compression is always lossless.</p>
-<p>For further information, see the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>
+<p>Not all combinations of compression level, strategy, and PNG filter type
+can be obtained using the -quality option. For more precise control,
+you can use the PNG:compression-level=N, PNG:compression-strategy=N, and
+PNG:compression-filter=N defines, respectively, instead.
+See <a href="#define">-define</a>. Values from the defines take precedence
+over values from the -quality option.</p>
+
+<p>For further information, see
+the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>
<div style="margin: auto;">
<h4><a id="quantize"></a>-quantize <em class="arg">colorspace</em></h4>
>-verbose</a> information ("<kbd>info:</kbd>" output format) as "Properties".
</p>
-<p>This includes string 'properities' that are set by and assigned to images
+<p>This includes string 'properties' that are set by and assigned to images
using the options <a href="#comment" >-comment</a>, <a href="#label"
>-label</a>, <a href="#caption" >-caption</a>. These options actually assign
a global 'artifact' which are automatically assigned (and any <a href="../www/escape.html" >Format Percent
Properties</a> in the defined value. For example:</p>
<p class='crt'><span class="crtprompt"> $magick> </span><span class='crtin'>convert rose: -set origsize '%wx%h' -resize 50% \</span><span class='crtout'> -format 'Old size = %[origsize] New size = %wx%h' info:</span><span class="crtprompt"> $magick> </span><span class='crtin'>Old size = 70x46 New size = 35x23</span></p>
-<p>Other well known 'properities' that can be include:
+<p>Other well known 'properties' that are availible include:
'<kbd>date:create</kbd>' and '<kbd>date:modify</kbd>' and
'<kbd>signature</kbd>'. </p>
<p>If the setting value is prefixed with "<kbd>option:</kbd>" the setting will
be saved as a global "Artifact" exactly as if it was set using the <a
href="#define" >-define</a> option. As such settings are global in scope, they
-can be used to pass 'attributes' and 'properities' of one specific image,
+can be used to pass 'attributes' and 'properties' of one specific image,
in a way that allows you to use them in a completely different image, even if
the original image has long since been modified or destroyed. For example: </p>
<p>You can set the attributes of the image registry by prefixing the value
with <kbd>registry:</kbd>.</p>
+<p>The <a href="#set">-set profile</a> option can also be used to inject
+previously-formatted ancillary chunks into the output PNG file, using
+the commandline option as shown below or by setting the profile via a
+programming interface:</p>
+
+<p class='crt'><span class="crtprompt"> $magick> </span><span class='crtin'>convert in.png -set profile PNG-chunk-x:<filename> out.png</span></p>
+<p>where <em>x</em> is a location flag and
+<em class="arg">filename</em> is a file containing the chunk
+name in the first 4 bytes, then a colon (":"), followed by the chunk data.
+This encoder will compute the chunk length and CRC, so those must not
+be included in the file.</p>
+
+<p>"x" can be "b" (before PLTE), "m" (middle, i.e., between PLTE and IDAT),
+or "e" (end, i.e., after IDAT). If you want to write multiple chunks
+of the same type, then add a short unique string after the "x" to prevent
+subsequent profiles from overwriting the preceding ones, e.g.,</p>
+
+
+<p class='crt'><span class="crtprompt"> $magick> </span><span class='crtin'>convert in.png -set profile PNG-chunk-b01:file01 / <br/>
+ -profile PNG-chunk-b02:file02 out.png</span></p>
+<p> </p>
<div style="margin: auto;">