<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
  <title>ImageMagick: PerlMagick, Perl API for ImageMagick</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 automagically."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="perlmagick, perl, api, for, imagemagick, 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="Author" content="ImageMagick Studio LLC"/>
  <meta name="Revisit-after" content="2 DAYS"/>
  <meta name="Resource-type" content="document"/>
  <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
  <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
  <script type="text/javascript">
    $(document).ready(function() {
      $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
        'transitionIn'  : 'elastic',
        'transitionOut' : 'elastic',
        'overlayShow'   : false,
        'opacity'       : true
      });
    });
  </script>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<div style="margin: 17px auto; float: left;">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "5439289906";
    google_ad_width = 728;
    google_ad_height = 90;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg"
  alt="ImageMagick Logo"
  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg"
  alt="ImageMagick Sprite"
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: 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>
<div class="menu">
  <a title="Command-line Tools" href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="../www/magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="../www/resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="../www/architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="../www/search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a rel="follow" title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting" 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 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 rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a rel="follow" title="Sponsor: Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 20120801000600 -->
</div>
</div>
</div>
</div>

<div class="eastbar">

</div>

<div class="main">


<h1>PerlMagick API</h1>
<p class="navigation-index">[<a href="#installation">Installation</a> &bull; <a href="#overview">Overview</a> &bull; <a href="#example">Example Script</a> &bull; <a href="#read">Read or Write an Image</a> &bull; <a href="#manipulate">Manipulate an Image</a> &bull; <a href="#set-attribute">Set an Image Attribute</a> &bull; <a href="#get-attribute">Get an Image Attribute</a> &bull; <a href="#compare">Compare an Image to its Reconstruction</a> &bull; <a href="#montage">Create an Image Montage</a> &bull; <a href="#blobs">Working with Blobs</a> &bull; <a href="#direct-access">Direct-access to Image Pixels</a> &bull; <a href="#miscellaneous">Miscellaneous Methods</a> &bull; <a href="#exceptions">Handling Exceptions</a>&bull; <a href="#constants">Constant</a> ]</p>

<div class="doc-section">
<a id="introduction"></a>
<p><a href="../www/download.html">PerlMagick</a> is an objected-oriented <a href="http://www.perl.com/perl/">Perl</a> interface to ImageMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl script. This makes it very suitable for Web CGI scripts. You must have ImageMagick 6.5.5 or above and Perl version 5.005_02 or greater installed on your system for PerlMagick to build properly.</p>

<p>There are a number of useful scripts available to show you the value of PerlMagick. You can do Web based image manipulation and conversion with <a href="http://www.imagemagick.org/download/perl">MagickStudio</a>, or use <a href="https://www.imagemagick.org/subversion/ImageMagick/trunk/PerlMagick/demo/">L-systems</a> to create images of plants using mathematical constructs, and finally navigate through collections of thumbnail images and select the image to view with the <a href="http://webmagick.sourceforge.net/">WebMagick Image Navigator</a>.</p>

<p>You can try PerlMagick from your Web browser at the <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">ImageMagick Studio</a>. Or, you can see <a href="../www/examples.html">examples</a> of select PerlMagick functions.</p>
</div>

<h2><a id="installation"></a>Installation</h2>
<div class="doc-section">

<p><b>UNIX</b></p>

<p>The following instructions for Unix apply only to the unbundled PerlMagick as obtained from CPAN. PerlMagick is included as a subdirectory (PerlMagick) of the ImageMagick source distribution, and may be configured and built using the instructions provided in the ImageMagick distribution's README.txt file. It is usually most convenient to install PerlMagick as part of the ImageMagick distribution.</p>

<p>ImageMagick must already be installed on your system. Next, get
the <a href="../www/download.html">PerlMagick</a> distribution corresponding to the installed ImageMagick distribution
(e.g., PerlMagick 6.70 for
ImageMagick 6.7.0) and unpack it as shown below:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>tar xvfz PerlMagick-6.70.tar.gz</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd PerlMagick</span></p>
<p>Next, edit <kbd>Makefile.PL</kbd> and change LIBS and INC to include the appropriate path information to the required <kbd>MagickCore</kbd> library. You may need paths to JPEG, PNG, TIFF, etc.  delegates if they were included with your installed version of ImageMagick. Build and install it like this:</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>perl Makefile.PL</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make install</span></p>
<p>For Unix, you typically need to be <kbd>root</kbd> to install the software. There are ways around this. Consult the Perl manual pages for more information.</p>

<p><b>Windows XP / Windows 2000</b></p>

<p>ImageMagick must already be installed on your system. Also, the ImageMagick source distribution for <a href="../www/download.html">Windows 2000</a> is required. You must also have the <kbd>nmake</kbd> from the Visual C++ or J++ development environment. Copy <kbd>\bin\IMagick.dll</kbd> and <kbd>\bin\X11.dll</kbd> to a directory in your dynamic load path such as <kbd>c:\perl\site\5.00502</kbd>.</p>

<p>Next, type</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd PerlMagick</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>perl Makefile.nt</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>nmake</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>nmake install</span></p>
<p>See the <a href="http://www.dylanbeattie.net/magick/">PerlMagick Windows HowTo</a> page for further installation instructions.</p>

<p><b>Running the Regression Tests</b></p>

<p>To verify a correct installation, type</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make test</span></p>
<p>Use <kbd>nmake test</kbd> under Windows. There are a few demonstration scripts available to exercise many of the functions PerlMagick can perform. Type</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>cd demo</span><span class='crtout'></span><span class="crtprompt"> $magick&gt; </span><span class='crtin'>make</span></p>
<p>You are now ready to utilize the PerlMagick methods from within your Perl scripts.</p>

</div>

<h2><a id="overview"></a>Overview</h2>
<div class="doc-section">

<p>Any script that wants to use PerlMagick methods must first define the methods within its namespace and instantiate an image object. Do this with:</p>

<pre class="code">
  use Image::Magick;

  $image=Image::Magick-&gt;new;
</pre>

<p>The new() method takes the same parameters as <a href="#set-attribute">SetAttribute</a> . For example,</p>

<pre class="code">
  $image=Image::Magick-&gt;new(size=&gt;'384x256');
</pre>

<p>Next you will want to read an image or image sequence, manipulate it, and then display or write it. The input and output methods for PerlMagick are defined in <a href="#read">Read or Write an Image</a>. See <a href="#set-attribute">Set an Image Attribute</a> for methods that affect the way an image is read or written. Refer to <a href="#manipulate">Manipulate an Image</a> for a list of methods to transform an image. <a href="#get-attribute">Get an Image Attribute</a> describes how to retrieve an attribute for an image. Refer to <a href="#montage">Create an Image Montage</a> for details about tiling your images as thumbnails on a background. Finally, some methods do not neatly fit into any of the categories just mentioned. Review <a href="#misc">Miscellaneous Methods</a> for a list of these methods.</p>

<p>Once you are finished with a PerlMagick object you should consider destroying it. Each image in an image sequence is stored in virtual memory. This can potentially add up to mebibytes of memory. Upon destroying a PerlMagick object, the memory is returned for use by other Perl methods. The recommended way to destroy an object is with <kbd>undef</kbd>:</p>

<pre class="code">
  undef $image;
</pre>

<p>To delete all the images but retain the <kbd>Image::Magick</kbd> object use</p>

<pre class="code">
  @$image = ();
</pre>

<p>and finally, to delete a single image from a multi-image sequence, use</p>

<pre class="code">
  undef $image-&gt;[$x];
</pre>

<p>The next section illustrates how to use various PerlMagick methods to manipulate an image sequence.</p>

<p>Some of the PerlMagick methods require external programs such as <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a>. This may require an explicit path in your PATH environment variable to work properly. For example (in Unix),</p>

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>$ENV{PATH}='/../bin:/usr/bin:/usr/local/bin';</span></p>
<div style="margin: auto;">
<h2><a id="example"></a>Example Script</h2>
</div>

<p>Here is an example script to get you started:</p>

<pre class="code">
  #!/usr/local/bin/perl
  use Image::Magick;<br />
  my($image, $x);<br />
  $image = Image::Magick-&gt;new;
  $x = $image-&gt;Read('girl.png', 'logo.png', 'rose.png');
  warn "$x" if "$x";<br />
  $x = $image-&gt;Crop(geometry=&gt;'100x100+100+100');
  warn "$x" if "$x";<br />
  $x = $image-&gt;Write('x.png');
  warn "$x" if "$x";
</pre>

<p>The script reads three images, crops them, and writes a single image as a GIF animation sequence. In many cases you may want to access individual images of a sequence. The next example illustrates how this done:</p>

<pre class="code">
  #!/usr/local/bin/perl
  use Image::Magick;<br />
  my($image, $p, $q);<br />
  $image = new Image::Magick;
  $image-&gt;Read('x1.png');
  $image-&gt;Read('j*.jpg');
  $image-&gt;Read('k.miff[1, 5, 3]');
  $image-&gt;Contrast();
  for ($x = 0; $image-&gt;[$x]; $x++)
  {
    $image-&gt;[$x]-&gt;Frame('100x200') if $image-&gt;[$x]-&gt;Get('magick') eq 'GIF';
    undef $image-&gt;[$x] if $image-&gt;[$x]-&gt;Get('columns') &lt; 100;
  }
  $p = $image-&gt;[1];
  $p-&gt;Draw(stroke=&gt;'red', primitive=&gt;'rectangle', points=&gt;20,20 100,100');
  $q = $p-&gt;Montage();
  undef $image;
  $q-&gt;Write('x.miff');
</pre>

<p>Suppose you want to start out with a 100 by 100 pixel white canvas with a red pixel in the center. Try</p>

<pre class="code">
  $image = Image::Magick-&gt;new;
  $image-&gt;Set(size=&gt;'100x100');
  $image-&gt;ReadImage('canvas:white');
  $image-&gt;Set('pixel[49,49]'=&gt;'red');
</pre>

<p>Here we reduce the intensity of the red component at (1,1) by half:</p>

<pre class="code">
  @pixels = $image-&gt;GetPixel(x=&gt;1,y=&gt;1);
  $pixels[0]*=0.5;
  $image-&gt;SetPixel(x=&gt;1,y=&gt;1,color=&gt;\@pixels);
</pre>

<p>Or suppose you want to convert your color image to grayscale:</p>

<pre class="code">
  $image-&gt;Quantize(colorspace=&gt;'gray');
</pre>

<p>Let's annotate an image with a Taipai TrueType font:</p>

<pre class="code">
  $text = 'Works like magick!';
  $image-&gt;Annotate(font=&gt;'kai.ttf', pointsize=&gt;40, fill=&gt;'green', text=&gt;$text);
</pre>

<p>Perhaps you want to extract all the pixel intensities from an image and write them to STDOUT:</p>

<pre class="code">
  @pixels = $image-&gt;GetPixels(map=&gt;'I', height=&gt;$height, width=&gt;$width, normalize=&gt;true);
  binmode STDOUT;
  print pack('B*',join('',@pixels));
</pre>

<p>Other clever things you can do with a PerlMagick objects include</p>

<pre  class="code">
  $i = $#$p"+1";   # return the number of images associated with object p
  push(@$q, @$p);  # push the images from object p onto object q
  @$p = ();        # delete the images but not the object p
  $p-&gt;Convolve([1, 2, 1, 2, 4, 2, 1, 2, 1]);   # 3x3 Gaussian kernel
</pre>

<div style="margin: auto;">
  <h2><a id="read"></a>Read or Write an Image</h2>
</div>

<p>Use the methods listed below to either read, write, or display an image or image sequence:</p>

<table class="doc">
<caption>Read or Write Methods</caption>
<colgroup>
  <col width="20%"></col>
  <col width="20%"></col>
  <col width="20%"></col>
  <col width="40%"></col>
</colgroup>
<tbody>

  <tr>
    <th>Method</th>
    <th>Parameters</th>
    <th>Return Value</th>
    <th>Description</th>
  </tr>

  <tr>
    <td valign="top">Read</td>
    <td valign="top">one or more filenames</td>
    <td valign="top">the number of images read</td>
    <td valign="top">read an image or image sequence</td>
  </tr>

  <tr>
    <td valign="top">Write</td>
    <td valign="top">filename</td>
    <td valign="top">the number of images written</td>
    <td valign="top">write an image or image sequence</td>
  </tr>

  <tr>
    <td valign="top">Display</td>
    <td valign="top">server name</td>
    <td valign="top">the number of images displayed</td>
    <td valign="top">display the image or image sequence to an X server</td>
  </tr>

  <tr>
    <td valign="top">Animate</td>
    <td valign="top">server name</td>
    <td valign="top">the number of images animated</td>
    <td valign="top">animate image sequence to an X server</td>
  </tr>
</tbody>
</table>

<p>For convenience, methods Write(), Display(), and Animate() can take any parameter that <a href="#set-attribute">SetAttribute</a> knows about. For example,</p>

<pre class="code">
  $image-&gt;Write(filename=&gt;'image.png', compression=&gt;'None');
</pre>

<p>Use <kbd>-</kbd> as the filename to method Read() to read from standard in or to method Write() to write to standard out:</p>

<pre class="code">
  binmode STDOUT;
  $image-&gt;Write('png:-');
</pre>

<p>To read an image in the GIF format from a PERL filehandle, use:</p>

<pre class="code">
  $image = Image::Magick-&gt;new;
  open(IMAGE, 'image.gif');
  $image-&gt;Read(file=&gt;\*IMAGE);
  close(IMAGE);
</pre>

<p>To write an image in the PNG format to a PERL filehandle, use:</p>

<pre class="code">
  $filename = "image.png";
  open(IMAGE, ">$filename");
  $image-&gt;Write(file=&gt;\*IMAGE, filename=&gt;$filename);
  close(IMAGE);
</pre>

<p>Note, reading from or writing to a Perl filehandle may fail under Windows due to different versions of the C-runtime libraries between ImageMagick and the ActiveState Perl distributions or if one of the DLL's is linked with the /MT option.  See <a href="http://msdn.microsoft.com/en-us/library/ms235460.aspx">Potential Errors Passing CRT Objects Across DLL Boundaries</a> for an explanation.</p>

<p>If <kbd>%0Nd, %0No, or %0Nx</kbd> appears in the filename, it is interpreted as a printf format specification and the specification is replaced with the specified decimal, octal, or hexadecimal encoding of the scene number. For example,</p>

<pre class="text">
  image%03d.miff
</pre>

<p>converts files image000.miff, image001.miff, etc.</p>

<p>You can optionally add <i>Image</i> to any method name. For example, ReadImage() is an alias for method Read().</p>

</div>

<h2><a id="manipulate"></a>Manipulate an Image</h2>
<div class="doc-section">

<p>Once you create an image with, for example, method ReadImage() you may want to operate on it. Below is a list of all the image manipulations methods available to you with PerlMagick.  There are <a href="../www/examples.html">examples</a> of select PerlMagick methods. Here is an example call to an image manipulation method:</p>

<pre class="code">
  $image-&gt;Crop(geometry=&gt;'100x100+10+20');
  $image-&gt;[$x]-&gt;Frame("100x200");
</pre>

<p>And here is a list of other image manipulation methods you can call:</p>

<table class="doc">
<caption>Image Manipulation Methods</caption>
<tbody>
  <tr>
    <th>Method</th>
    <th style="width: 40%">Parameters</th>
    <th style="width: 40%">Description</th>
  </tr>

  <tr>
    <td valign="top">AdaptiveBlur</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">adaptively blur the image with a Gaussian operator of the given radius and standard deviation (sigma).  Decrease the effect near edges.</td>
  </tr>

  <tr>
    <td valign="top">AdaptiveResize</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, filter=&gt;{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=&gt;<i>double</i>, blur=&gt;<i>double</i></td>
    <td valign="top">adaptively resize image using data dependant triangulation. Specify <kbd>blur</kbd> &gt; 1 for blurry or &lt; 1 for sharp</td>
  </tr>

  <tr>
    <td valign="top">AdaptiveSharpen</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">adaptively sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).  Increase the effect near edges.</td>
  </tr>

  <tr>
    <td valign="top">AdaptiveThreshold</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, offset=&gt;<i>integer</i></td>
    <td valign="top">local adaptive thresholding.</td>
  </tr>

  <tr>
    <td valign="top">AddNoise</td>
    <td valign="top">noise=&gt;{Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson}, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">add noise to an image</td>
  </tr>

  <tr>
    <td valign="top">AffineTransform</td>
    <td valign="top">affine=&gt;<i>array of float values</i>, translate=&gt;<i>float, float</i>, scale=&gt; <i>float, float</i>, rotate=&gt;<i>float</i>, skewX=&gt;<i>float</i>, skewY=&gt;<i>float</i>, interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, background=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">affine transform image</td>
  </tr>

  <tr>
    <td valign="top">Affinity</td>
    <td valign="top">image=&gt;<i>image-handle</i>, method=&gt;{None, FloydSteinberg, Riemersma}</td>
    <td valign="top">choose a particular set of colors from this image</td>
  </tr>

  <tr>
    <td valign="top">Annotate</td>
    <td valign="top">text=&gt;<i>string</i>, font=&gt;<i>string</i>, family=&gt;<i>string</i>, style=&gt;{Normal, Italic, Oblique, Any}, stretch=&gt;{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=&gt;<i>integer</i>, pointsize=&gt;<i>integer</i>, density=&gt;<i>geometry</i>, stroke=&gt;<i><a href="../www/color.html">color name</a></i>, strokewidth=&gt;<i>integer</i>, fill=&gt;<i><a href="../www/color.html">color name</a></i>, undercolor=&gt;<i><a href="../www/color.html">color name</a></i>, kerning=&gt;<i>float</i>, geometry=&gt;<i>geometry</i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=&gt;{true, false}, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, affine=&gt;<i>array of float values</i>, translate=&gt;<i>float, float</i>, scale=&gt;<i>float, float</i>, rotate=&gt;<i>float</i>. skewX=&gt;<i>float</i>, skewY=&gt; <i>float</i>, align=&gt;{Left, Center, Right}, encoding=&gt;{UTF-8}, interline-spacing=&gt;<i>double</i>, interword-spacing=&gt;<i>double</i>, direction=&gt;{right-to-left, left-to-right}</td>
    <td valign="top">annotate an image with text. See <a href="#misc">QueryFontMetrics</a> to get font metrics without rendering any text.</td>
  </tr>

  <tr>
    <td valign="top">AutoGamma</td>
    <td valign="top">channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">automagically adjust gamma level of image</td>
  </tr>

  <tr>
    <td valign="top">AutoLevel</td>
    <td valign="top">channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">automagically adjust color levels of image</td>
  </tr>

  <tr>
    <td valign="top">AutoOrient</td>
    <td valign="top"><br /></td>
    <td valign="top">automagically orient the image</td>
  </tr>

  <tr>
    <td valign="top">BlackThreshold</td>
    <td valign="top">threshold=&gt;<i>string</i>, , channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">force all pixels below the threshold intensity into black</td>
  </tr>

  <tr>
    <td valign="top">BlueShift</td>
    <td valign="top">factor=&gt;<i>double</i>,</td>
    <td valign="top">simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5.</td>
  </tr>

  <tr>
    <td valign="top">Blur</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td valign="top">Border</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, bordercolor=&gt;<i><a href="../www/color.html">color name</a></i>,  compose=&gt;{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor },</td>
    <td valign="top">surround the image with a border of color</td>
  </tr>

  <tr>
    <td valign="top">Charcoal</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i></td>
    <td valign="top">simulate a charcoal drawing</td>
  </tr>

  <tr>
    <td valign="top">Chop</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">chop an image</td>
  </tr>

  <tr>
    <td valign="top">Clamp</td>
    <td valign="top"><br /></td>
    <td valign="top">restrict color values from 0 to the quantum depth.</td>
  </tr>

  <tr>
    <td valign="top">Clip</td>
    <td valign="top">id=&gt;<i>name</i>, inside=&gt;<i>{true, false}</i>,</td>
    <td valign="top">apply along a named path from the 8BIM profile.</td>
  </tr>

  <tr>
    <td valign="top">ClipMask</td>
    <td valign="top">mask=&gt;<i>image-handle</i></td>
    <td valign="top">clip image as defined by the image mask</td>
  </tr>

  <tr>
    <td valign="top">Clut</td>
    <td valign="top">image=&gt;<i>image-handle</i>,  channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">apply a color lookup table to an image sequence</td>
  </tr>

  <tr>
    <td valign="top">Coalesce</td>
    <td valign="top"><br /></td>
    <td valign="top">merge a sequence of images</td>
  </tr>

  <tr>
    <td valign="top">Color</td>
    <td valign="top">color=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">set the entire image to this color.</td>
  </tr>

  <tr>
    <td valign="top">ColorDecisionList</td>
    <td valign="top">filename=&gt;<i>string</i>,</td>
    <td valign="top">color correct with a color decision list.</td>
  </tr>

  <tr>
    <td valign="top">Colorize</td>
    <td valign="top">fill=&gt;<i><a href="../www/color.html">color name</a></i>, opacity=&gt;<i>string</i></td>
    <td valign="top">colorize the image with the fill color</td>
  </tr>

  <tr>
    <td valign="top">ColorMatrix</td>
    <td valign="top">matrix=&gt;<i>array of float values</i></td>
    <td valign="top">apply color correction to the image.  Although you can use variable sized matrices, typically you use a 5 x 5 for an RGBA image and a 6x6 for CMYKA.  A 6x6 matrix is required for offsets (populate the last column with normalized values).</td>
  </tr>

  <tr>
    <td valign="top">Comment</td>
    <td valign="top">string</td>
    <td valign="top">add a comment to your image</td>
  </tr>

  <tr>
    <td valign="top">CompareLayers</td>
    <td valign="top">method=&gt;{any, clear, overlay}</td>
    <td valign="top">compares each image with the next in a sequence and returns the minimum bounding region of any pixel differences it discovers.  Images do not have to be the same size, though it is best that all the images are coalesced (images are all the same size, on a flattened canvas, so as to represent exactly how a specific frame should look).</td>
  </tr>

  <tr>
    <td valign="top">Composite</td>
    <td valign="top">image=&gt;<i>image-handle</i>, compose=&gt;{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, mask=&gt;<i>image-handle</i>, geometry=&gt;<i>geometry</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, opacity=&gt;<i>integer</i>, tile=&gt;{True, False}, rotate=&gt;<i>double</i>, color=&gt;<i><a href="../www/color.html">color name</a></i>, blend=&gt;<i>geometry</i>, interpolate=&gt;{undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline}</td>
    <td valign="top">composite one image onto another.  Use the rotate parameter in concert with the tile parameter.</td>
  </tr>

  <tr>
    <td valign="top">Contrast</td>
    <td valign="top">sharpen=&gt;{True, False}</td>
    <td valign="top">enhance or reduce the image contrast</td>
  </tr>

  <tr>
    <td valign="top">ContrastStretch</td>
    <td valign="top">levels=&gt;<i>string</i>, 'black-point'=&gt;<i>double</i>, 'white-point'=&gt;<i>double</i>, channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">improve the contrast in an image by `stretching' the range of intensity values</td>
  </tr>

  <tr>
    <td valign="top">Convolve</td>
    <td valign="top">coefficients=&gt;<i>array of float values</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, bias=&gt;<i>double</i></td>
    <td valign="top">apply a convolution kernel to the image. Given a kernel <i>order</i> , you would supply <i>order*order</i> float values (e.g. 3x3 implies 9 values).</td>
  </tr>

  <tr>
    <td valign="top">Crop</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, fuzz=&gt;<i>double</i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}</td>
    <td valign="top">crop an image</td>
  </tr>

  <tr>
    <td valign="top">CycleColormap</td>
    <td valign="top">amount=&gt;<i>integer</i></td>
    <td valign="top">displace image colormap by amount</td>
  </tr>

  <tr>
    <td valign="top">Decipher</td>
    <td valign="top">passphrase=&gt;<i>string</i></td>
    <td valign="top">convert cipher pixels to plain pixels</td>
  </tr>

  <tr>
    <td valign="top">Deconstruct</td>
    <td valign="top"><br /></td>
    <td valign="top">break down an image sequence into constituent parts</td>
  </tr>

  <tr>
    <td valign="top">Deskew</td>
    <td valign="top">geometry=&gt;<i>string</i>,threshold=&gt;<i>double</i></td>
    <td valign="top">straighten the image</td>
  </tr>

  <tr>
    <td valign="top">Despeckle</td>
    <td valign="top">&nbsp;</td>
    <td valign="top">reduce the speckles within an image</td>
  </tr>

  <tr>
    <td valign="top">Difference</td>
    <td valign="top">image=&gt;<i>image-handle</i></td>
    <td valign="top">compute the difference metrics between two images </td>
  </tr>

  <tr>
    <td valign="top">Distort</td>
    <td valign="top">points=&gt;<i>array of float values</i>, method=&gt;{Affine, AffineProjection, Bilinear, Perspective, Resize, ScaleRotateTranslate}, virtual-pixel=&gt;{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}, best-fit=&gt;{True, False}</td>
    <td valign="top">distort image</td>
  </tr>

  <tr>
    <td valign="top">Draw</td>
    <td valign="top">primitive=&gt;{point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @<i>filename</i>}, points=&gt;<i>string</i> , method=&gt;<i>{Point, Replace, Floodfill, FillToBorder, Reset}</i>, stroke=&gt;<i><a href="../www/color.html">color name</a></i>, fill=&gt;<i><a href="../www/color.html">color name</a></i>, font=&gt;<i>string</i>, pointsize=&gt;<i>integer</i>, strokewidth=&gt;<i>float</i>, antialias=&gt;{true, false}, bordercolor=&gt;<i><a href="../www/color.html">color name</a></i>, x=&gt;<i>float</i>, y=&gt;<i>float</i>, dash-offset=&gt;<i>float</i>, dash-pattern=&gt;<i>array of float values</i>, affine=&gt;<i>array of float values</i>, translate=&gt;<i>float, float</i>, scale=&gt;<i>float, float</i>, rotate=&gt;<i>float</i>,  skewX=&gt;<i>float</i>, skewY=&gt;<i>float</i>, interpolate=&gt;{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}, kerning=&gt;<i>float</i>, text=&gt;<i>string</i>, vector-graphics=&gt;<i>string</i>, interline-spacing=&gt;<i>double</i>, interword-spacing=&gt;<i>double</i>, direction=&gt;{right-to-left, left-to-right}</td>
    <td valign="top">annotate an image with one or more graphic primitives.</td>
  </tr>

  <tr>
    <td valign="top">Encipher</td>
    <td valign="top">passphrase=&gt;<i>string</i></td>
    <td valign="top">convert plain pixels to cipher pixels</td>
  </tr>

  <tr>
    <td valign="top">Edge</td>
    <td valign="top">radius=&gt;<i>double</i></td>
    <td valign="top">enhance edges within the image with a convolution filter of the given radius.</td>
  </tr>

  <tr>
    <td valign="top">Emboss</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i></td>
    <td valign="top">emboss the image with a convolution filter of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td valign="top">Enhance</td>
    <td valign="top"><br /></td>
    <td valign="top">apply a digital filter to enhance a noisy image</td>
  </tr>

  <tr>
    <td valign="top">Equalize</td>
    <td valign="top">channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}<br /></td>
    <td valign="top">perform histogram equalization to the image</td>
  </tr>

  <tr>
    <td valign="top">Extent</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, fuzz=&gt;<i>double</i>, background=&gt;<i><a href="../www/color.html">color name</a></i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}</td>
    <td valign="top">set the image size</td>
  </tr>

  <tr>
    <td valign="top">Evaluate</td>
    <td valign="top">value=&gt;<i>double</i>, operator=&gt;<i>{Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, Subtract, Xor}</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow} </td>
    <td valign="top">apply an arithmetic, relational, or logical expression to the image</td>
  </tr>

  <tr>
    <td valign="top">Filter</td>
    <td valign="top">kernel=&gt;<i>string</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, bias=&gt;<i>double</i></td>
    <td valign="top">apply a convolution kernel to the image.</td>
  </tr>

  <tr>
    <td valign="top">Flip</td>
    <td valign="top"><br /></td>
    <td valign="top">reflect the image scanlines in the vertical direction</td>
  </tr>

  <tr>
    <td valign="top">Flop</td>
    <td valign="top"><br /></td>
    <td valign="top">reflect the image scanlines in the horizontal direction</td>
  </tr>

  <tr>
    <td valign="top">FloodfillPaint</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, x=&gt;<i>integer</i>, y=&gt;<i>integer</i> , fill=&gt;<i><a href="../www/color.html">color name</a></i>, bordercolor=&gt;<i><a href="../www/color.html">color name</a></i>, fuzz=&gt;<i>double</i>, invert=&gt;{True, False}</td>
    <td valign="top">changes the color value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the color value is changed for any neighbor pixel that is not that color.</td>
  </tr>

  <tr>
    <td valign="top">ForwardFourierTransform</td>
    <td valign="top">magnitude=&gt;{True, False}</td>
    <td valign="top">implements the forward discrete Fourier transform (DFT)</td>
  </tr>

  <tr>
    <td valign="top">Frame</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, inner=&gt;<i>integer</i>, outer=&gt;<i>integer</i>, fill=&gt;<i><a href="../www/color.html">color name</a></i>,  compose=&gt;{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor },</td>
    <td valign="top">surround the image with an ornamental border</td>
  </tr>

  <tr>
    <td valign="top">Function</td>
    <td valign="top">parameters=&gt;<i>array of float values</i>, function=&gt;{Sin}, virtual-pixel=&gt;{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}</td>
    <td valign="top">apply a function to the image</td>
  </tr>

  <tr>
    <td valign="top">Gamma</td>
    <td valign="top">gamma=&gt;<i>string</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">gamma correct the image</td>
  </tr>

  <tr>
    <td valign="top">GaussianBlur</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td valign="top">GetPixel</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, normalize=&gt;{true, false}, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">get a single pixel. By default normalized pixel values are returned.</td>
  </tr>

  <tr>
    <td valign="top">GetPixels</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, map=&gt;<i>string</i>, normalize=&gt;{true, false}</td>
    <td valign="top">get image pixels as defined by the map (e.g. "RGB", "RGBA", etc.).  By default non-normalized pixel values are returned.</td>
  </tr>

  <tr>
    <td valign="top">HaldClut</td>
    <td valign="top">image=&gt;<i>image-handle</i>,  channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">apply a Hald color lookup table to an image sequence</td>
  </tr>

  <tr>
    <td valign="top">Identify</td>
    <td valign="top">file=&gt;<i>file</i>, features=&gt;<i>distance</i>, unique=&gt;{True, False}</td>
    <td valign="top">identify the attributes of an image</td>
  </tr>

  <tr>
    <td valign="top">Implode</td>
    <td valign="top">amount=&gt;<i>double</i>, interpolate=&gt;{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}</td>
    <td valign="top">implode image pixels about the center</td>
  </tr>

  <tr>
    <td valign="top">InverseDiscreteFourierTransform</td>
    <td valign="top">magnitude=&gt;{True, False}</td>
    <td valign="top">implements the inverse discrete Fourier transform (DFT)</td>
  </tr>

  <tr>
    <td valign="top">Label</td>
    <td valign="top">string</td>
    <td valign="top">assign a label to an image</td>
  </tr>

  <tr>
    <td valign="top">Layers</td>
    <td valign="top">method=&gt;{coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero},  compose=&gt;{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, dither=&gt;{true, false}</td>
    <td valign="top">compare each image the GIF disposed forms of the previous image in the sequence.  From this, attempt to select the smallest cropped image to replace each frame, while preserving the results of the animation.</td>
  </tr>

  <tr>
    <td valign="top">Level</td>
    <td valign="top">levels=&gt;<i>string</i>, 'black-point'=&gt;<i>double</i>, 'gamma'=&gt;<i>double</i>, 'white-point'=&gt;<i>double</i>, channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">adjust the level of image contrast</td>
  </tr>

  <tr>
    <td valign="top">LevelColors</td>
    <td valign="top">invert=&gt;&gt;{True, False}, 'black-point'=&gt;<i>string</i>,  'white-point'=&gt;<i>string</i>, channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">level image with the given colors</td>
  </tr>

  <tr>
    <td valign="top">LinearStretch</td>
    <td valign="top">levels=&gt;<i>string</i>, 'black-point'=&gt;<i>double</i>, 'white-point'=&gt;<i>double</i></td>
    <td valign="top">linear with saturation stretch</td>
  </tr>

  <tr>
    <td valign="top">LiquidResize</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, delta-x=&gt;<i>double</i>, rigidity=&gt;<i>double</i></td>
    <td valign="top">rescale image with seam-carving.</td>
  </tr>

  <tr>
    <td valign="top">Magnify</td>
    <td valign="top"><br /></td>
    <td valign="top">double the size of an image</td>
  </tr>

  <tr>
    <td valign="top">Mask</td>
    <td valign="top">mask=&gt;<i>image-handle</i></td>
    <td valign="top">composite image pixels as defined by the mask</td>
  </tr>

  <tr>
    <td valign="top">MatteFloodfill</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i> , matte=&gt;<i>integer</i>, bordercolor=&gt;<i><a href="../www/color.html">color name</a></i>, fuzz=&gt;<i>double</i>, invert=&gt;{True, False}</td>
    <td valign="top">changes the matte value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the matte value is changed for any neighbor pixel that is not that color.</td>
  </tr>

  <tr>
    <td valign="top">MedianFilter</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">replace each pixel with the median intensity pixel of a neighborhood.</td>
  </tr>

  <tr>
    <td valign="top">Minify</td>
    <td valign="top"><br /></td>
    <td valign="top">half the size of an image</td>
  </tr>

  <tr>
    <td valign="top">Mode</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">make each pixel the <em>predominate color</em> of the neighborhood.</td>
  </tr>

  <tr>
    <td valign="top">Modulate</td>
    <td valign="top">factor=&gt;<i>geometry</i>, brightness=&gt;<i>double</i>, saturation=&gt;<i>double</i>, hue=&gt;<i>double</i>, lightness=&gt;<i>double</i>, whiteness=&gt;<i>double</i>, blackness=&gt;<i>double</i> </td>
    <td valign="top">vary the brightness, saturation, and hue of an image by the specified percentage</td>
  </tr>

  <tr>
    <td valign="top">Morphology</td>
    <td valign="top">kernel=&gt;<i>string</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, iterations=&gt;<i>integer</i></td>
    <td valign="top">apply a morphology method to the image.</td>
  </tr>

  <tr>
    <td valign="top">MotionBlur</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, angle=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle to simulate the effect of motion</td>
  </tr>

  <tr>
    <td valign="top">Negate</td>
    <td valign="top">gray=&gt;{True, False}, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">replace each pixel with its complementary color (white becomes black, yellow becomes blue, etc.)</td>
  </tr>

  <tr>
    <td valign="top">Normalize</td>
    <td valign="top">channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}<br /></td>
    <td valign="top">transform image to span the full range of color values</td>
  </tr>

  <tr>
    <td valign="top">OilPaint</td>
    <td valign="top">radius=&gt;<i>integer</i></td>
    <td valign="top">simulate an oil painting</td>
  </tr>

  <tr>
    <td valign="top">Opaque</td>
    <td valign="top">color=&gt;<i><a href="../www/color.html">color name</a></i>,
fill=&gt;<i><a href="../www/color.html">color name</a></i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, invert=&gt;{True, False}</td>
    <td valign="top">change this color to the fill color within the image</td>
  </tr>

  <tr>
    <td valign="top">OrderedDither</td>
    <td valign="top">threshold=&gt;{threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4}, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">order dither image</td>
  </tr>

  <tr>
    <td valign="top">Polaroid</td>
    <td valign="top">caption=&gt;<i>string</i>, angle=&gt;<i>double</i>, pointsize=&gt;<i>double</i>, font=&gt;<i>string</i>, stroke=&gt; <i><a href="../www/color.html">color name</a></i>, strokewidth=&gt;<i>integer</i>, fill=&gt;<i><a href="../www/color.html">color name</a></i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast},  background=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">simulate a Polaroid picture.</td>
  </tr>

  <tr>
    <td valign="top">Posterize</td>
    <td valign="top">levels=&gt;<i>integer</i>, dither=&gt;{True, False}</td>
    <td valign="top">reduce the image to a limited number of color level</td>
  </tr>

  <tr>
    <td valign="top">Profile</td>
    <td valign="top">name=&gt;<i>string</i>, profile=&gt;<i>blob</i>, rendering-intent=&gt;{Undefined, Saturation, Perceptual, Absolute, Relative}, black-point-compensation=&gt;{True, False}</td>
    <td valign="top">add or remove ICC or IPTC image profile; name is formal name (e.g. ICC or filename; set profile to <kbd>''</kbd> to remove profile</td>
  </tr>

  <tr>
    <td valign="top">Quantize</td>
    <td valign="top">colors=&gt;<i>integer</i>, colorspace=&gt;{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB}, treedepth=&gt; <i>integer</i>, dither=&gt;{True, False}, dither-method=&gt;{Riemersma, Floyd-Steinberg}, measure_error=&gt;{True, False}, global_colormap=&gt;{True, False}, transparent-color=&gt;<i>color</i></td>
    <td valign="top">preferred number of colors in the image</td>
  </tr>

  <tr>
    <td valign="top">RadialBlur</td>
    <td valign="top">angle=&gt;<i>double</i></td>
    <td valign="top">radial blur the image.</td>
  </tr>

  <tr>
    <td valign="top">Raise</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, raise=&gt;{True, False}</td>
    <td valign="top">lighten or darken image edges to create a 3-D effect</td>
  </tr>

  <tr>
    <td valign="top">ReduceNoise</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">reduce noise in the image with a noise peak elimination filter</td>
  </tr>

  <tr>
    <td valign="top">Remap</td>
    <td valign="top">image=&gt;<i>image-handle</i>,  dither=&gt;{true, false}, dither-method=&gt;{Riemersma, Floyd-Steinberg}</td>
    <td valign="top">replace the colors of an image with the closest color from a reference image.</td>
  </tr>

  <tr>
    <td valign="top">Resample</td>
    <td valign="top">density=&gt;<i>geometry</i>, x=&gt;<i>double</i>, y=&gt;<i>double</i>, filter=&gt;{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=&gt;<i>double</i></td>
    <td valign="top">resample image to desired resolution. Specify <kbd>blur</kbd> &gt; 1 for blurry or &lt; 1 for sharp</td>
  </tr>

  <tr>
    <td valign="top">Resize</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, filter=&gt;{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=&gt;<i>double</i>, blur=&gt;<i>double</i></td>
    <td valign="top">scale image to desired size. Specify <kbd>blur</kbd> &gt; 1 for blurry or &lt; 1 for sharp</td>
  </tr>

  <tr>
    <td valign="top">Roll</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">roll an image vertically or horizontally</td>
  </tr>

  <tr>
    <td valign="top">Rotate</td>
    <td valign="top">degrees=&gt;<i>double</i>, background=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">rotate an image</td>
  </tr>

  <tr>
    <td valign="top">Sample</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i></td>
    <td valign="top">scale image with pixel sampling.</td>
  </tr>

  <tr>
    <td valign="top">Scale</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i></td>
    <td valign="top">scale image to desired size</td>
  </tr>

  <tr>
    <td valign="top">Segment</td>
    <td valign="top">colorspace=&gt;{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK}, verbose={True, False}, cluster-threshold=&gt;<i>double</i>, smoothing-threshold=<i>double</i></td>
    <td valign="top">segment an image by analyzing the histograms of the color components and identifying units that are homogeneous</td>
  </tr>

  <tr>
    <td valign="top">SelectiveBlur</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, threshold=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">selectively blur pixels within a contrast threshold.</td>
  </tr>
  <tr>
    <td valign="top">Separate</td>
    <td valign="top">channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}</td>
    <td valign="top">separate a channel from the image into a grayscale image</td>
  </tr>

  <tr>
    <td valign="top">Shade</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, azimuth=&gt;<i>double</i>, elevation=&gt;<i>double</i>, gray=&gt;{true, false}</td>
    <td valign="top">shade the image using a distant light source</td>
  </tr>

  <tr>
    <td valign="top">SetPixel</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, color=&gt;<i>array of float values</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, color=&gt;<i>array of float values</i></td>
    <td valign="top">set a single pixel.  By default normalized pixel values are expected.</td>
  </tr>

  <tr>
    <td valign="top">Shadow</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, opacity=&gt;<i>double</i>, sigma=&gt;<i>double</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">simulate an image shadow</td>
  </tr>

  <tr>
    <td valign="top">Sharpen</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td valign="top">Shave</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i></td>
    <td valign="top">shave pixels from the image edges</td>
  </tr>

  <tr>
    <td valign="top">Shear</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, x=&gt;<i>double</i>, y=&gt;<i>double</i> fill=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">shear the image along the X or Y axis by a positive or negative shear angle</td>
  </tr>

  <tr>
    <td valign="top">SigmoidalContrast</td>
    <td valign="top">geometry=&gt;<i>string</i>, 'contrast'=&gt;<i>double</i>, 'mid-point'=&gt;<i>double</i> channel=&gt;{Red, RGB, CMYK, Cyan, Green, Magenta, Blue, Yellow, Opacity, Black, or All}, sharpen=&gt;{True, False}</td>
    <td valign="top">sigmoidal non-lineraity contrast control.  Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. <em class="option">Contrast</em> indicates how much to increase the contrast (0 is none; 3 is typical; 20 is a lot);  <em class="option">mid-point</em> indicates where midtones fall in the resultant image (0 is white; 50% is middle-gray; 100% is black). To decrease contrast, set sharpen to False.</td>
  </tr>

  <tr>
    <td valign="top">Signature</td>
    <td valign="top"><br /></td>
    <td valign="top">generate an SHA-256 message digest for the image pixel stream</td>
  </tr>

  <tr>
    <td valign="top">Sketch</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, angle=&gt;<i>double</i></td>
    <td valign="top">sketch the image with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle</td>
  </tr>

  <tr>
    <td valign="top">Solarize</td>
    <td valign="top">geometry=&gt;<i>string</i>,threshold=&gt;<i>double</i></td>
    <td valign="top">negate all pixels above the threshold level</td>
  </tr>

  <tr>
    <td valign="top">SparseColor</td>
    <td valign="top">points=&gt;<i>array of float values</i>, method=&gt;{Barycentric, Bilinear, Shepards, Voronoi}, virtual-pixel=&gt;{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}</td>
    <td valign="top">interpolate the image colors around the supplied points</td>
  </tr>

  <tr>
    <td valign="top">Splice</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, fuzz=&gt;<i>double</i>, background=&gt;<i><a href="../www/color.html">color name</a></i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}</td>
    <td valign="top">splice an image</td>
  </tr>

  <tr>
    <td valign="top">Spread</td>
    <td valign="top">radius=&gt;<i>double</i></td>
    <td valign="top">displace image pixels by a random amount</td>
  </tr>

  <tr>
    <td valign="top">Statistic</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}, type=&gt;{Median, Mode, Mean, Maximum, Minimum, ReduceNoise}</td>
    <td valign="top">replace each pixel with corresponding statistic from the neighborhood.</td>
  </tr>
  <tr>
    <td valign="top">Stegano</td>
    <td valign="top">image=&gt;<i>image-handle</i>, offset=&gt;<i>integer</i></td>
    <td valign="top">hide a digital watermark within the image</td>
  </tr>

  <tr>
    <td valign="top">Stereo</td>
    <td valign="top">image=&gt;<i>image-handle</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">composites two images and produces a single image that is the composite of a left and right image of a stereo pair</td>
  </tr>

  <tr>
    <td valign="top">Strip</td>
    <td valign="top"><br /></td>
    <td valign="top">strip an image of all profiles and comments.</td>
  </tr>

  <tr>
    <td valign="top">Swirl</td>
    <td valign="top">degrees=&gt;<i>double</i>, interpolate=&gt;{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}</td>
    <td valign="top">swirl image pixels about the center</td>
  </tr>

  <tr>
    <td valign="top">Texture</td>
    <td valign="top">texture=&gt;<i>image-handle</i></td>
    <td valign="top">name of texture to tile onto the image background</td>
  </tr>

  <tr>
    <td valign="top">Thumbnail</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i></td>
    <td valign="top">changes the size of an image to the given dimensions and removes any associated profiles.</td>
  </tr>

  <tr>
    <td valign="top">Threshold</td>
    <td valign="top">threshold=&gt;<i>string</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">threshold the image</td>
  </tr>

  <tr>
    <td valign="top">Tint</td>
    <td valign="top">fill=&gt;<i><a href="../www/color.html">color name</a></i>, opacity=&gt;<i>string</i></td>
    <td valign="top">tint the image with the fill color.</td>
  </tr>

  <tr>
    <td valign="top">Transparent</td>
    <td valign="top">color=&gt;<i><a href="../www/color.html">color name</a></i>, invert=&gt;{True, False}</td>
    <td valign="top">make this color transparent within the image</td>
  </tr>

  <tr>
    <td valign="top">Transpose</td>
    <td valign="top"><br /></td>
    <td valign="top">flip image in the vertical direction and rotate 90 degrees</td>
  </tr>

  <tr>
    <td valign="top">Transverse</td>
    <td valign="top"><br /></td>
    <td valign="top">flop image in the horizontal direction and rotate 270 degrees</td>
  </tr>

  <tr>
    <td valign="top">Trim</td>
    <td valign="top"><br /></td>
    <td valign="top">remove edges that are the background color from the image</td>
  </tr>

  <tr>
    <td valign="top">UnsharpMask</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, amount=&gt;<i>double</i>, threshold=&gt;<i>double</i></td>
    <td valign="top">sharpen the image with the unsharp mask algorithm.</td>
  </tr>

  <tr>
    <td valign="top">Vignette</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, background=&gt;<i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">offset the edges of the image in vignette style</td>
  </tr>

  <tr>
    <td valign="top">Wave</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, amplitude=&gt;<i>double</i>, wavelength=&gt;<i>double</i>, interpolate=&gt;{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}</td>
    <td valign="top">alter an image along a sine wave</td>
  </tr>

  <tr>
    <td valign="top">WhiteThreshold</td>
    <td valign="top">threshold=&gt;<i>string</i>, , channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow}</td>
    <td valign="top">force all pixels above the threshold intensity into white</td>
  </tr>
</tbody>
</table>

<p>Note, that the <kbd>geometry</kbd> parameter is a short cut for the <kbd>width</kbd> and <kbd>height</kbd> parameters (e.g.  <kbd>geometry=&gt;'106x80'</kbd> is equivalent to <kbd>width=&gt;106, height=&gt;80</kbd> ).</p>

<p>You can specify <kbd>@filename</kbd> in both Annotate() and Draw(). This reads the text or graphic primitive instructions from a file on disk. For example,</p>

<pre class="code">
   $image-&gt;Draw(fill=&gt;'red', primitive=&gt;'rectangle',
     points=&gt;'20,20 100,100  40,40 200,200  60,60 300,300');
</pre>

<p>Is equivalent to</p>

<pre class="code">
   $image-&gt;Draw(fill=&gt;'red', primitive=&gt;'@draw.txt');
</pre>

<p>Where <kbd>draw.txt</kbd> is a file on disk that contains this:</p>

<pre class="text">
  rectangle 20, 20 100, 100
  rectangle 40, 40 200, 200
  rectangle 60, 60 300, 300
</pre>

<p>The <i>text</i> parameter for methods, Annotate(), Comment(), Draw(), and Label() can include the image filename, type, width, height, or other image attribute by embedding these special format characters:</p>

<pre class="text">
   %b   file size
   %c   comment
   %d   directory
   %e   filename extension
   %f   filename
   %g   page geometry
   %h   height
   %i   input filename
   %k   number of unique colors
   %l   label
   %m   magick
   %n   number of scenes
   %o   output filename
   %p   page number
   %q   quantum depth
   %r   image class and colorspace
   %s   scene number
   %t   top of filename
   %u   unique temporary filename
   %w   width
   %x   x resolution
   %y   y resolution
   %z   image depth
   %C   image compression type
   %D   image dispose method
   %H   page height
   %Q   image compression quality
   %T   image delay
   %W   page width
   %X   page x offset
   %Y   page y offset
   %@   bounding box
   %#   signature
   %%   a percent sign
   \n   newline
   \r   carriage return
</pre>

<p>For example,</p>

<pre class="code">
  text=&gt;"%m:%f %wx%h"
</pre>

<p>produces an annotation of <b>MIFF:bird.miff 512x480</b> for an image titled <b>bird.miff</b> and whose width is 512 and height is 480.</p>

<p>You can optionally add <i>Image</i> to any method name. For example, TrimImage() is an alias for method Trim().</p>

<p>Most of the attributes listed above have an analog in <a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>

</div>

<h2><a id="set-attribute"></a>Set an Image Attribute</h2>
<div class="doc-section">

<p>Use method Set() to set an image attribute. For example,</p>

<pre class="code">
  $image-&gt;Set(dither=&gt;'True');
  $image-&gt;[$x]-&gt;Set(delay=&gt;3);
</pre>

<p>Where this example uses 'True' and this document says '{True, False}',
you can use the case-insensitive strings 'True' and 'False', or you
can use the integers 1 and 0.</p>

<p>When you call Get() on a Boolean attribute, Image::Magick returns 1 or 0, not a string.</p>

<p>And here is a list of all the image attributes you can set:</p>

<table class="doc">
  <caption>Image Attributes</caption>
  <tbody>
  <tr>
    <th>Attribute</th>
    <th style="width: 40%">Values</th>
    <th style="width: 40%">Description</th>
  </tr>

  <tr>
    <td valign="top">adjoin</td>
    <td valign="top">{True, False}</td>
    <td valign="top">join images into a single multi-image file</td>
  </tr>

  <tr>
    <td valign="top">alpha</td>
    <td valign="top">{On, Off, Opaque, Transparent, Copy, Extract, Set}</td>
    <td valign="top">control of and special operations involving the alpha/matte channel</td>
  </tr>

  <tr>
    <td valign="top">antialias</td>
    <td valign="top">{True, False}</td>
    <td valign="top">remove pixel aliasing</td>
  </tr>

  <tr>
    <td valign="top">area-limit</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">set pixel area resource limit.</td>
  </tr>

  <tr>
    <td valign="top">attenuate</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">lessen (or intensify) when adding noise to an image.</td>
  </tr>

  <tr>
    <td valign="top">authenticate</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">decrypt image with this password.</td>
  </tr>

  <tr>
    <td valign="top">background</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">image background color</td>
  </tr>

  <tr>
    <td valign="top">blue-primary</td>
    <td valign="top"><i>x-value</i>, <i>y-value</i></td>
    <td valign="top">chromaticity blue primary point (e.g. 0.15, 0.06)</td>
  </tr>

  <tr>
    <td valign="top">bordercolor</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">set the image border color</td>
  </tr>

  <tr>
    <td valign="top">clip-mask</td>
    <td valign="top"><i>image</i></td>
    <td valign="top">associate a clip mask with the image.</td>
  </tr>

  <tr>
    <td valign="top">colormap[<i>i</i>]</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">color name (e.g. red) or hex value (e.g. #ccc) at position
<i>i</i></td>
  </tr>

  <tr>
    <td valign="top">comment</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">set the image comment</td>
  </tr>

  <tr>
    <td valign="top">compression</td>
    <td valign="top">{None, BZip, Fax, Group4, JPEG, JPEG2000, LosslessJPEG, LZW, RLE, Zip}</td>
    <td valign="top">type of image compression</td>
  </tr>

  <tr>
    <td valign="top">debug</td>
    <td valign="top">{All, Annotate, Blob, Cache, Coder, Configure, Deprecate, Draw, Exception, Locale, None, Resource, Transform, X11}</td>
    <td valign="top">display copious debugging information</td>
  </tr>

  <tr>
    <td valign="top">delay</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">this many 1/100ths of a second must expire before displaying the next image in a sequence</td>
  </tr>

  <tr>
    <td valign="top">density</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">vertical and horizontal resolution in pixels of the image</td>
  </tr>

  <tr>
    <td valign="top">depth</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">image depth</td>
  </tr>

  <tr>
    <td valign="top">direction</td>
    <td valign="top"><i>{Undefined, right-to-left, left-to-right</i></td>
    <td valign="top">render text right-to-left or left-to-right</td>
  </tr>

  <tr>
    <td valign="top">disk-limit</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">set disk resource limit</td>
  </tr>

  <tr>
    <td valign="top">dispose</td>
    <td valign="top"><i>{Undefined, None, Background, Previous}</i></td>
    <td valign="top">layer disposal method</td>
  </tr>

  <tr>
    <td valign="top">dither</td>
    <td valign="top">{True, False}</td>
    <td valign="top">apply error diffusion to the image</td>
  </tr>

  <tr>
    <td valign="top">display</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">specifies the X server to contact</td>
  </tr>

  <tr>
    <td valign="top">extract</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">extract area from image</td>
  </tr>

  <tr>
    <td valign="top">file</td>
    <td valign="top"><i>filehandle</i></td>
    <td valign="top">set the image filehandle</td>
  </tr>

  <tr>
    <td valign="top">filename</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">set the image filename</td>
  </tr>

  <tr>
    <td valign="top">fill</td>
    <td valign="top"><i>color</i></td>
    <td valign="top">The fill color paints any areas inside the outline of drawn shape.</td>
  </tr>

  <tr>
    <td valign="top">font</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">use this font when annotating the image with text</td>
  </tr>

  <tr>
    <td valign="top">fuzz</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">colors within this distance are considered equal</td>
  </tr>

  <tr>
    <td valign="top">gamma</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">gamma level of the image</td>
  </tr>

  <tr>
    <td valign="top">Gravity</td>
    <td valign="top">{Forget, NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}</td>
    <td valign="top">type of image gravity</td>
  </tr>

  <tr>
    <td valign="top">green-primary</td>
    <td valign="top"><i>x-value</i>, <i>y-value</i></td>
    <td valign="top">chromaticity green primary point (e.g. 0.3, 0.6)</td>
  </tr>

  <tr>
    <td valign="top">index[<i>x</i>, <i>y</i>]</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">colormap index at position (<i>x</i>, <i>y</i>)</td>
  </tr>

  <tr>
    <td valign="top">interlace</td>
    <td valign="top">{None, Line, Plane, Partition, JPEG, GIF, PNG}</td>
    <td valign="top">the type of interlacing scheme</td>
  </tr>

  <tr>
    <td valign="top">iterations</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">add Netscape loop extension to your GIF animation</td>
  </tr>

  <tr>
    <td valign="top">label</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">set the image label</td>
  </tr>

  <tr>
    <td valign="top">loop</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">add Netscape loop extension to your GIF animation</td>
  </tr>

  <tr>
    <td valign="top">magick</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">set the image format</td>
  </tr>

  <tr>
    <td valign="top">map-limit</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">set map resource limit</td>
  </tr>

  <tr>
    <td valign="top">mask</td>
    <td valign="top"><i>image</i></td>
    <td valign="top">associate a mask with the image.</td>
  </tr>

  <tr>
    <td valign="top">matte</td>
    <td valign="top">{True, False}</td>
    <td valign="top">enable the image matte channel</td>
  </tr>

  <tr>
    <td valign="top">mattecolor</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">set the image matte color</td>
  </tr>

  <tr>
    <td valign="top">memory-limit</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">set memory resource limit</td>
  </tr>

  <tr>
    <td valign="top">monochrome</td>
    <td valign="top">{True, False}</td>
    <td valign="top">transform the image to black and white</td>
  </tr>

  <tr>
    <td valign="top">option</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">associate an option with an image format (e.g.  option=&gt;'ps:imagemask'</td>
  </tr>

  <tr>
    <td valign="top">orientation</td>
    <td valign="top">{top-left, top-right, bottom-right, bottom-left, left-top, right-top, right-bottom, left-bottom}</td>
    <td valign="top">image orientation</td>
  </tr>

  <tr>
    <td valign="top">page</td>
    <td valign="top">{ Letter, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A5, B4, B5, Folio, Quarto, 10x14} or <i>geometry</i></td>
    <td valign="top">preferred size and location of an image canvas</td>
  </tr>

  <tr>
    <td valign="top">pixel[<i>x</i>, <i>y</i>]</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">hex value (e.g. #ccc) at position (<i>x</i>, <i>y</i>)</td>
  </tr>

  <tr>
    <td valign="top">pointsize</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">pointsize of the Postscript or TrueType font</td>
  </tr>

  <tr>
    <td valign="top">quality</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">JPEG/MIFF/PNG compression level</td>
  </tr>

  <tr>
    <td valign="top">red-primary</td>
    <td valign="top"><i>x-value</i>, <i>y-value</i></td>
    <td valign="top">chromaticity red primary point (e.g. 0.64, 0.33)</td>
  </tr>

  <tr>
    <td valign="top">sampling-factor</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">horizontal and vertical sampling factor</td>
  </tr>

  <tr>
    <td valign="top">scene</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">image scene number</td>
  </tr>

  <tr>
    <td valign="top">server</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">specifies the X server to contact</td>
  </tr>

  <tr>
    <td valign="top">size</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">width and height of a raw image</td>
  </tr>

  <tr>
    <td valign="top">stroke</td>
    <td valign="top"><i>color</i></td>
    <td valign="top">The stroke color paints along the outline of a shape.</td>
  </tr>

  <tr>
    <td valign="top">texture</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">name of texture to tile onto the image background</td>
  </tr>

  <tr>
    <td valign="top">tile-offset</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">image tile offset</td>
  </tr>

  <tr>
    <td valign="top">time-limit</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">set time resource limit in seconds</td>
  </tr>

  <tr>
    <td valign="top">type</td>
    <td valign="top">{Bilevel, Grayscale, GrayscaleMatte, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, ColorSeparationMatte}</td>
    <td valign="top">image type</td>
  </tr>

  <tr>
    <td valign="top">units</td>
    <td valign="top">{ Undefined, PixelsPerInch, PixelsPerCentimeter}</td>
    <td valign="top">units of image resolution</td>
  </tr>

  <tr>
    <td valign="top">verbose</td>
    <td valign="top">{True, False}</td>
    <td valign="top">print detailed information about the image</td>
  </tr>

  <tr>
    <td valign="top">virtual-pixel</td>
    <td valign="top">{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}</td>
    <td valign="top">the virtual pixel method</td>
  </tr>

  <tr>
    <td valign="top">white-point</td>
    <td valign="top"><i>x-value</i>, <i>y-value</i></td>
    <td valign="top">chromaticity white point (e.g. 0.3127, 0.329)</td>
  </tr>
  </tbody>
</table>

<p>Note, that the <kbd>geometry</kbd> parameter is a short cut for the <kbd>width</kbd> and <kbd>height</kbd> parameters (e.g.  <kbd>geometry=&gt;'106x80'</kbd> is equivalent to <kbd>width=&gt;106, height=&gt;80</kbd>).</p>

<p>SetAttribute() is an alias for method Set().</p>

<p>Most of the attributes listed above have an analog in
<a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>

</div>

<h2><a id="get-attribute"></a>Get an Image Attribute</h2>
<div class="doc-section">

<p>Use method Get() to get an image attribute. For example,</p>

<pre class="code">
  ($a, $b, $c) = $image-&gt;Get('colorspace', 'magick', 'adjoin');
  $width = $image-&gt;[3]-&gt;Get('columns');
</pre>

<p>In addition to all the attributes listed in <a href="#set-attribute">Set an Image Attribute</a> , you can get these additional attributes:</p>

<table class="doc">
  <caption>Image Attributes</caption>
  <tbody>
  <tr>
    <th>Attribute</th>
    <th>Values</th>
    <th style="width: 60%">Description</th>
  </tr>

  <tr>
    <td valign="top">area</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">current area resource consumed</td>
  </tr>

  <tr>
    <td valign="top">base-columns</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">base image width (before transformations)</td>
  </tr>

  <tr>
    <td valign="top">base-filename</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">base image filename (before transformations)</td>
  </tr>

  <tr>
    <td valign="top">base-rows</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">base image height (before transformations)</td>
  </tr>

  <tr>
    <td valign="top">class</td>
    <td valign="top">{Direct, Pseudo}</td>
    <td valign="top">image class</td>
  </tr>

  <tr>
    <td valign="top">colors</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">number of unique colors in the image</td>
  </tr>

  <tr>
    <td valign="top">columns</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">image width</td>
  </tr>

  <tr>
    <td valign="top">copyright</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">get PerlMagick's copyright</td>
  </tr>

  <tr>
    <td valign="top">directory</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">tile names from within an image montage</td>
  </tr>

  <tr>
    <td valign="top">elapsed-time</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">elapsed time in seconds since the image was created</td>
  </tr>

  <tr>
    <td valign="top">error</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">the mean error per pixel computed with methods Compare() or Quantize()</td>
  </tr>

  <tr>
    <td valign="top">bounding-box</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">image bounding box</td>
  </tr>

  <tr>
    <td valign="top">disk</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">current disk resource consumed</td>
  </tr>

  <tr>
    <td valign="top">filesize</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">number of bytes of the image on disk</td>
  </tr>

  <tr>
    <td valign="top">format</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">get the descriptive image format</td>
  </tr>

  <tr>
    <td valign="top">geometry</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">image geometry</td>
  </tr>

  <tr>
    <td valign="top">height</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">the number of rows or height of an image</td>
  </tr>

  <tr>
    <td valign="top">id</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">ImageMagick registry id</td>
  </tr>

  <tr>
    <td valign="top">mean-error</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">the normalized mean error per pixel computed with methods Compare() or Quantize()</td>
  </tr>

  <tr>
    <td valign="top">map</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">current memory-mapped resource consumed</td>
  </tr>

  <tr>
    <td valign="top">matte</td>
    <td valign="top">{True, False}</td>
    <td valign="top">whether or not the image has a matte channel</td>
  </tr>

  <tr>
    <td valign="top">maximum-error</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">the normalized max error per pixel computed with methods Compare() or Quantize()</td>
  </tr>

  <tr>
    <td valign="top">memory</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">current memory resource consumed</td>
  </tr>

  <tr>
    <td valign="top">mime</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">MIME of the image format</td>
  </tr>

  <tr>
    <td valign="top">montage</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">tile size and offset within an image montage</td>
  </tr>

  <tr>
    <td valign="top">page.x</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">x offset of image virtual canvas</td>
  </tr>

  <tr>
    <td valign="top">page.y</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">y offset of image virtual canvas</td>
  </tr>

  <tr>
    <td valign="top">rows</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">the number of rows or height of an image</td>
  </tr>

  <tr>
    <td valign="top">signature</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">SHA-256 message digest associated with the image pixel stream</td>
  </tr>

  <tr>
    <td valign="top">taint</td>
    <td valign="top">{True, False}</td>
    <td valign="top">True if the image has been modified</td>
  </tr>

  <tr>
    <td valign="top">total-ink-density</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">returns the total ink density for a CMYK image</td>
  </tr>

  <tr>
    <td valign="top">transparent-color</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">set the image transparent color</td>
  </tr>

  <tr>
    <td valign="top">user-time</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">user time in seconds since the image was created</td>
  </tr>

  <tr>
    <td valign="top">version</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">get PerlMagick's version</td>
  </tr>

  <tr>
    <td valign="top">width</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">the number of columns or width of an image</td>
  </tr>

  <tr>
    <td valign="top">x-resolution</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">x resolution of the image</td>
  </tr>

  <tr>
    <td valign="top">y-resolution</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">y resolution of the image</td>
  </tr>
  </tbody>
</table>

<p>GetAttribute() is an alias for method Get().</p>

<p>Most of the attributes listed above have an analog in
<a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>

</div>

<h2><a id="compare"></a>Compare an Image to its Reconstruction</h2>
<div class="doc-section">
</div>

<p>Mathematically and visually annotate the difference between an image and its reconstruction with the Compare() method.  The method supports these parameters:</p>

<table class="doc">
  <caption>Compare Parameters</caption>
  <tbody>
  <tr>
    <th>Parameter</th>
    <th style="width: 40%">Values</th>
    <th style="width: 40%">Description</th>
  </tr>

  <tr>
    <td valign="top">channel</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">select image channels, the default is all channels except alpha.</td>
  </tr>

  <tr>
    <td valign="top">fuzz</td>
    <td valign="top"><i>double</i></td>
    <td valign="top">colors within this distance are considered equal</td>
  </tr>

  <tr>
    <td valign="top">image</td>
    <td valign="top"><i>image-reference</i></td>
    <td valign="top">the image reconstruction</td>
  </tr>

  <tr>
    <td valign="top">metric</td>
    <td valign="top">AE, MAE, MEPP, MSE, PAE, PSNR, RMSE</td>
    <td valign="top">measure differences between images with this metric</td>
  </tr>
  </tbody>
</table>

<p>In this example, we compare the ImageMagick logo to a sharpened reconstruction:</p>

<pre class="code">
  use Image::Magick;

  $logo=Image::Magick->New();
  $logo->Read('logo:');
  $sharp=Image::Magick->New();
  $sharp->Read('logo:');
  $sharp->Sharpen('0x1');
  $difference=$logo->Compare(image=>$sharp, metric=>'rmse');
  print $difference->Get('error'), "\n";
  $difference->Display();
</pre>

<p>In addition to the reported root mean squared error of around 0.024, a difference image is displayed so you can visually identify the difference between the images.</p>

<h2><a id="montage"></a>Create an Image Montage</h2>
<div class="doc-section">

<p>Use method Montage() to create a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile. For example,</p>

<pre class="code">
  $image-&gt;Montage(geometry=&gt;'160x160', tile=&gt;'2x2', texture=&gt;'granite:');
</pre>

<p>And here is a list of Montage() parameters you can set:</p>

<table class="doc">
  <caption>Montage Parameters</caption>
  <tbody>
  <tr>
    <th>Parameter</th>
    <th style="width: 40%">Values</th>
    <th style="width: 40%">Description</th>
  </tr>

  <tr>
    <td valign="top">background</td>
    <td valign="top"><i><a href="../www/color.html">color name</a></i></td>
    <td valign="top">background color name</td>
  </tr>

  <tr>
    <td valign="top">border</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">image border width</td>
  </tr>

  <tr>
    <td valign="top">filename</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">name of montage image</td>
  </tr>

  <tr>
    <td valign="top">fill</td>
    <td valign="top"><a href="../www/color.html">color name</a></td>
    <td valign="top">fill color for annotations</td>
  </tr>

  <tr>
    <td valign="top">font</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">X11 font name</td>
  </tr>

  <tr>
    <td valign="top">frame</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">surround the image with an ornamental border</td>
  </tr>

  <tr>
    <td valign="top">geometry</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">preferred tile and border size of each tile of the composite
image (e.g. 120x120+4+3>)</td>
  </tr>

  <tr>
    <td valign="top">gravity</td>
    <td valign="top">NorthWest, North, NorthEast, West, Center, East, SouthWest,
South, SouthEast</td>
    <td valign="top">direction image gravitates to within a tile</td>
  </tr>

  <tr>
    <td valign="top">label</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">assign a label to an image</td>
  </tr>

  <tr>
    <td valign="top">mode</td>
    <td valign="top">Frame, Unframe, Concatenate</td>
    <td valign="top">thumbnail framing options</td>
  </tr>

  <tr>
    <td valign="top">pointsize</td>
    <td valign="top"><i>integer</i></td>
    <td valign="top">pointsize of the Postscript or TrueType font</td>
  </tr>

  <tr>
    <td valign="top">shadow</td>
    <td valign="top">{True, False}</td>
    <td valign="top">add a shadow beneath a tile to simulate depth</td>
  </tr>

  <tr>
    <td valign="top">stroke</td>
    <td valign="top"><a href="../www/color.html">color name</a></td>
    <td valign="top">stroke color for annotations</td>
  </tr>

  <tr>
    <td valign="top">texture</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">name of texture to tile onto the image background</td>
  </tr>

  <tr>
    <td valign="top">tile</td>
    <td valign="top"><i>geometry</i></td>
    <td valign="top">the number of tiles per row and page (e.g. 6x4)</td>
  </tr>

  <tr>
    <td valign="top">title</td>
    <td valign="top">string</td>
    <td valign="top">assign a title to the image montage</td>
  </tr>

  <tr>
    <td valign="top">transparent</td>
    <td valign="top"><i>string</i></td>
    <td valign="top">make this color transparent within the image</td>
  </tr>
  </tbody>
</table>

<p>Note, that the <kbd>geometry</kbd> parameter is a short cut for the <kbd>width</kbd> and <kbd>height</kbd> parameters (e.g.  <kbd>geometry=&gt;'106x80'</kbd> is equivalent to <kbd>width=&gt;106, height=&gt;80</kbd>).</p>

<p>MontageImage() is an alias for method Montage().</p>

<p>Most of the attributes listed above have an analog in <a href="../www/montage.html">montage</a>. See the documentation for a more detailed description of these attributes.</p>

</div>

<h2><a id="blobs"></a>Working with Blobs</h2>
<div class="doc-section">

<p>A blob contains data that directly represent a particular image
format in memory instead of on disk. PerlMagick supports
blobs in any of these image <a href="../www/formats.html">formats</a> and provides methods to convert a blob to or from a particular image format.</p>

<table class="doc">
  <caption>Blob Methods</caption>
  <tbody>
  <tr>
    <th>Method</th>
    <th>Parameters</th>
    <th>Return Value</th>
    <th>Description</th>
  </tr>

  <tr>
    <td valign="top">ImageToBlob</td>
    <td valign="top">any image <a href="#set-attribute">attribute</a></td>
    <td valign="top">an array of image data in the respective image format</td>
    <td valign="top">convert an image or image sequence to an array of blobs</td>
  </tr>

  <tr>
    <td valign="top">BlobToImage</td>
    <td valign="top">one or more blobs</td>
    <td valign="top">the number of blobs converted to an image</td>
    <td valign="top">convert one or more blobs to an image</td>
  </tr>
  </tbody>
</table>

<p>ImageToBlob() returns the image data in their respective formats. You can then print it, save it to an ODBC database, write it to a file, or pipe it to a display program:</p>

<pre class="code">
  @blobs = $image-&gt;ImageToBlob();
  open(DISPLAY,"| display -") || die;
  binmode DISPLAY;
  print DISPLAY $blobs[0];
  close DISPLAY;
</pre>

<p>Method BlobToImage() returns an image or image sequence converted from the supplied blob:</p>

<pre class="code">
  @blob=$db-&gt;GetImage();
  $image=Image::Magick-&gt;new(magick=&gt;'jpg');
  $image-&gt;BlobToImage(@blob);
</pre>

</div>

<h2><a id="direct-access"></a>Direct-access to Image Pixels</h2>
<div class="doc-section">

<p>Use these methods to obtain direct access to the image pixels:</p>

<table class="doc">
<caption>Direct-access to Image Pixels</caption>
<tbody>
  <tr>
    <th>Method</th>
    <th>Parameters</th>
    <th style="width: 50%">Description</th>
  </tr>

  <tr>
    <td valign="top">GetAuthenticPixels</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">return image pixels as a C pointer</td>
  </tr>

  <tr>
    <td valign="top">GetVirtualPixels</td>
    <td valign="top">geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, x=&gt;<i>integer</i>, y=&gt;<i>integer</i></td>
    <td valign="top">return image pixels as a const C pointer</td>
  </tr>

  <tr>
    <td valign="top">GetAuthenticIndexQueue</td>
    <td valign="top"></td>
    <td valign="top">return image indexes as a C pointer</td>
  </tr>

  <tr>
    <td valign="top">GetVirtualIndexQueue</td>
    <td valign="top"></td>
    <td valign="top">return image indexes as a const C pointer</td>
  </tr>

  <tr>
    <td valign="top">SyncAuthenticPixels</td>
    <td valign="top"></td>
    <td valign="top">sync image pixels to pixel cache</td>
  </tr>

</tbody>
</table>

</div>

<h2><a id="miscellaneous"></a>Miscellaneous Methods</h2>
<div class="doc-section">

<p>The Append() method append a set of images. For example,</p>

<pre class="code">
  $p = $image-&gt;Append(stack=&gt;{true,false});
</pre>

<p>appends all the images associated with object <kbd>$image</kbd>. By default, images are stacked left-to-right. Set <kbd>stack</kbd> to True to stack them top-to-bottom.</p>

<p>The Clone() method copies a set of images. For example,</p>

<pre class="code">
  $q = $p-&gt;Clone();
</pre>

<p>copies all the images from object <kbd>$p</kbd> to <kbd>$q</kbd>. You can use this method for single or multi-image sequences.</p>

<p>The EvaluateImages() method applies an arithemtic, logical or relational expression to a set of images. For example,</p>

<pre class="code">
  $p = $image-&gt;EvaluateImages('mean');
</pre>

<p>averages all the images associated with object <kbd>$image</kbd>.</p>

<p>The Features() method returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.  The features include the angular second momentum, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient.  Values in RGB, CMYK, RGBA, or CMYKA order (depending on the image type).</p>

<pre class="code">
  @features = $image-&gt;Features(1);
</pre>

<p>Finally, the Transform() method accepts a fully-qualified geometry specification for cropping or resizing one or more images.  For example,</p>

<p>The Flatten() method flattens a set of images and returns it. For example,</p>

<pre class="code">
  $p = $images-&gt;Flatten(background=&gt;'none');
  $p-&gt;Write('flatten.png');
</pre>

<p>The sequence of images is replaced by a single image created by composing each image after the first over the first image.</p>

<p>The Fx() method applies a mathematical expression to a set of images and returns the results. For example,</p>

<pre class="code">
  $p = $image-&gt;Fx(expression=&gt;'(g+b)/2.0',channel=&gt;'red');
  $p-&gt;Write('fx.miff');
</pre>

<p>replaces the red channel with the average of the green and blue channels.</p>

<p>See <a href="../www/fx.html">FX, The Special Effects Image Operator</a> for a detailed discussion of this method.</p>

<p>Histogram() returns the unique colors in the image and a count for each one. The returned values are an array of red, green, blue, opacity, and count values.</p>

<p>The Morph() method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next:</p>

<pre class="code">
  $p = $image-&gt;Morph(frames=&gt;<i>integer</i>);
</pre>

<p>where <i>frames</i> is the number of in-between images to generate.  The default is 1.</p>

<p>Mosaic() creates an mosaic from an image sequence.</p>

<p>Method Mogrify() is a single entry point for the image manipulation methods (<a href="#manipulate">Manipulate an Image</a>). The parameters are the name of a method followed by any parameters the method may require. For example, these calls are equivalent:</p>

<pre class="code">
  $image-&gt;Crop('340x256+0+0');
  $image-&gt;Mogrify('crop', '340x256+0+0');
</pre>

<p>Method MogrifyRegion() applies a transform to a region of the image. It is similar to Mogrify() but begins with the region geometry. For example, suppose you want to brighten a 100x100 region of your image at location (40, 50):</p>

<pre class="code">
  $image-&gt;MogrifyRegion('100x100+40+50', 'modulate', brightness=&gt;50);
</pre>

<p>Ping() is a convenience method that returns information about an image without having to read the image into memory. It returns the width, height, file size in bytes, and the file format of the image. You can specify more than one filename but only one filehandle:</p>

<pre class="code">
  ($width, $height, $size, $format) = $image-&gt;Ping('logo.png');
  ($width, $height, $size, $format) = $image-&gt;Ping(file=&gt;\*IMAGE);
  ($width, $height, $size, $format) = $image-&gt;Ping(blob=&gt;$blob);
</pre>

<p>This a more efficient and less memory intensive way to query if an image exists and what its characteristics are.  <kbd>PreviewImage()</kbd> tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation. Choose from these operations: <kbd>Rotate, Shear, Roll, Hue, Saturation, Brightness, Gamma, Spiff, Dull, Grayscale, Quantize, Despeckle, ReduceNoise, AddNoise, Sharpen, Blur, Threshold, EdgeDetect, Spread, Solarize, Shade, Raise, Segment, Swirl, Implode, Wave, OilPaint, CharcoalDrawing, JPEG</kbd>. Here is an example:</p>

<pre class="code">
  $preview = $image-&gt;Preview('Gamma');
  $preview-&gt;Display();
</pre>

<p>To have full control over text positioning you need font metric information. Use</p>

<pre class="code">
  ($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance)
         = $image-&gt;QueryFontMetrics(<i>parameters</i>);
</pre>

<p>Where <i>parameters</i> is any parameter of the <a href="#manipulate">Annotate</a> method. The return values are:</p>

<ul>
  <li>character width</li>
  <li>character height</li>
  <li>ascender</li>
  <li>descender</li>
  <li>text width</li>
  <li>text height</li>
  <li>maximum horizontal advance</li>
  <li>bounds: x1</li>
  <li>bounds: y1</li>
  <li>bounds: x2</li>
  <li>bounds: y2</li>
  <li>origin: x</li>
  <li>origin: y</li>
</ul>

<p>Use QueryMultilineFontMetrics() to get the maximum text width and height for multiple lines of text.</p>

<p>Call QueryColor() with no parameters to return a list of known colors names or specify one or more color names to get these attributes: red, green, blue, and opacity value.</p>

<pre class="code">
  @colors = $image-&gt;QueryColor();
  ($red, $green, $blue, $opacity) = $image-&gt;QueryColor('cyan');
  ($red, $green, $blue, $opacity) = $image-&gt;QueryColor('#716bae');
</pre>

<p>QueryColorname() accepts a color value and returns its respective name or hex value;</p>

<pre class="code">
    $name = $image-&gt;QueryColorname('rgba(80,60,0,0)');
</pre>

<p>Call QueryFont() with no parameters to return a list of known fonts or specify one or more font names to get these attributes: font name, description, family, style, stretch, weight, encoding, foundry, format, metrics, and glyphs values.</p>

<pre class="code">
  @fonts = $image-&gt;QueryFont();
  $weight = ($image-&gt;QueryFont('Helvetica'))[5];
</pre>

<p>Call QueryFormat() with no parameters to return a list of known image formats or specify one or more format names to get these attributes: adjoin, blob support, raw, decoder, encoder, description, and module.</p>

<pre class="code">
  @formats = $image-&gt;QueryFormat();
  ($adjoin, $blob_support, $raw, $decoder, $encoder, $description, $module)
            = $image-&gt;QueryFormat('gif');
</pre>

<p>Call MagickToMime() with the image format name to get its MIME type such as <kbd>images/tiff</kbd> from <kbd>tif</kbd>.</p>

<pre class="code">
  $mime = $image-&gt;MagickToMime('tif');
</pre>

<p>Use RemoteCommand() to send a command to an already running <a href="../www/display.html">display</a> or <a href="../www/animate.html">animate</a> application. The only parameter is the name of the image file to display or animate.</p>

<pre class="code">
  $image-&gt;RemoteCommand('image.jpg');
</pre>

<p>The Smush() method smushes a set of images together. For example,</p>

<pre class="code">
  $p = $image-&gt;Smush(stack=&gt;{true,false},offset=&gt;<em>integer</em>);
</pre>

<p>smushes together all the images associated with object <kbd>$image</kbd>. By default, images are smushed left-to-right. Set <kbd>stack</kbd> to True to smushed them top-to-bottom.</p>

<p>Statistics() returns the image statistics for each channel in the image. The returned values are an array of depth, minima, maxima, mean, standard deviation, kurtosis, and skewness values in RGB, CMYK, RGBA, or CMYKA order (depending on the image type).</p>

<pre class="code">
  @statistics = $image-&gt;Statistics();
</pre>

<p>Finally, the Transform() method accepts a fully-qualified geometry specification for cropping or resizing one or more images.  For example,</p>

<pre class="code">
  $p = $image-&gt;Transform(crop=&gt;'100x100+0+0', gravity=&gt;'Center');
</pre>

<p>You can optionally add <i>Image</i> to any method name above. For example, PingImage() is an alias for method Ping().</p>

</div>

<h2><a id="exceptions"></a>Handling Exceptions</h2>
<div class="doc-section">

<p>All PerlMagick methods return an undefined string context upon success. If any problems occur, the error is returned as a string with an embedded numeric status code. A status code less than 400 is a warning. This means that the operation did not complete but was recoverable to some degree. A numeric code greater or equal to 400 is an error and indicates the operation failed completely. Here is how exceptions are returned for the different methods:</p>

<p>Methods which return a number (e.g. Read(), Write()):</p>

<pre class="code">
  $x = $image-&gt;Read(...);
  warn "$x" if "$x";      # print the error message
  $x =~ /(\d+)/;
  print $1;               # print the error number
  print 0+$x;             # print the number of images read
</pre>

<p>Methods which operate on an image (e.g. Resize(), Crop()):</p>

<pre class="code">
  $x = $image-&gt;Crop(...);
  warn "$x" if "$x";      # print the error message
  $x =~ /(\d+)/;
  print $1;               # print the error number
</pre>

<p>Methods which return images (EvaluateSequence(), Montage(), Clone()) should be checked for errors this way:</p>

<pre class="code">
  $x = $image-&gt;Montage(...);
  warn "$x" if !ref($x);  # print the error message
  $x =~ /(\d+)/;
  print $1;               # print the error number
</pre>

<p>Here is an example error message:</p>

<pre class="code">
  Error 400: Memory allocation failed
</pre>

<p>Review the complete list of <a href="../www/exception.html">error and warning codes</a>.</p>

<p>The following illustrates how you can use a numeric status code:</p>

<pre class="code">
  $x = $image-&gt;Read('rose.png');
  $x =~ /(\d+)/;
  die "unable to continue" if ($1 == ResourceLimitError);
</pre>

</div>

<h2><a id="constants"></a>Constants</h2>
<div class="doc-section">

<p>PerlMagick includes these constants:</p>

<pre class="text">
  BlobError
  BlobWarning
  CacheError
  CacheWarning
  CoderError
  CoderWarning
  ConfigureError
  ConfigureWarning
  CorruptImageError
  CorruptImageWarning
  DelegateError
  DelegateWarning
  DrawError
  DrawWarning
  ErrorException
  FatalErrorException
  FileOpenError
  FileOpenWarning
  ImageError
  ImageWarning
  MissingDelegateError
  MissingDelegateWarning
  ModuleError
  ModuleWarning
  Opaque
  OptionError
  OptionWarning
  QuantumDepth
  QuantumRange
  RegistryError
  RegistryWarning
  ResourceLimitError
  ResourceLimitWarning
  StreamError
  StreamWarning
  Success
  Transparent
  TypeError
  TypeWarning
  WarningException
  XServerError
  XServerWarning
</pre>

<p>You can access them like this:</p>

<pre class="code">
  Image::Magick-&gt;QuantumDepth
</pre>

</div>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
