diff --git a/www/Magick++/Blob.html b/www/Magick++/Blob.html
new file mode 100644
index 0000000..9bae420
--- /dev/null
+++ b/www/Magick++/Blob.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick::Blob</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;13502672">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;13521508">
+<meta name="DESCRIPTION" content="Documentation for Blob class.">
+<meta name="KEYWORDS" content="Magick++, ImageMagick, Blob">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000ff" vlink="#ff0000" bgcolor="#fbc713">
+<h1 align="center">Magick::Blob</h1>
+<p>Blob provides the means to contain any opaque data. It is named after the term "Binary Large OBject" commonly used to describe unstructured data (such as encoded images) which is stored in a database. While the function of Blob is very simple (store a pointer and size associated with allocated data), the Blob class provides some very useful capabilities. In particular, it is fully reference counted just like the Image class.</p>
+<p>The Blob class supports value assignment while preserving any outstanding earlier versions of the object. Since assignment is via a pointer internally, Blob is efficient enough to be stored directly in an STL container or any other data structure which requires assignment. In particular, by storing a Blob in an <a href="http://www.sgi.com/tech/stl/AssociativeContainer.html">associative container</a> (such as STL's '<a href="http://www.sgi.com/tech/stl/Map.html"><i>map</i></a>') it is possible to create simple indexed in-memory "database" of Blobs.</p>
+<p>Magick++ currently uses Blob to contain encoded images (e.g. JPEG) as well as ICC and IPTC profiles. Since Blob is a general-purpose class, it may be used for other purposes as well.</p>
+<p style="margin-bottom: 0cm">The methods Blob provides are shown in the following table:</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Blob Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Method</b></p></td>
+<td>
+<p align="center"><b>Return Type</b></p></td>
+<td>
+<p align="center"><b>Signature(s)</b></p></td>
+<td>
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td rowspan="3">
+<p><a name="Blob"></a><font size="2">Blob</font></p></td>
+<td rowspan="3" bgcolor="#666666"></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Default constructor</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">const unsigned char* data_, size_t length_</font></p></td>
+<td>
+<p><font size="2">Construct object with data, making a copy of the supplied data</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">const Blob& blob_</font></p></td>
+<td>
+<p><font size="2">Copy constructor (reference counted)</font></p></td></tr>
+<tr>
+<td>
+<p><a name="operator="></a><font size="2">operator=</font></p></td>
+<td>
+<p><font size="2">Blob</font></p></td>
+<td>
+<p><font size="2">const Blob& blob_</font></p></td>
+<td>
+<p><font size="2">Assignment operator (reference counted)</font></p></td></tr>
+<tr>
+<td>
+<p><a name="update"></a><font size="2">update</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const unsigned char* data_, size_t length_</font></p></td>
+<td>
+<p><font size="2">Update object contents, making a copy of the supplied data. Any existing data in the object is deallocated.</font></p></td></tr>
+<tr>
+<td>
+<p><a name="data"></a><font size="2">data</font></p></td>
+<td>
+<p><font size="2">const unsigned char*</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Obtain pointer to data</font></p></td></tr>
+<tr>
+<td>
+<p><a name="length"></a><font size="2">length</font></p></td>
+<td>
+<p><font size="2">size_t</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Obtain data length</font></p></td></tr>
+<tr>
+<td>
+<p><a name="updateNoCopy"></a><font size="2">updateNoCopy</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">unsigned char* data_, size_t length_, Blob::Allocator allocator_ = Blob::NewAllocator</font></p></td>
+<td>
+<p><font size="2">Update object contents, using supplied pointer directly (no copy) Any existing data in the object is deallocated. The user must ensure that the pointer supplied is not deleted or otherwise modified after it has been supplied to this method. The optional allocator_ parameter allows the user to specify if the C (MallocAllocator) or C++ (NewAllocator) memory allocation system was used to allocate the memory. The default is to use the C++ memory allocator.</font></p></td></tr></table>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/COPYING b/www/Magick++/COPYING
new file mode 100644
index 0000000..4d5f0dc
--- /dev/null
+++ b/www/Magick++/COPYING
@@ -0,0 +1,22 @@
+
+Copyright 1999, 2000, 2001 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files ("Magick++"), to deal in Magick++ without restriction,
+including without limitation the rights to use, copy, modify,
+merge, publish, distribute, sublicense, and/or sell copies of
+Magick++, and to permit persons to whom the Magick++ is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of Magick++.
+
+The software is provided "as is", without warranty of any kind,
+express or implied, including but not limited to the warranties of
+merchantability, fitness for a particular purpose and
+noninfringement. In no event shall Bob Friesenhahn be liable for
+any claim, damages or other liability, whether in an action of
+contract, tort or otherwise, arising from, out of or in connection
+with Magick++ or the use or other dealings in Magick++.
+
diff --git a/www/Magick++/Cache.fig b/www/Magick++/Cache.fig
new file mode 100644
index 0000000..5b880a7
--- /dev/null
+++ b/www/Magick++/Cache.fig
@@ -0,0 +1,35 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+0
+1200 2
+1 3 0 3 4 4 0 0 20 0.000 1 0.0000 2715 3030 31 31 2715 3030 2745 3037
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 1200 3300 1200 2100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 2925 1875 1500 1875
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 3825 1875 4800 1875
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 1200 3600 1200 4800
+2 2 0 1 0 6 9 0 30 0.000 0 0 -1 0 0 5
+ 2325 2700 4125 2700 4125 3825 2325 3825 2325 2700
+2 2 0 1 0 2 10 0 30 0.000 0 0 7 0 0 5
+ 1500 2100 4800 2100 4800 4800 1500 4800 1500 2100
+2 2 0 1 7 7 11 0 20 0.000 0 0 -1 0 0 5
+ 900 1500 5100 1500 5100 5100 900 5100 900 1500
+4 1 0 0 0 16 12 0.0000 4 180 810 3375 1950 columns()\001
+4 2 0 0 0 16 12 0.0000 4 180 510 1500 3525 rows()\001
+4 0 0 0 0 16 12 0.0000 4 165 255 1575 2325 0,0\001
+4 1 0 0 0 16 12 0.0000 4 180 795 3375 2625 columns_\001
+4 1 0 0 0 16 12 0.0000 4 135 225 2325 2625 x,y\001
+4 2 0 0 0 16 12 0.0000 4 135 495 2250 3300 rows_\001
+4 0 0 0 0 16 12 0.0000 4 135 405 2730 3232 Pixel\001
diff --git a/www/Magick++/Cache.png b/www/Magick++/Cache.png
new file mode 100644
index 0000000..91d0efb
--- /dev/null
+++ b/www/Magick++/Cache.png
Binary files differ
diff --git a/www/Magick++/Cache.svg b/www/Magick++/Cache.svg
new file mode 100644
index 0000000..e08af27
--- /dev/null
+++ b/www/Magick++/Cache.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"
+"http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd">
+<svg width="8in" height="8in" viewBox="0 0 1 1" preserveAspectRatio="none">
+<title>SVG drawing</title>
+<desc>This was produced by version 4.1 of GNU libplot, a free library for exporting 2-D vector graphics.</desc>
+<rect x="0" y="0" width="1" height="1" style="stroke:none;fill:white;"/>
+<g transform="translate(-0.03125,1.1875) scale(1,-1) scale(0.0017361) " xml:space="preserve" style="stroke:black;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.433;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;fill:none;fill-rule:even-odd;fill-opacity:1;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size-adjust:none;letter-spacing:normal;word-spacing:normal;text-anchor:start;">
+<polygon points="0.99976,1.0002 253,1.0002 253,217 0.99976,217 " style="stroke:white;stroke-width:0;fill:white;"/>
+<polygon points="0.99976,1.0002 253,1.0002 253,217 0.99976,217 " style="stroke:white;stroke-width:0.45;"/>
+<polygon points="37,19 235,19 235,181 37,181 " style="stroke:#7fff7f;stroke-width:0;fill:#7fff7f;"/>
+<polygon points="37,19 235,19 235,181 37,181 " style="stroke-width:0.45;"/>
+<polygon points="86.5,77.5 194.5,77.5 194.5,145 86.5,145 " style="stroke:#ffff7f;stroke-width:0;fill:#ffff7f;"/>
+<polygon points="86.5,77.5 194.5,77.5 194.5,145 86.5,145 " style="stroke-width:0.45;"/>
+<line x1="19" y1="109" x2="19" y2="181" style="stroke-width:0.45;"/>
+<polygon points="17.2,172.18 19,179.38 20.8,172.18 19,172.18 " style="stroke-width:0;fill:black;"/>
+<polygon points="17.2,172.18 19,179.38 20.8,172.18 19,172.18 " style="stroke-width:0.45;"/>
+<line x1="122.5" y1="194.5" x2="37" y2="194.5" style="stroke-width:0.45;"/>
+<polygon points="45.82,192.7 38.62,194.5 45.82,196.3 45.82,194.5 " style="stroke-width:0;fill:black;"/>
+<polygon points="45.82,192.7 38.62,194.5 45.82,196.3 45.82,194.5 " style="stroke-width:0.45;"/>
+<line x1="176.5" y1="194.5" x2="235" y2="194.5" style="stroke-width:0.45;"/>
+<polygon points="226.18,196.3 233.38,194.5 226.18,192.7 226.18,194.5 " style="stroke-width:0;fill:black;"/>
+<polygon points="226.18,196.3 233.38,194.5 226.18,192.7 226.18,194.5 " style="stroke-width:0.45;"/>
+<line x1="19" y1="91" x2="19" y2="19" style="stroke-width:0.45;"/>
+<polygon points="20.8,27.82 19,20.62 17.2,27.82 19,27.82 " style="stroke-width:0;fill:black;"/>
+<polygon points="20.8,27.82 19,20.62 17.2,27.82 19,27.82 " style="stroke-width:0.45;"/>
+<path d="M111.76,125.2 L111.76,125.1 L111.75,125.01 L111.74,124.92 L111.72,124.83 L111.7,124.74 L111.68,124.65 L111.65,124.56 L111.61,124.48 L111.58,124.39 L111.54,124.31 L111.49,124.24 L111.44,124.16 L111.39,124.09 L111.34,124.02 L111.28,123.95 L111.22,123.88 L111.15,123.82 L111.08,123.76 L111.01,123.71 L110.94,123.66 L110.86,123.61 L110.79,123.56 L110.71,123.52 L110.62,123.49 L110.54,123.45 L110.45,123.42 L110.36,123.4 L110.27,123.38 L110.18,123.36 L110.09,123.35 L110,123.34 L109.9,123.34 C108.87,123.34,108.04,124.17,108.04,125.2 C108.04,126.23,108.87,127.06,109.9,127.06 C110.93,127.06,111.76,126.23,111.76,125.2 Z " style="stroke:red;stroke-width:0;fill:red;"/>
+<path d="M111.76,125.2 L111.76,125.1 L111.75,125.01 L111.74,124.92 L111.72,124.83 L111.7,124.74 L111.68,124.65 L111.65,124.56 L111.61,124.48 L111.58,124.39 L111.54,124.31 L111.49,124.24 L111.44,124.16 L111.39,124.09 L111.34,124.02 L111.28,123.95 L111.22,123.88 L111.15,123.82 L111.08,123.76 L111.01,123.71 L110.94,123.66 L110.86,123.61 L110.79,123.56 L110.71,123.52 L110.62,123.49 L110.54,123.45 L110.45,123.42 L110.36,123.4 L110.27,123.38 L110.18,123.36 L110.09,123.35 L110,123.34 L109.9,123.34 C108.87,123.34,108.04,124.17,108.04,125.2 C108.04,126.23,108.87,127.06,109.9,127.06 C110.93,127.06,111.76,126.23,111.76,125.2 Z " style="stroke:red;stroke-width:1.8;"/>
+<text transform="translate(125.8,190) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">columns()</text>
+<text transform="translate(7.0093,95.5) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">rows()</text>
+<text transform="translate(41.5,167.5) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">0,0</text>
+<text transform="translate(126.39,149.5) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">columns_</text>
+<text transform="translate(79.599,149.5) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">x,y</text>
+<text transform="translate(53.197,109) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">rows_</text>
+<text transform="translate(110.8,113.08) scale(1,-1) " style="font-family:'Helvetica',sans-serif;font-size:10.8;stroke:none;fill:black;">Pixel</text>
+</g>
+</svg>
diff --git a/www/Magick++/ChangeLog.html b/www/Magick++/ChangeLog.html
new file mode 100644
index 0000000..9578804
--- /dev/null
+++ b/www/Magick++/ChangeLog.html
@@ -0,0 +1,3889 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="Description" content="ImageMagick - a robust collection of tools and libraries to read, write and manipulate an image in any of the popular image formats. ImageMagick allows dynamic creation of GIFs, making it suitable for Web applications.">
+<meta name="Keywords" content="ImageMagick,Image Magick,Image Magic,PerlMagick,Perl Magick,Perl Magic,WebMagick,Web Magic,image processing,software development,simulation,image software,AniMagick,Animagic,Magick++">
+<meta name="Resource-type" content="document">
+<meta name="Robots" content="ALL">
+<link rel="stylesheet" type="text/css" href="../www/magick.css">
+</head>
+
+<body marginheight=1 marginwidth=1 topmargin=1 leftmargin=1>
+<a name="top"></a>
+<table border="0" cellpadding="0" cellspacing="0" summary="Masthead" width="100%">
+<tbody>
+<tr>
+<td bgcolor="#003399" width="25%" height="118" background="../images/background.gif"><a href="http://www.imagemagick.org/"><img src="../images/script.gif" width="278" height="118" border="0" alt="" /></a></td>
+<td bgcolor="#003399" width="60%" height="118" background="../images/background.gif"><a href="http://www.networkeleven.com/direct.php?magick_all"><img src="../images/promote.png" border="0" width="186" height="52" vspace="29" alt="Powered by NetworkEleven" /></a></td>
+<td bgcolor="#003399" width="114" height="118" align="right"><img src="../images/sprite.png" width="114" height="118" alt="" /></td>
+<td bgcolor="#003399" width="114" height="118" align="right"><a href="http://www.imagemagick.net"><img src="../images/logo.png" width="114" height="118" border="0" alt="ImageMagick logo" /></a></td>
+</tr></tbody></table>
+</table><table align="left" border=0 cellpadding=2 cellspacing=2 summary="Navigation buttons" width="20%">
+ <tr>
+ <td>
+ <form target="_self" action="../index.html"><input type="submit" title="ImageMagick Home" value=" Home " style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td><td>
+ <form target="_self" action="../www/apis.html"><input type="submit" title="ImageMagick API" value=" API " style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td><td>
+ <form target="_self" action="../www/archives.html"><input type="submit" title="ImageMagick Download" value="Download" style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td>
+ </tr>
+</table>
+<div align="right" style="margin-top:3px; padding-right:4px">
+ <form action="http://studio.imagemagick.org/Sage/scripts/Sage.cgi">
+ <input type="TEXT" name="query" size=32 maxlength=255>
+ <input type="SUBMIT" name="sa" value="Search" style="background-image:url('../images/background.gif'); bgcolor:#003399; color:#fbc713; font-weight:bold">
+ </form><br>
+</div>
+<table align="left" border=0 cellpadding=10 cellspacing=0 style="margin-top:-17px" width="100%"><tr><td>
+
+<br> <br>
+
+<HTML>
+<HEAD>
+<TITLE>Magick++ ChangeLog</TITLE>
+</HEAD>
+<body text="#000000" bgcolor="#fbc713" link="#1F00FF" vlink="#9900DD" alink="#FF0000">
+<h3>Magick++ ChangeLog</h3>
+<p>
+2008-01-08 6.3.7-10 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Only read ICON alpha mask if BPP is <= 16.
+
+</UL></font>
+<p>
+2008-01-01 6.3.7-9 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Use explicit format specifier to render transparent Adobe Illustrator
+ files (i.e. convert ai:image.ai image.png).
+ <LI> Set RSVG base URI (patch provided by tsdineen).
+
+</UL></font>
+<p>
+2007-12-20 6.3.7-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> `Magick-config --version` returns Q16 instead of
+<STRONG>Q@MAGICKCORE_QUANTUM_DEPTH@.</STRONG><BR>
+ <LI> Permit commas in numbers in certain locales (e.g. german +100,000).
+
+</UL></font>
+<p>
+2007-12-13 6.3.7-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Added an exception reason to BlobToImage() in the event an image has no
+ magic number and neither the image magick or filename is set.
+ <LI> Do not pass PhotoYCC data thru gamma-corrected lookup-table.
+ <LI> Fix bug in GetEXIFProperty() (reference
+ https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10300).
+
+</UL></font>
+<p>
+2007-12-12 6.3.7-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Adding comments to your image is now possible with the display program.
+
+</UL></font>
+<p>
+2007-12-09 6.3.7-3 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Adjusted -clut multiplyer for correct handling of
+ "-interpolation Integer" in color lookup.
+
+</UL></font>
+<p>
+2007-12-01 6.3.7-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix 'insufficient image data' for DCM format (reference
+ https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10227).
+ <LI> Force a colormapped image if Palm bits-per-pixel < 16.
+ <LI> Fix multiple problems with Palm Data Base reader (patch from
+ 1tms@gmx.d...).<BR>
+ <LI> Do not exit after first image with the display --immutable option.
+ <LI> Update autoconf/automake/libtool configuration files.
+ <LI> Add support for resource limit units (e.g. -limit memory 16mb).
+ <LI> Return original image if gaussian blur sigma is 0.0.
+ <LI> Colormapped multi-image PDF's are no longer corrupt (reference
+ https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10258).
+
+</UL></font>
+<p>
+2007-11-27 6.3.7-2 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Finalisation of new resize filters, "Lagrange" self-windowing filter
+ now adjusts automatically with different support window size.
+ <LI> Added "Bohman" (another 2'rd order cosine function) and "Bartlett"
+ (triangluar) resize windowing filters.
+ <LI> Adjusted -clut to use a grayscale image (with no alpha) to select colors
+ from the Lookup Table image.
+
+</UL></font>
+<p>
+2007-11-26 6.3.7-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Not all DCM tags were being saved as image attributes (patch provided by
+ jcupitt@gmail...).<BR>
+ <LI> Normalize pixel values when quantum format is floating-point.
+ <LI> Initialize the pixel sum to zero when averaging image pixels.
+
+</UL></font>
+<p>
+2007-11-23 6.3.7-1 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Bug fix in height calculation for -layers merge operation
+
+</UL></font>
+<p>
+2007-11-02 6.3.7-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add support for SCT grayscale images.
+ <LI> Fixed transparancy bug for the ICO image format.
+ <LI> Fixed small memory leak in the caption and label coders.
+ <LI> Fixed -threshold option to return all white for -threshold 0 (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10126).
+
+</UL></font>
+<p>
+2007-11-06 6.3.6-10 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Corrected CGM delegate command in config/delegate.xml.
+
+</UL></font>
+<p>
+2007-11-05 6.3.6-9 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Reclassified X server open error from fatal to non-fatal.
+ <LI> New SetImageAlphaChannel() method to activate, deactivate, reset, or
+ set the image alpha channel.<BR>
+ <LI> Patch for Scanalytics IPLab image format for non 8-bit images
+ (contributed by Sean Burke).
+
+</UL></font>
+<p>
+2007-11-04 6.3.6-8 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Remove ctrl-M characters on in various source files.
+ <LI> Fix signature for Magick++ averageImages() regression tests for HDRI.
+ <LI> Only invoke PerlMagick x11 regression test if DISPLAY variable is set.
+
+</UL></font>
+<p>
+2007-11-03 6.3.6-7 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> MAGICK_ERX_SRCS should be MAGICK_EXR_SRCS in coders/Makefile.am.
+
+</UL></font>
+<p>
+2007-11-02 6.3.6-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Upgrade to FPX version libfpx-1.2.0.14 (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10041).
+ <LI> Modules are searched first in the directories specified by the environment
+ variables, and then -- if the desired module is not found -- in the
+ compiled-in path. (reference<BR>
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=10039).
+
+</UL></font>
+<p>
+2007-11-01 6.3.6-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Update FPX regression test reference images.
+ <LI> Fixed Magick++ compile error for Sun Studio 10 compiler.
+
+</UL></font>
+<p>
+2007-10-25 6.3.6-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> The -equalize option now respects the -channel option.
+
+</UL></font>
+<p>
+2007-10-23 6.3.6-4 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Additional Filters: Welsh, Parzen, Lagrangian
+ <LI> Addition of Cubic filter B,C controls
+ <LI> 'verbose' filter plotting output using -define "filter:verbose"
+
+</UL></font>
+<p>
+2007-10-20 6.3.6-3 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Further expandsion and handling of filters with expert options.
+ -filter selects from a table of standard filter settings, while
+ expert options allow complete selection of filter, windowing, support
+ and blurring options. Includes automatic switch from Sinc to Bessel
+ for operators using 2 dimentional cylindrical filter, rather than
+ two pass 1 dimentional orthogonal filters.
+
+</UL></font>
+<p>
+2007-10-14 6.3.6-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Obsolete -support (set filter blur factor)
+ <LI> Expandsion to add -set/define filter options
+
+</UL></font>
+<p>
+2007-10-12 6.3.6-2 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Least Squares coordinate handling added for -distort methods Affine,
+ Perspective, Bilinear. This allows for more than the minimal number of
+ coordinates to be used to 'fit' a distortion function to an image.
+ This addition will allow the use of image registration to generate
+ panarama overviews and better geographical coordinate correction.
+ <LI> Cosolidated the simular methods FlattenImage() and MosaicImage()
+ into a new layers function MergeImageLayers() method, adding 'flatten'
+ and 'mosaic' layer methods.<BR>
+ <LI> Addition of another simular layers method 'merge' which 'unlocks' the
+ normal flatten/mosaic layer merger from the origin, The resulting image
+ will have a virtual canvas of minimal size with an offset. Also images
+ with negative offsets will not be clipped by the 'merge' form of the
+ command. This was created for better layering of distorted images, such
+ as panarama overlays.<BR>
+ <LI> Bug fix in handling transparency for EWA resampling.
+ <LI> Access to Resize Filter Functions from resize.c (for resample.c)
+ with posible future filter sources... Acquire/Destory/Call ResizeFilter()
+ <LI> All resize filters added to resampling, but filter handling is incomplete.
+
+</UL></font>
+<p>
+2007-10-05 6.3.6-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> The box filter no longer produces a black grid when resizing an image
+ under Mac OS X.<BR>
+ <LI> Respect cropbox for PDF with a subimage specification (e.g.
+ image.pdf[1-3]).<BR>
+ <LI> Detect proper PDF bounding box when offsets are negative.
+
+</UL></font>
+<p>
+2007-10-02 6.3.6-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Speed up the Fx interpreter.
+ <LI> Use ULL not ui64 for MinGW 64-bit constants.
+ <LI> Call SyncCacheView() instead of SyncImagePixels() in WaveImage().
+ <LI> Close all references to a pixel cache on disk before removing the temporary
+ file as required under Windows.
+
+</UL></font>
+<p>
+2007-09-29 6.3.6-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Added Scaling 'derivitives' to -distort Arc, so image arcing is now
+ sharp and clear as you approach the center of the distort.
+ <LI> Added " -set option:distort:viewport 'geometry' " special option
+ that can be used to override the output image size and offset.
+ <LI> Fixed experimental use of -filter and -support in Resampling (more later).
+ <LI> Changed order for coordinate arguments in -distort (for later leastsq
+ multiple coordinate distortion function fitting)
+
+</UL></font>
+<p>
+2007-09-22 6.3.6-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Check the API version and quantum depth before loading a coder module or
+ image filter (reference<BR>
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9780).
+ <LI> Add exception to the image filter signature.
+ <LI> Get the execution path under Mac OS X.
+ <LI> TIFFTAG_STRIPBYTECOUNTS requires a uint32 pointer (magick/compress.c).
+ <LI> Fixed memory leak in CloneString() (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9763).
+ <LI> Set S_IRUSR | S_IWUSR | S_IRGRP mode when writing a file in
+ CopyDelegateFile().
+
+</UL></font>
+<p>
+2007-09-18 6.3.5-9 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Bug fix for +distort in Perspective, also effected PerspectiveProjection
+
+</UL></font>
+<p>
+2007-09-17 6.3.5-10 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Replace all InterpolatePixelColor() calls to use the ResamplePixelColor()
+ method instead.<BR>
+ <LI> Map the display program pan icon window for each oversized image.
+ <LI> The ufraw delegate does not like quotes around the output filename.
+ <LI> Adjust the sensitivity of a few PerlMagick tests to pass the validation on
+ a 64-bit FreeBSD system.<BR>
+ <LI> The -level option now works properly for colormapped images.
+ <LI> Allow Extrapolated blending of images using -blend
+ http://netpbm.sourceforge.net/doc/extendedopacity.html
+
+</UL></font>
+<p>
+2007-09-12 6.3.5-9 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Major Addition, Area Resampling Functions, (scaled interpolation)
+ for pixel lookup in Distortion functions. This improves the look in
+ areas of minification enormousally, especially in situations of infinite
+ tiling and horizon views. All virtual pixel methods have been handled
+ to minimise computation time involved with area resampling. To use the
+ new function distortions need to be able to determine scaling vectors
+ (distortion function derivitives) for correct working. All
+ -distort methods, except Arc, uses scaled area resampling.
+ <LI> Improvements to perspective distort method, to include the correct
+ differentation between the 'ground' on which the image lies, and the
+ 'sky', the color of which can be set using the -mattecolor setting
+ (as the distortion invalid pixel color). Background color is retains
+ for surrounding ground areas. The horizon is also correct anti-aliased
+ and transparent colors are also allowed, allowing you to add backdrops
+ of gradients and patterns.
+
+</UL></font>
+<p>
+2007-09-04 6.3.5-9 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Read/Write Scanalytics IPLab image format (contributed by Sean Burke).
+ <LI> Patched ReadBlobString() to fix a off-by-one vulnerability (alert from
+ iDefense).<BR>
+ <LI> Patched ReadDIBImage() to fix a sign extension vulnerability (alert from
+ iDefense).<BR>
+ <LI> Patched AllocateImageColormap() to fix an integer overflow vulnerability
+ (alert from iDefense).<BR>
+ <LI> Patched ReadDCMImage() to fix an integer overflow vulnerability
+ (alert from iDefense).<BR>
+ <LI> Patched ReadDIBImage() to fix an integer overflow vulnerability
+ (alert from iDefense).<BR>
+ <LI> Patched ReadXBMImage() to fix an integer overflow vulnerability
+ (alert from iDefense).<BR>
+ <LI> Patched ReadDCMImage() to fix an denial of service vulnerability
+ (alert from iDefense).<BR>
+ <LI> Patched ReadXCFImage() to fix an denial of service vulnerability
+ (alert from iDefense).<BR>
+ <LI> If image size changes, don't trust DPX orientation attributes.
+
+</UL></font>
+<p>
+2007-09-04 6.3.5-9 Gozer404<BR>
+<font size=-2><UL>
+ <LI> Add French to the messaging system (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=9601).
+ <LI> Add -fopenmp to MAGICK_PCFLAGS (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9608).
+
+</UL></font>
+<p>
+2007-08-14 6.3.5-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add -alpha {activate,deactivate,reset} option to activate, deactivate, or
+ reset the alpha channel.<BR>
+ <LI> Render proper image labels for VID coder.
+ <LI> Resolved a conflict for the -list option. Use -list font to list
+ ImageMagick fonts and -list type to list image types.
+ <LI> Catch any errors returned by pthread_mutex_init() (problem report
+ from devman@gmx-t...).<BR>
+ <LI> TransformHSL() returns a proper hue component.
+ <LI> Added -clut option and the ClutImage() method.
+ <LI> Fix glyph memory leak in AnnotateImage (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9523).
+ <LI> Rename analyze.c to Analyze.c (reference
+ ttp://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9538).
+
+</UL></font>
+<p>
+2007-08-07 6.3.5-6 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Enabled use of +distort to auto resize destination image to 'bestfit'
+ the distorted input image. This also enabled the use of virtual canvas
+ offsets in source and destination images for most distortion methods.
+
+</UL></font>
+<p>
+2007-08-05 6.3.5-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Remove atexit in Magick++ code to avoid possible client crash (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9270).
+
+</UL></font>
+<p>
+2007-08-01 6.3.5-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Read/Write Scanalytics IPLab image format (contributed by Sean Burke).
+
+</UL></font>
+<p>
+2007-07-30 6.3.5-5 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Added -distort arc. This update also allows the destination image
+ size and offset to be set according to the specific distortion being
+ applied.
+
+</UL></font>
+<p>
+2007-07-29 6.3.5-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Set the -poloroid border color with the -bordercolor option.
+
+</UL></font>
+<p>
+2007-07-25 6.3.5-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Remove extranous break statement so -type option properly sets the
+ image_info->type member (reference<BR>
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9261).
+
+</UL></font>
+<p>
+2007-07-21 6.3.5-4 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Allow the use of optional arguments in -distort SRT
+
+</UL></font>
+<p>
+2007-06-29 6.3.5-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Initial addition of three Affine Distortions to -distort with the affine
+ mapping defined by the use of; an Affine Matrix, Coordinates of Triangles,
+ or separate Scale-Rotate-Translate actions.
+
+</UL></font>
+<p>
+2007-06-18 6.3.5-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix X11 font ascender.
+ <LI> Add -distort option.
+ <LI> Add random noise option (e.g. +noise random).
+ <LI> Many internal algorithms are now threaded to take advantage of speed-ups
+ offered by the new dual and quad-core processor technologies.
+ and quad-core processor technology.
+ <LI> Tiff images in the LAB colorspace are no longer identified as RGB
+ (reference http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9015).
+ <LI> Update image color_profile and iptc_profile members in the JPEG coder
+ (reference http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9063);
+
+</UL></font>
+<p>
+2007-06-13 6.3.4-10 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix composite mask bug (reference
+ http://www.imagemagick.org/Usage/bugs/composite_mask/).
+ <LI> Speed up GetPixelOpacity() method (patch from seth@price...).
+ <LI> Set icon image width/height before allocating the image colormap.
+ <LI> Remove Photoshop string segment from JPEG profile (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=9006).
+
+</UL></font>
+<p>
+2007-06-11 6.3.4-9 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Converting a jpg to pdf is creating an empty pdf object (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8954).
+ <LI> Respect the '-set type:hinting off option' (bug report from Richard
+ Jones).<BR>
+ <LI> WritePSDImage vulnerable to exploitable heap corruption (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8967).
+
+</UL></font>
+<p>
+2007-06-09 6.3.4-8 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> SetMagickRegistry() post-increment the value 'id' (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8944).
+
+</UL></font>
+<p>
+2007-06-02 6.3.4-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Read/write 10 & 12-bit packed DPX images.
+ <LI> Reduce stack requirements for messaging system.
+ <LI> Small memory leak for raw profiles in the PNG coder.
+
+</UL></font>
+<p>
+2007-06-01 6.3.4-5 Glenn <glennrp@image...>
+<font size=-2><UL>
+ <LI> Added GIF, JPEG, and PNG interlace types. For backward compatibility,
+ you can continue to use "-interlace Plane" to request these.
+
+</UL></font>
+<p>
+2007-04-30 6.3.4-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Fixed minor bug in the 'curl' for Polaroid of very non-square images.
+
+</UL></font>
+<p>
+2007-06-01 6.3.4-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Set min-is-white for Group4-compressed PDF.
+ <LI> Add PaintFloodfillImage() method.
+
+</UL></font>
+<p>
+2007-05-30 6.3.4-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add MEPP metric to compare program. Returns the mean error per pixel
+ along with the normalize mean and maximum error.
+ <LI> Attach an XMP profile to an image (e.g.
+ convert input.tif -profile xmp:metadata.xmp output.tif).
+
+</UL></font>
+<p>
+2007-05-22 6.3.4-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fixed mogrify conversions with -format and -path (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=9127).
+
+</UL></font>
+<p>
+2007-05-15 6.3.4-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> SVG style element was not always parsed properly.
+ <LI> Do not dither when the number of unique colors is already less than the
+ maximum.<BR>
+ <LI> Return normalized PAE metric (compare utility).
+
+</UL></font>
+<p>
+2007-05-03 6.3.4-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add support for PFM images.
+ <LI> Check for corrupt EXIF image profiles.
+ <LI> Writing JPEG YCbCr TIFF images no longer faults (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8896).
+
+</UL></font>
+<p>
+2007-04-30 6.3.4-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Fixed minor bug for crop missed images and 'background' GIF disposal.
+
+</UL></font>
+<p>
+2007-04-28 6.3.4-0 Glenn <glennrp@image...>
+<font size=-2><UL>
+ <LI> Added profile support to the GIF decoder/encoder. They are stored
+ as GIF Application Extensions. Known extensions include existing ICCRGB1
+ (for ICC profiles) and new MGKIPTC0 and MGK8BIM0 (for IPTC and 8BIM
+ profiles). Unknown extensions found in GIF files are read as gifappNNN.
+
+</UL></font>
+<p>
+2007-04-28 6.3.4-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Invert Opacity change for user defined ordered dither threshold maps,
+ so that 'off' map is transparent, and 'on' is opaque.
+
+</UL></font>
+<p>
+2007-04-24 6.3.4-0 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Added an initial Coalesce Images, and a final +map local colortable
+ optimization to the -layers Optimize method, for a simple to use
+ GIF optimization operation. (more work to come)
+
+</UL></font>
+<p>
+2007-04-22 6.3.4-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Properly set the virtual canvas of a multi-frame GIF image sequence.
+ <LI> Add AcquireOneVirtualPixel() method.
+ <LI> Set Log colorspace properly when writing DPX images.
+ <LI> Add -tile-offset option.
+ <LI> Add support for the EXR image format.
+ <LI> Improve support for DPX images.
+ <LI> Add --enable-hdri option to the configure script.
+ <LI> Add support for high dynamic-range images (HDRI).
+
+</UL></font>
+<p>
+2007-04-20 6.3.3-9 Peter Hull <peterhull90@gmail...>
+<font size=-2><UL>
+ <LI> Improve support for writing multiple image icons.
+
+</UL></font>
+<p>
+2007-04-18 6.3.3-9 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Separated -layers Optimize from -layers OptimizeFrame to allow
+ the former expansion into a general (multiple method) optimizer
+ of GIF animations<BR>
+ <LI> merged -layers OptimizeTransparency into -layers Optimize method
+
+</UL></font>
+<p>
+2007-04-12 6.3.3-8 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fix fault whem comparing a colormapped image with a non-colormapped one.
+ <LI> Fix race condition when spawning delegate programs.
+ <LI> TIFF JPEG now respects the -quality comptression setting.
+ <LI> The -fx option now properly groks the logical and operator.
+ <LI> DPX tilestamp property should be timestamp.
+
+</UL></font>
+<p>
+2007-04-13 6.3.3-7 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Added GravityAdjustGeometry() to "geometry.c" to adjust geometry settings
+ according to given gravity and canvas area it applies to. This is for
+ code simplification thoughout MagickCore.
+
+</UL></font>
+<p>
+2007-04-09 6.3.3-6 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Fixed CoalesceImages() to reset virtual canvas info on second and later
+ frames. Other animation handlers may also need to reset virtual canvas
+ sizes to match the first frame, as well.
+
+</UL></font>
+<p>
+2007-04-06 6.3.3-6 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Addition of a CompositeImages() "layer.c" function to compose two
+ separate image lists together (with a virtual canvas offset) in three
+ different ways, depending on the size of the lists.
+ <LI> A 'hack' for command line use (the two lists separates by the special
+ "NULL" image, which is junked) has also been added. Specifically...
+ "-layers Composite".
+
+</UL></font>
+<p>
+2007-04-04 6.3.3-6 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Add -layers RemoveDups method to remove duplicate sequential images in
+ coalesced animations.<BR>
+ <LI> Add -layers RemoveZero method to remove images with a zero time delay
+ (with no action and a warning is all images have zero time delay)
+
+</UL></font>
+<p>
+2007-04-01 6.3.3-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Permit generic profiles (e.g. -profile name:profile).
+
+</UL></font>
+<p>
+2007-03-31 6.3.3-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fixed DCM and XWD buffer overflow vulnerabilities (reference
+ http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=496).
+
+</UL></font>
+<p>
+2007-03-28 6.3.3-4 Anthony <anthony@griffith...>
+<font size=-2><UL>
+ <LI> Code duplication, simplification, and possible logic faults in "list.c".
+ <LI> Added new Composition method, 'ChangeMask' to return pixels
+ that have changed or will cause a color change in overlays
+ <LI> Used 'ChangeMask' to implement the "-layers" method
+ "OptimizeTransparency" to improve the compressibility of
+ frame optimized GIF animations. See IM Examples...
+ http://www.imagemagick.org/Usage/anim_opt/#opt_trans
+
+</UL></font>
+<p>
+2007-03-19 6.3.3-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fixed two memory leaks in wand/magick-image.c and magick/stream.c and made
+ some minor changes to the GIF coder to make reading and pinging images
+ faster (patch provided by mstemm@cloud...).
+
+</UL></font>
+<p>
+2007-03-19 6.3.3-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Patch RotateImage() to properly rotate CMYK images.
+ <LI> Patch the XWD coder to prevent heap overflow vulnerability (vulnerability
+ report from idefense.com [IDEF2108] [IDEF2221] [IDEF2226]).
+
+</UL></font>
+<p>
+2007-03-19 6.3.3-3 Anthony <Anthony@griffith...>
+<font size=-2><UL>
+ <LI> Fixed bug for GIF Optimization for images without a matte channel.
+ <LI> Improved image handling for "-layers" method "Dispose".
+
+</UL></font>
+<p>
+2007-03-11 6.3.3-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Improve configure script to better support Ghostscript under Mac OSX (
+ reference http://www.imagemagick.org/discourse-server/viewtopic.php?t=8557).
+ <LI> Force a virtual pixel method of Tile for GetFillColor() and
+ GetStrokeColor().<BR>
+ <LI> Add -reverse option to reverse the image list.
+
+</UL></font>
+<p>
+2007-03-08 6.3.3-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Support versions 2.1.0 and above (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=8620).
+ <LI> Support SVG rotation about a point (e.g. rotate(45 75 75)).
+ <LI> Fix fault in DCM coder (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8618).
+ <LI> Check for a NULL parser in SVGReference in coders/svg.c (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=8609).
+ <LI> Add --disable-deprecated configure script option.
+ <LI> Composite mask now works properly with transparent images.
+
+</UL></font>
+<p>
+2007-03-04 Daniel Kobras <kobras@debia...>
+<font size=-2><UL>
+ <LI> Fixed additional data-driven faults (reference
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=412945).
+ <LI> Allocate proper scanline length to prevent a PCX overflow.
+
+</UL></font>
+<p>
+2007-03-03 6.3.3-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Patch ImageMagick to permit referenced labels: -set option:mylabel
+ "color = %[pixel:u[0].p{12,26}]" label:'%[mylabel]'
+
+</UL></font>
+<p>
+2007-02-24 6.3.3-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Escape indirect labels and comments (e.g. -label @file).
+ <LI> Added -format %C to return the image compression type.
+ <LI> Do not report channel statistics if -ping -format is specified with the
+ identify program.<BR>
+ <LI> Add ResetImagePage() to reset the image page canvas and position.
+ <LI> Upgrade to LCMS 1.16
+ <LI> Configure Ghostscript for library or framework (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=8557).
+ <LI> Add -taint option to convert/mogrify to mark image as ineligible for
+ <LI> Fixed various data-driven faults (reference
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=412945). The corrupt
+ JP2 image faults but its failing in the JP2 jas_image_decode() method,
+ not MagickCore. The corrupt XWD image faults but its failing in
+ the X11 XGetPixel() method, not MagickCore.
+
+</UL></font>
+<p>
+2007-02-20 6.3.2-8 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Use -define quantum:polarity=min-is-black or -define
+ quantum:polarity=min-is-white to toggle the photometric interpretation for
+ a bilevel TIFF image.
+
+</UL></font>
+<p>
+2007-02-17 6.3.2-8 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Don't interpret embedded format characters when reading comments/labels
+ from a file.<BR>
+ <LI> Reading an image from stdin stopped working.
+
+</UL></font>
+<p>
+2007-02-17 6.3.2-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> PerlMagick Label() no longer faults.
+ <LI> Fix double-free when using the display/animate -geometry option.
+ <LI> Add GetStringInfoLength() and GetStringInfoDatum(); deprecate
+ profile->length and profile->datum.
+
+</UL></font>
+<p>
+2007-02-16 6.3.2-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix file leak in InjectImageBlob().
+ <LI> Do not reinterpret image properties (e.g. -comment %%w).
+
+</UL></font>
+<p>
+2007-02-14 6.3.2-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Don't over-allocate file buffers.
+
+</UL></font>
+<p>
+2007-02-12 6.3.2-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Format strings in the POSIX locale.
+ <LI> Make font metrics invarient to the strokewidth.
+
+</UL></font>
+<p>
+2007-02-10 6.3.2-4 Albert Chin <china@thewr...>
+<font size=-2><UL>
+ <LI> Patch to fix configure.ac typo.
+
+</UL></font>
+<p>
+2007-02-08 6.3.2-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Permit ImageMagick to run as a service under Windows.
+ <LI> Remove duplicate EXIF properties.
+ <LI> Support strokewidth option for the caption format.
+ <LI> Don't use Ghostscript for rendering fonts if Freetype is available.
+
+</UL></font>
+<p>
+2007-02-02 6.3.2-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Added thumbnail format to write EXIF thumbnails.
+ <LI> Move ReadByteImage() out of Min() macro of ReadPALMImage().
+ <LI> Move EXIF properties to the EXIF namespace (e.g. exif:XResolution).
+
+</UL></font>
+<p>
+2007-01-26 6.3.2-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add interpolate and background options to PerlMagick's AffineTransform().
+ <LI> Revert to Postscript rendering if Freetype delegate library is not
+ available.
+
+</UL></font>
+<p>
+2007-01-20 6.3.2-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Accept Fx expressions from a file with -fx @filename.
+ <LI> Enhance -fill and -stroke to accept image filenames as patterns.
+
+</UL></font>
+<p>
+2007-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Save grayscale images as JPEG-compressed grayscale when writing in the TIFF
+ format.<BR>
+ <LI> Update EXIF resolution fields when image density changes.
+
+</UL></font>
+<p>
+2007-01-07 6.3.1-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> The -polaroid option now respects -gravity.
+ <LI> Deprecate Get/SetImageAttribute(). Recommend Get/SetImageProperty()
+ instead.<BR>
+ <LI> Any form of "-crop" with a percentage, implies an offset for the crop.
+ <LI> Fixed percent option for -border (e.g. -border 10%x0%).
+ <LI> Add -path option to the mogrify program to specify where to write the
+ images.
+
+</UL></font>
+<p>
+2007-01-06 6.3.1-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix the -auto-orient to work with an image sequence (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?t=8100).
+ <LI> Add -polaroid option to simulate a Polaroid picture.
+ <LI> Eliminate double-free bug in GradientImage().
+ <LI> Set AppendImage() matte channel only when image has matte attribute set.
+ <LI> The -crop with negative offsets do not modify the virtual canvas.
+ <LI> Caption: Given both the width and height ("-size") of the area to fill,
+ adjust the fonts "-pointsize" until the text just filles the whole space
+ without overflowing.<BR>
+ <LI> Generate proper Windows icon image files (patch provided by
+ Robert M. Jansen).
+
+</UL></font>
+<p>
+2006-12-31 6.3.1-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add text parameter to PerlMagick Draw() method.
+
+</UL></font>
+<p>
+2006-12-26 6.3.1-5 Masayuki Koshiji <koshiji@users...>
+<font size=-2><UL>
+ <LI> Fix 16-bit raw image write with interlace option (line, plane, and
+ partition).
+
+</UL></font>
+<p>
+2006-12-23 6.3.1-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Remove excess whitespace when converting an XMLTree to XML (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?t=8053).
+ <LI> GetTypeMetrics() now returns proper width when rotating text.
+ <LI> Add -origin command line option.
+
+</UL></font>
+<p>
+2006-12-17 6.3.1-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Tiled TIFF images are now read using a memory efficient algorithm.
+ <LI> Add additional checks for valid IPTC profiles.
+ <LI> Add -recolor option to translate, scale, shear, or rotate image colors.
+ <LI> CompareStringInfo() no longer returns incorrect results if one string is
+ a substring of the other.
+
+</UL></font>
+<p>
+2006-12-13 6.3.1-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix 'no window with specified ID exists' bug (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?t=6315).
+ <LI> Bilevel TIFF images require a bilevel alpha channel.
+ <LI> Fix missing object when writing PDF images.
+
+</UL></font>
+<p>
+2006-12-06 6.3.1-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Use soft rather than hard shadows with montage.
+ <LI> Under some circumstances, identify did not report the transparent colormap
+ color.<BR>
+ <LI> Patch TIFF coder to read separated CMYKA images.
+ <LI> Patch gradient coder to permit transparent gradients.
+ <LI> Fix tiling of display program pan icon (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?p=24214).
+ <LI> Add -linear-stretch option (suggested by Anthony).
+
+</UL></font>
+<p>
+2006-12-05 6.3.1-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Fix memory leak when EmbeddableMagick is defined.
+ <LI> Fix memory leak when EmbeddableMagick is defined.
+
+</UL></font>
+<p>
+2006-12-02 6.3.0-8 Marko Mahnic <marko.mahnic@email...>
+<font size=-2><UL>
+ <LI> Fix drawing boundary condition to prevent rendering ghost lines.
+
+</UL></font>
+<p>
+2006-12-01 6.3.0-8 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fix corrupt Group4/Fax-compressed PDF object.
+ <LI> Generate a proper grayscale image when using a gray profile.
+
+</UL></font>
+<p>
+2006-11-30 6.3.0-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Revert TIFF samples-per-pixel patch.
+
+</UL></font>
+<p>
+2006-11-15 6.3.0-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Generate proper Postscript for bilevel transparent images.
+ <LI> Generate proper Windows icon image files (patch provided by
+ Robert M. Jansen).
+
+</UL></font>
+<p>
+2006-11-11 6.3.0-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Prevent buffer overflow in PNG coder (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?t=7781).
+ <LI> Add image.resolution.{x,y} to the Fx language.
+
+</UL></font>
+<p>
+2006-11-03 6.3.0-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Prevent buffer overflow in DCM and PALM coders (ref
+ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5456).
+ <LI> Set opacity channel of splice image to that of the image background color.
+ <LI> Properly read/write 16-bit FITS images.
+
+</UL></font>
+<p>
+2006-11-01 6.3.0-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Don't truncate image comment (e.g. convert ... -format %c ...).
+ <LI> Write Group-4 compressed TIFF images if the image is monochome and opaque.
+ <LI> Color reduction with the HSB colorspace no longer faults.
+
+</UL></font>
+<p>
+2006-10-23 6.3.0-1 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Speed up XPM coder (patch from luis@luispe...).
+ <LI> PNG images with 16 colors or less are no longer corrupted.
+
+</UL></font>
+<p>
+2006-10-02 6.3.0-0 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Destroy MagickCore API environment when END{} is called in PerlMagick
+ (patch provided by Dmitry Karasik).
+ <LI> Support -fx conditionals (e.g. x ? y : z), assignment (e.g. zz=3.1), and
+ statement separators (e.g. zz=2.1; zz).
+ <LI> Add new pixel: attribute (e.g. -format '%[pixel:s]').
+ <LI> Add support for Supplementary Plane Unicode characters (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?p=23065#23065).
+
+</UL></font>
+<p>
+2006-09-25 6.2.9-8 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> The plasma: coder is once again opaque.
+ <LI> Bogus relinquish in rare circustances produced incorrect resource
+ utilization statistics.
+
+</UL></font>
+<p>
+2006-09-18 6.2.9-7 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add CMYK support to the PAM image format.
+ <LI> Do not write PDF soft mask if image is PaletteMatteType.
+ <LI> Patches from Sven Koehler to improve PerlMagick's build script.
+
+</UL></font>
+<p>
+2006-09-18 6.2.9-7 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Add additional ordered-dithering options.
+
+</UL></font>
+<p>
+2006-09-15 6.2.9-6 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Ensure cache_resources in magick/cache.c is a valid splay-tree before we
+ add/remove nodes to/from it.<BR>
+ <LI> Automatically threshold the alpha channel at 50% when color reducing an
+ image.<BR>
+ <LI> Make ParseMagickOptions() more robust to handle ordered dither options.
+
+</UL></font>
+<p>
+2006-09-11 6.2.9-5 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Improve -monochrome option.
+ <LI> %% now works in output image filename (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?p=22393).
+ <LI> Install check to ensure the blob offset is less than the blob length in
+ ReadBlob() to prevent accidental or malicious buffer overflow (reference
+<STRONG>[AD_LAB-06010]).</STRONG><BR>
+ <LI> fix PerlMagick per-object leak (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?p=22418).
+
+</UL></font>
+<p>
+2006-09-02 6.2.9-4 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add -resample option to the display and animate program.
+ <LI> Fix boolean transparency bug for GIF images.
+
+</UL></font>
+<p>
+2006-08-28 6.2.9-3 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add -clip-mask option to clip as defined by an image mask.
+
+</UL></font>
+<p>
+2006-08-20 6.2.9-2 Cristy <quetzlzacatenango@image...>
+<font size=-2><UL>
+ <LI> Add >>, <<, >=, and <= operators to -fx.
+
+</UL></font>
+<p>
+2006-08-12 6.2.9-1 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add -interpolate option.
+ <LI> Respect -type option when writing PNG images (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?t=7254).
+ <LI> Missing bounds checks in XCF and SUN image decoders (patch by
+ (taviso@googl...).<BR>
+ <LI> Enhance -fx to respect -interpolate.
+ <LI> display -window id image no longer generates a seg-fault.
+ <LI> Use -transparent-color wheat to define the GIF transparency color.
+ <LI> Fix -fx and operator (&).
+ <LI> Validate runlength fields in SGI images (reference CVE-2006-4144).
+
+</UL></font>
+<p>
+2006-08-08 6.2.9-0 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add -adaptive-resize option.
+ <LI> Permit x100 as a geometry in Magick++.
+ <LI> Respect width/height for image MVG element.
+
+</UL></font>
+<p>
+2006-08-01 6.2.8-8 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add -unique-colors to discard all but one of any pixel color.
+ <LI> The montage program properly parses the -channel option.
+ <LI> Make -colors work consistently as an image operator.
+ <LI> Some DPX images do not contain a television header.
+ <LI> Restore ability to read 10-bit grayscale Cineon images.
+ <LI> Improve handling of corrupt GIF images.
+
+</UL></font>
+<p>
+2006-07-28 6.2.8-7 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Handle undefined colorspace in TransformRGBImage().
+ <LI> Add ParseAffineGeometry() to parse the affine geometry.
+
+</UL></font>
+<p>
+2006-07-24 6.2.8-6 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> Extend ordered-dither to accept a few more values 2x1, 4x1, 6x1, and
+ 8x1 are halftone patterns.
+
+</UL></font>
+<p>
+2006-07-15 6.2.8-6 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add -sketch option (e.g. -sketch 0x20+135). See
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?t=7023.
+ <LI> Add -regard-warnings option to ImageMagick utilities.
+ <LI> The -colorspace option is an operator, not a setting.
+ <LI> Fix -affine so it rotates at the proper offset.
+
+</UL></font>
+<p>
+2006-07-15 6.2.8-5 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Fixed a threading flaw in RemoveNodeByValue() in the magick/splay.c (report
+ by fedor57).<BR>
+ <LI> Properly scale for 16-bit unsigned FITS image.
+ <LI> PosterizeImage() is working properly again.
+ <LI> Don't expand filenames for CAPTION: or LABEL: image formats.
+ <LI> Add -adaptive-blur command-line option
+
+</UL></font>
+<p>
+2006-07-06 6.2.8-4 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add IsImageSimiliar() method to MagickCore API.
+ <LI> Improve color reduction algorithm for images with transparency.
+
+</UL></font>
+<p>
+2006-07-02 6.2.8-3 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> The -page A4 option no longer returns a width/height of 0.
+ <LI> GetMagickModulePath() at line 803 in magick/module.c the variable 'home'
+ is not freed before returning.<BR>
+ <LI> Magick::throwException should not call MagickLib::GetException().
+
+</UL></font>
+<p>
+2006-07-01 6.2.8-2 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> The DPX orientation header elements are 8 not 16.
+ <LI> Fix the ImageMagick web pages so they render properly.
+
+</UL></font>
+<p>
+2006-06-16 6.2.8-1 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Fix off-by-one error in DrawAffineImage().
+ <LI> Set the offset to layer #2 of XCF images.
+
+</UL></font>
+<p>
+2006-06-12 6.2.8-1 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Set proper precendence so -fx 'p{u[1]*w,u[2]*h}' parses properly (bug
+ report by Anthony).<BR>
+ <LI> Some fonts improperly return a negative max advance metric.
+
+</UL></font>
+<p>
+2006-06-07 6.2.8-1 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Do not normalize -convolve kernel.
+
+</UL></font>
+<p>
+2006-06-06 6.2.8-0 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Fixed a number of bugs found on Anthony's bug page,
+ http://www.cit.gu.edu.au/~anthony/graphics/imagick6/bugs/testing/.
+
+</UL></font>
+<p>
+2006-05-21 6.2.7-8 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Added -auth-orient, -transpose, and -transverse options to the convert
+ command line.<BR>
+ <LI> +extract properly resets the extract geometry.
+
+</UL></font>
+<p>
+2006-05-18 6.2.7-7 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Don't fault when processing bad TIFF profiles (4 characters or less).
+ <LI> Masks are now read properly for 16-bit DIB's.
+ <LI> The pixel cache file descriptor limit code failed because the pixel cache
+ timestamp was not always being set properly.
+ <LI> Fixed a small memory leak in IsGrayImage().
+ <LI> Fixed Cineon writing bug for very long filenames in 6.2.7 (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?t=6590)
+ <LI> Begin the long journey of enhancing the conjure utility to support
+ all options that are supported by the convert utility and PerlMagick
+ (e.g. border, guassian-blur, etc.).<BR>
+ <LI> Fixed access violation in ImageMagickObject (patch provided by Milan
+ Dadok).
+
+</UL></font>
+<p>
+2006-05-10 6.2.7-6 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Clear exception in ListMagickInfo() if any formats are returned.
+ <LI> Patch to correctly read 32-bit TGA image.
+
+</UL></font>
+<p>
+2006-05-09 6.2.7-5 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Default quantum scale to QuantumRange/(maximum-minimum) in magick/quantum.c.
+
+</UL></font>
+<p>
+2006-05-08 6.2.7-4 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Remove debugging statement from magick/cache.c.
+
+</UL></font>
+<p>
+2006-05-01 6.2.7-3 Cristy <koyaanisqatsi@image...>
+<font size=-2><UL>
+ <LI> Add -adaptive-sharpen to the convert and mogrify programs.
+
+</UL></font>
+<p>
+2006-04-24 6.2.7-2 Cristy <nagual@image...>
+<font size=-2><UL>
+ <LI> Generate proper image filenames when filename has more than one embedded
+ period (e.g. image.gif.eps becomes image.gif-0.eps, image.gif-1.eps,
+ etc.).<BR>
+ <LI> CompositeImage() is now thread-safe.
+
+</UL></font>
+<p>
+2006-04-17 6.2.7-1 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The OpenModules() is now thread-safe (bug report from
+ rachael.sandefer@kabir...)<BR>
+ <LI> Grabbing subimages from a TIFF image now works properly (e.g.
+ image.tif[3,7,11-13]).
+
+</UL></font>
+<p>
+2006-04-14 6.2.7-0 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The GIF image format is now thread-safe (bug report from
+ rachael.sandefer@kabir...)
+
+</UL></font>
+<p>
+2006-04-11 6.2.7-0 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> Icon module was logging TraceEvent instead of CoderEvent; added logging
+ if header info.
+
+</UL></font>
+<p>
+2006-04-10 6.2.7-0 Cristy <nagual@image...>
+<font size=-2><UL>
+ <LI> Load system fonts with the fontconfig delegate library.
+ <LI> The -opaque option now respects -channel.
+ <LI> Put/get TIFF image position attribute.
+ <LI> Read PSD pre-combined layer.
+ <LI> Set the fuzz factor for -opque and -transparent.
+ <LI> Add -black-point-compensation option. Use in concert with the -profile
+ option.
+
+</UL></font>
+<p>
+2006-03-31 6.2.6-8 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> 'convert existing-image.png -background' no longer generates a fault.
+ <LI> -define pdf:use-cropbox=true actually works now.
+ <LI> Slight mods to magick/xwindow.c to compile under BEOS (path provided by
+ henrimoi@hotma...).<BR>
+ <LI> #000000 improperly set the opacity channel (bug report and patch from
+ digipete@shaw....).
+
+</UL></font>
+<p>
+2006-03-31 6.2.6-8 Jacob (=Jouk) Jansen <joukj@hrem...>
+<font size=-2><UL>
+ <LI> Patch for OpenVMS compile support.
+
+</UL></font>
+<p>
+2006-03-30 6.2.6-7 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Added the 'Dispose' layers function to return the 'GIF dispose' images of
+ an animation.
+
+</UL></font>
+<p>
+2006-03-30 6.2.6-7 Cristy <nagual@image...>
+<font size=-2><UL>
+ <LI> File is already closed, do not call fclose() on it in magick/blob.c.
+ <LI> PS3/EPS3 now writes a proper image mask when compression is None.
+ <LI> Patch to properly read interlaced GIF's.
+ <LI> DestroyMagick() is not always reliably available when atexit() unwinds.
+
+</UL></font>
+<p>
+2006-03-26 6.2.6-6 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> Specify '-depth 32 -define quantum:format=floating-point' to read/write
+ single precision floating point TIFF and raw formats.
+ <LI> Specify '-depth 64 -define quantum:format=floating-point' to read/write
+ double precision floating point TIFF and raw formats.
+ <LI> If you overlaying an image with a negative offset, the image is no
+ longer wrapped around the left and right edges of the canvas.
+
+</UL></font>
+<p>
+2006-03-20 6.2.6-5 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> Fix Group4-compression in the PDF writer.
+
+</UL></font>
+<p>
+2006-03-06 6.2.6-4 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> Read image filenames that start with a dash (e.g. display -- -logo.png).
+ <LI> Do not set the image opacity when reading a PSD colormap index (reference
+ http://redux.imagemagick.org/discussion-server/viewtopic.php?p=18026).
+ <LI> By default, ImageMagick sets the page size to the MediaBox. Some
+ PDF files, however, have a CropBox that is smaller than the MediaBox and
+ may include white space, registration or cutting marks outside the CropBox.
+ To force ImageMagick to use the CropBox rather than the MediaBox, use
+ -define (e.g. -define pdf:use-cropbox=true).
+ <LI> RGB to CMYK color conversion is now scaled properly.
+
+</UL></font>
+<p>
+2006-03-01 6.2.6-3 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> The command line utilities properly returns a non-zero status when an
+ exception is thrown.
+
+</UL></font>
+<p>
+2006-02-20 6.2.6-2 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> Fix a memory leak in each of CompositeImageCommand() and CompositeImage()
+ (bug report by gscott...@gmail...).
+ <LI> Add new options -layers compare-any, -layers compare-clear,
+ -layers compare-overlay, and -layers optimize.
+
+</UL></font>
+<p>
+2006-02-16 6.2.6-2 Marko Mahnič <marko.m...>
+<font size=-2><UL>
+ <LI> Draw last dash in a dashed polyline.
+
+</UL></font>
+<p>
+2006-02-15 6.2.6-2 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> See http://www.cit.gu.edu.au/~anthony/graphics/imagick6/basics/#notes
+ -geometry implementation notes.
+
+</UL></font>
+<p>
+2006-02-13 6.2.6-2 Cristy <stentz@image...>
+<font size=-2><UL>
+ <LI> Add %D to -format to return the image disposal method.
+ <LI> ncorrect handling of file:// URIs causes data loss (patch from Daniel
+ Kobras).<BR>
+ <LI> Set default BMP resolution units to PixelsPerCentimeter (problem report
+ from digipete@shaw...).
+
+</UL></font>
+<p>
+2006-02-07 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> The "-geometry" setting should cause -composite operation, to resize just
+ the overlayed image. It should not do anything at the point it is given.
+
+</UL></font>
+<p>
+2006-02-04 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Patch IsMagickOption() to only report MagickTrue if the option is a
+ valid ImageMagick command line option.
+ <LI> Fixed a race condition in the semaphore implementation (fix suggested
+ by Федор Романенко).
+
+</UL></font>
+<p>
+2006-02-01 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Add layer.c source module to distribution.
+ <LI> Add -layers optimize command line option to optimize image layers.
+
+</UL></font>
+<p>
+2006-01-24 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Correctly implement Restore To Previous layer disposal method for
+ CoalesceImages().
+
+</UL></font>
+<p>
+2006-01-20 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Bounding box was not always recognized in small EPS files.
+ <LI> Enable Zip compresion in Windows TIFF distribution.
+ <LI> Make sure pict images are composited in the RGB colorspace.
+ <LI> Don't destroy profiles in PerlMagick when returned by GetImageProfile
+ (bug report by Kevin Rosenberg).
+
+</UL></font>
+<p>
+2006-01-14 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Deprecate TranslateText() and replace with InterpretImageAttributes().
+ <LI> InterpretImageFilename() interprets embedded characters in an image
+ filename (initial patch from Daniel Kobras).
+ <LI> Add AcquireUniqueSymbolicLink() to help prevent shell injection for the
+ any command line delegates (initial patch from Daniel Kobras).
+ <LI> Some PSD CMYK images were not read properly.
+
+</UL></font>
+<p>
+2006-01-13 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Conform to W3C CSS3 Color Module recommendation for specifying colors.
+ We now include hsl() and hsla() (e.g. hsl(120, 50%, 50%) for pastel green).
+ <LI> Added CompositeImageChannel() but there is still work to be done. It
+ currently behaves just like CompositeImage().
+
+</UL></font>
+<p>
+2006-01-06 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Annotate relative to the image page geometry.
+ <LI> Add the -contrast-stretch option. Its like -normalize but it accepts an
+ arguments for the black and white points.
+
+</UL></font>
+<p>
+2005-12-30 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Prevent shell command injection in delegate code (via file names), See
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345238.
+ <LI> Identify GIF transparent color in 'identify -verbose' output.
+ <LI> Use -resize for resizing an image, -geometry no longer works for resizing.
+ <LI> Added VignetteImage() and corresponding -vignette option (e.g.
+ -vignette 0x20+20+20).
+
+</UL></font>
+<p>
+2005-12-28 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The FITS coder failed to read a 16-bit FITS image (bug report by Volker
+ Kuhlmann).
+
+</UL></font>
+<p>
+2005-12-16 Maria Gullickson <mgullickson@afdso...>
+<font size=-2><UL>
+ <LI> Patch memory leak in GenerateEXIFAttribute().
+
+</UL></font>
+<p>
+2005-12-16 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Don't use existing opaque color as a transparent color index when
+ writing GIF images.<BR>
+ <LI> The compare program now reports an exception when the dimensions of the
+ image and its reference differ.<BR>
+ <LI> Fix so -shave 1% returns expected results (bug report by Jon Hitchcock).
+ <LI> Convert YCC colorspace to RGB when using the -modulate option (bug report
+ by Andreas Tille).<BR>
+ <LI> Permit a range of images to delete with the -delete option (suggested by
+ Anthony).<BR>
+ <LI> Move *ImageCommand() calls from MagickCore to MagickWand.
+
+</UL></font>
+<p>
+2005-12-01 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Correctly implement Restore To Previous layer disposal method for
+ CoalesceImages() (bug report by Anthony).
+ <LI> Extend exceptions to track any/all exceptions thrown. Previously
+ only the most severe exception was tracked.
+
+</UL></font>
+<p>
+2005-11-12 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> SetImageType(): monochrome images are not required to be colormapped.
+ <LI> Initialize blob->mapped to MagickFalse in AttachBlob() (bug report from
+ O. Watson).
+ <LI> Use painters algorithm for the -draw point primitive (suggested by
+ Anthony).<BR>
+ <LI> NormalizeImage() now normalizes the opacity channel correctly (bug report
+ <LI> QueryFontMetrics() now accounts for the font stroke width.
+
+</UL></font>
+<p>
+2005-11-08 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> The index channel is no longer flipped in SeparateImageChannel() (bug
+ report from Pierre Arnaud).
+
+</UL></font>
+<p>
+2005-11-07 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> coders/png.c: Add vpAg chunk to support virtual page width/height.
+
+</UL></font>
+<p>
+2005-11-02 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Enhance DrawAffineImage() to include color interpolation.
+
+</UL></font>
+<p>
+2005-10-31 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Add new -identify option to identify an image.
+
+</UL></font>
+<p>
+2005-10-30 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> When writing JPEG images, make the errors recoverable.
+
+</UL></font>
+<p>
+2005-10-27 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Permit the repage option to accept geometry shortcuts (e.g. +3+3).
+ <LI> `convert rose: -verbose rose.gif` no longer reports information about the
+ input image, only the output image (bug report from Anthony).
+
+</UL></font>
+<p>
+2005-10-23 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> The display program now shows the actual filename in the display window
+ rather than the temporary filename (e.g. image.miff.gz rather than
+ /var/tmp/magick-XXa18945).<BR>
+ <LI> display -remote -quit will cause the remote display program to exit
+ (suggested by Anthony).<BR>
+ <LI> Patched the display program to properly compute the scanline pad for
+ X11 visuals 16-bits deep.
+
+</UL></font>
+<p>
+2005-10-22 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> ImageMagick no longer reports "too many open files" when montaging
+ thousands of images.
+
+</UL></font>
+<p>
+2005-10-17 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Fix a few problems so ImageMagick will compile with the g++ compiler.
+ <LI> Patch so ImageMagick will properly convert -fill 'cmyk(0,0,0,255)' to RGB.
+ <LI> ThumbnailImage() no longer faults when resources are exhausted.
+
+</UL></font>
+<p>
+2005-10-15 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> By default we compute optimal Huffman coding tables for JPEG images. Use
+ -define jpeg:optimize-coding=false to use the default Huffman tables.
+ <LI> Unable to add an image, at index 0, to a MagickWand that already contains
+ images (bug report fromm O. Watson).
+
+</UL></font>
+<p>
+2005-10-14 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> IsMagickColorSimiliar() properly distinquishes the green and blue color
+ components (bug report from Justin T.).
+ <LI> Setting MagickWand's width to less than the width of the rendered text
+ causes the "CAPTION:" pseudo-format to seg-fault when read (bug report from
+</UL></font>
+<p>
+ O. Watson).
+
+<p>
+2005-10-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Permit embedded \n characters for the caption coder.
+
+</UL></font>
+<p>
+2005-09-30 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Add support for the PAM image format.
+ <LI> Adjust image canvas size for ShadowImage() (problem report from Anthony).
+
+</UL></font>
+<p>
+2005-09-16 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Add AddNoiseImageChannel() method.
+ <LI> RotateImage() no longer affected by the composite operator.
+ <LI> Add a control handler to intercept ctrl-c signal under Windows.
+ <LI> Fixed a boundary condition error in DrawAffineImage() (bug report by
+ Gabe Schaffer).
+
+</UL></font>
+<p>
+2005-09-14 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> FlattenImage() no longer faults when you give it an image that is not at the
+ beginning of the image list.<BR>
+ <LI> Leave image index at its current location after a MagickReadImage().
+ Previously the image index was set to the beginning of the image list.
+
+</UL></font>
+<p>
+2005-09-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Option -scenes 0-1 no longer generates an exception.
+ <LI> Ensure IsMagickInstantiated() return MagickTrue after InitializeMagick()
+ is called.
+
+</UL></font>
+<p>
+2005-09-11 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Enhance -delay to respect the > & < meta -characters.
+ <LI> Correct for motion blur angle once again (problem report from Anthony).
+ <LI> 16-bit grayscale images no longer cause a memory fault when saved to
+ the PCX format.<BR>
+ <LI> Fixed small ICC color profile memory leak.
+
+</UL></font>
+<p>
+2005-09-06 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed small memory leak in the RegisterTTFImage() module (patch provided
+ by jon@websuper...).<BR>
+ <LI> Extend -delay to accept ticks-per-second (e.g. -delay 10x100 is 10 one
+ hundredths of a second). The default is hundredths of a second.
+ <LI> Clone the virtual pixel method when cloning the image cache (thanks to
+ Anthony for discovering this bug).<BR>
+ <LI> 'montage rose: -geometry 0 rose.gif' no longer seg faults (bug report by
+ Anthony).<BR>
+ <LI> Compute correct image statistics for grayscale images.
+ <LI> Given -crop WxH+X+Y! the image page width and height is set to WxH and
+ the image offset has the crop offset subtracted, so the image is relative
+ to the new crop/page/canvas area.
+
+</UL></font>
+<p>
+2005-09-03 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Eliminate additional pedantic compiler warnings.
+ <LI> Bump SONAME version due to binary compatibility break.
+ <LI> The caption coder converts carriage-returns to plain spaces.
+ <LI> Cropping a 'paged' image with a negative offset is now working correctly.
+ <LI> Persist the gravity setting on the convert command line.
+ <LI> The info: format respects the -verbose option.
+ <LI> Added new -format embedded formatting characters, %P canvas/page size and
+ %O image offset on canvas/pag.<BR>
+ <LI> A centered crop with a precentage noew positions the image correctly on
+ the page.<BR>
+ <LI> New Transparent virtual pixel methods.
+ <LI> Fixed display to properly skip images with 3<space> or 3<backspace>, for
+ example.<BR>
+ <LI> Fixed display to go to the proceeding image when its the last image in
+ the sequence and <backspace> is pressed.
+ <LI> Fixed ConstituteImage() to properly return the opacity when a map of O
+ is used rather than A (bug report by magickbugs@picta...).
+ <LI> Use -channel RGBA to generate transparent Postscript images.
+
+</UL></font>
+<p>
+2005-08-24 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Invert 1-bit min-is-black TIFF images.
+ <LI> Fixed small memory leak in SVG coder.
+ <LI> Get rid of spurious "unable to find type-ghostscript.xml" message under
+ Windows.<BR>
+ <LI> eliminated corrupt memory with 'identify -list delegate' command.
+ <LI> -fx 'u > .4' no longer generates a parse error.
+ <LI> Fixed cropping with a negative page offset.
+ <LI> The -radial-blur option can now be controlled with -channel option.
+ <LI> Reading the annotation string using the '@' filename prefix, now works for
+ standard input .
+
+</UL></font>
+<p>
+2005-08-20 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Add the -motion-blur option to simulate motion blur.
+
+</UL></font>
+<p>
+2005-08-17 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Restore iCCP chunk when writing PNG images with a color profile.
+ <LI> remove halo effect caused by transparent images from special effect
+ filters convolve, implode, swirl, and wave.
+
+</UL></font>
+<p>
+2005-08-16 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Export the MaxRGB symbol in Magick.pm of PerlMagick.
+ <LI> Support CMYK pixels for the implode, swirl, and wave special effects.
+
+</UL></font>
+<p>
+2005-08-06 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> resizing a light colored image on a transparent background will now NOT
+ produce a incorrect black halo.<BR>
+ <LI> The experimental -identify option has been replaced with info:. This
+ special output format will do the same task as the 'identify' command,
+ but will allow you to save the result into a seperate file or to
+ standard output. This output format will understand the use of the
+ -format setting within the convert command.
+ <LI> -label and -draw text will no longer deal with the special escapes chars.
+ That is percent '%' image info formats will nolonger be expanded, or
+ '\n' newlines (for multiple line draws) handled.
+ <LI> A new -extent operator. This is a ultra-fast and simple image size
+ changer. The image data is preserved in the topleft corner of the
+ resulting image, but no effort is made to set any form of background
+ color, or preserve image data that falls outside the new image size.
+ Note -crop is still the prefered operator, but this is appropriate for
+ handling very large, or huge numbers of images.
+
+</UL></font>
+<p>
+2005-07-26 Cristy <stentz@image...><BR>
+<font size=-2><UL>
+ <LI> Add the Compare() method to the ImageMagickObject.
+
+</UL></font>
+<p>
+2005-07-24 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Modified the configure script to makes sure that -lcygipc only gets added
+ if shmctl is actually found in it (Debian bug report and patch).
+
+</UL></font>
+<p>
+2005-07-20 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Modified the configure script to validate the new Graphviz 2.4 GVC library.
+ <LI> Updated to the latest autoconf/automake scripts (suggested by Arfune).
+
+</UL></font>
+<p>
+2005-07-20 Shish <shish@shish...><BR>
+<font size=-2><UL>
+ <LI> The -font option for the display program no longer causes a memory
+ reallocation error.
+
+</UL></font>
+<p>
+2005-07-13 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed an obscure heap-overflow vulnerability in the AVS reader reported by
+ Damian Put (http://www.overflow.pl/adv/imheapoverflow.txt).
+ <LI> Fixed race condition in semaphore implementation (fix suggested by
+ Matt Wytock).<BR>
+ <LI> 16-bit FITS images are now scaled properly (bug report from Ivan aka Detro).
+
+</UL></font>
+<p>
+2005-07-04 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Read image rather than ping image for -format %r.
+
+</UL></font>
+<p>
+2005-06-20 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> coders/png.c: Fixed a problem with reading 16-bit PNG images using the Q8
+ quantum depth.
+
+</UL></font>
+<p>
+2005-06-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added methods MagickSetImageAttribute(), MagickSetOption(), and
+ MagickGetOption().
+
+</UL></font>
+<p>
+2005-06-14 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed bug recently introduced for stroke/fill drawing primitives.
+ <LI> Fixed bug when saving an 8BIM profile.
+
+</UL></font>
+<p>
+2005-06-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Add stdarg.h include in magick/api.h to satisfy RMagick configure script.
+
+</UL></font>
+<p>
+2005-06-05 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Image rotation no longer creates a black backgound when the image background
+ color is fully transparent.
+
+</UL></font>
+<p>
+2005-06-02 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added Log to Linear colorspace conversion.
+ <LI> Deprecated magick/api.h, use magick/ImageMagick.h instead.
+
+</UL></font>
+<p>
+2005-05-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Embeded ImageMagick no longer checks for configuration files on disk and
+ instead uses the built-in configuration.
+ <LI> GetImageTotalInkDensity() returns the total ink density for an image.
+
+</UL></font>
+<p>
+2005-05-26 Falcon <sss@rdw.r...><BR>
+<font size=-2><UL>
+ <LI> Patch for support black-channel(CMYK) in MagickGetImageHistogram().
+
+</UL></font>
+<p>
+2005-05-26 m.objects <imagemagick@mobjec...>
+<font size=-2><UL>
+ <LI> Fixed ConstrainColormapIndex() bug in coders/mat.c.
+
+</UL></font>
+<p>
+2005-05-26 Kevin A. McGrail<BR>
+<font size=-2><UL>
+ <LI> Added code to perform dissolution of composite image during dissolve
+ operation.
+
+</UL></font>
+<p>
+2005-05-18 Obache <obache@users...><BR>
+<font size=-2><UL>
+ <LI> Permit escaping the % in a filename (e.g. hmb_50%%x50%%.jpg).
+
+</UL></font>
+<p>
+2005-05-06 Taviso <taviso@sdf.li...><BR>
+<font size=-2><UL>
+ <LI> Avoid infinite loop if bogus XWD rad/green/blue masks are 0;
+
+</UL></font>
+<p>
+2005-05-06 John Cupitt <jcupitt@gmail...>
+<font size=-2><UL>
+ <LI> Eliminate seg-fault when pinging images not recognised by ImageMagick.
+
+</UL></font>
+<p>
+2005-05-03 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Eliminate seg-fault when command line options are missing their required
+ values (e.g. convert -fill).
+
+</UL></font>
+<p>
+2005-04-23 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed an obscure heap-overflow vulnerability in the PNM reader reported by
+ Damian Put (http://www.overflow.pl/adv/imheapoverflow.txt).
+
+</UL></font>
+<p>
+2005-04-18 Volker Kuhlmann <list0570@parad...>
+<font size=-2><UL>
+ <LI> adds a number of missing exif tags and correct the name of 2 existing ones.
+
+</UL></font>
+<p>
+2005-04-16 Rick Mabry <rmabry@sport...>
+<font size=-2><UL>
+ <LI> Fixed memory overflow computation.
+
+</UL></font>
+<p>
+2005-04-13 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Permit a 0 x or y shear value.
+
+</UL></font>
+<p>
+2005-04-10 K Brady <kbrady@newba...><BR>
+<font size=-2><UL>
+ <LI> Check AVI chunk size to ensure it does not exceed file length.
+
+</UL></font>
+<p>
+2005-04-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Add support for JPEG2000 compressed PDF images. Use -compress jpeg2000.
+
+</UL></font>
+<p>
+2005-04-01 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Return more accurate results for transforming from the HSB to RGB
+ colorspaces and back.<BR>
+ <LI> Fixed image rotation for proper blending near transparent/opaque edges.
+
+</UL></font>
+<p>
+2005-03-30 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Check return status of ReadBlob() for various coders.
+
+</UL></font>
+<p>
+2005-03-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -sigmoidal-contrast option for non-linear contrast control (suggested
+ by Anthony/Gabe).
+
+</UL></font>
+<p>
+2005-03-20 Lee Sobieski <lee.h.sobieski@solar...>
+<font size=-2><UL>
+ <LI> Added ResetImageAttributeIterator() and GetNextImageAttribute() to permit
+ iterating over all the attributes associated with an image.
+
+</UL></font>
+<p>
+2005-03-15 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Change sampling_factor to sampling-factor so the -sampling-factor option is
+ properly recognized.
+
+</UL></font>
+<p>
+2005-03-10 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Added the SepiaToneImage() method to simulate a sepia-toned photo.
+
+</UL></font>
+<p>
+2005-03-03 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> AppendImages() no longer returns an alpha channel if the image sequence
+ does not have one.
+
+</UL></font>
+<p>
+2005-02-26 Taviso <taviso@sdf.lo...><BR>
+<font size=-2><UL>
+ <LI> A filename embedded with %n (e.g. logo%n.png) no longer causes a fault.
+
+</UL></font>
+<p>
+2005-02-24 Albert Chin-A-Young <china@thewri...>
+<font size=-2><UL>
+ <LI> The Tru64 UNIX 4.0D/5.1 C++ compiler doesn't support ios::binary.
+ There is an #ifdef for this, MISSING_STD_IOS_BINARY, but nothing sets
+ it in configure.ac. So, I whipped up something to test it. I've tested
+ this with the Sun, HP, IBM, SGI, and GNU C++ compilers.
+
+</UL></font>
+<p>
+2005-02-21 Peter Seiderer <ps.report@gmx.n..>
+<font size=-2><UL>
+ <LI> Bitmaps in wmf files which are drawed via ipa_bmp_draw (in coders/wmf.c)
+ are not scaled to the output size, but drawn with the original size.
+
+</UL></font>
+<p>
+2005-02-12 Rick Mabry <rmabry@sport...>
+<font size=-2><UL>
+ <LI> Shear no longer produces artifacts for a 0 y-shear (e.g. 60x0).
+
+</UL></font>
+<p>
+2005-02-08 Marc Zonnenberg <marc.zonnenberg@wayne...>
+<font size=-2><UL>
+ <LI> The PerlMagick memory, disk, etc., limits were not being set for values
+ other than unlimited.
+
+</UL></font>
+<p>
+2005-02-08 Francis Labonte <francis_labonte@hotma...>
+<font size=-2><UL>
+ <LI> Not all memory allocated in GetTransformTokens & GetStyleTokens are freed
+ in SVG parsing.
+
+</UL></font>
+<p>
+2005-02-03 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Distinquish Fax and Group4 compression when writing PDF.
+
+</UL></font>
+<p>
+2005-01-28 Samual Sieb <samuel@sieb....>
+<font size=-2><UL>
+ <LI> Fixed bug with the -fx modulo operator.
+
+</UL></font>
+<p>
+2005-01-26 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> ImportQuantumPixels() was missing a parameter in the FPX coder module (ref.
+ http://studio.imagemagick.org/magick/viewtopic.php?t=3574).
+
+</UL></font>
+<p>
+2005-01-22 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed precendence for ^ -fx operator (bug report by Rick Mabry).
+
+</UL></font>
+<p>
+2005-01-14 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed iDEFENSE PSD heap overflow vulnerability reported by Andrei
+ Nigmatulin.<BR>
+ <LI> Support writing grayscale TGA images.
+
+</UL></font>
+<p>
+2005-01-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Deprecated PushImagePixels() and PopImagePixels() and replaced them with
+ ExportMagickPixels() and ImportMagickPixels(). The latter have a pad
+ parameter.
+
+</UL></font>
+<p>
+2005-01-05 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Certain values for the -affine/-transform options caused a premature exit
+ (bug report from Jan Willi).<BR>
+ <LI> Removed infinite loop from `import -window root`.
+
+</UL></font>
+<p>
+2004-12-21 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> ReadPALMImage() now produces a proper RGB image (bug report from Paul
+ Bolle).
+
+</UL></font>
+<p>
+2004-12-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added the -shadow option to simulate an image shadow (note, not documented
+ yet).
+
+</UL></font>
+<p>
+2004-12-16 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fix file leak in ImageToBlob() method (bug report by hpuck@tec-i...).
+
+</UL></font>
+<p>
+2004-12-11 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The -modulate option hue parameter represents a rotation from -180 degrees
+ to +180 degrees expressed as an argument of 0 to 2.0 (1.0 for no change).
+
+</UL></font>
+<p>
+2004-12-09 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> GetConfigureList() previously would only returns options the first time it
+ was called.
+
+</UL></font>
+<p>
+2004-12-06 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> CompareImages() now sets the black channel when comparing CMYK images.
+
+</UL></font>
+<p>
+2004-11-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The -channel option is operational again.
+
+</UL></font>
+<p>
+2004-11-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The black channel offset was incorrectly computed when compositing causing
+ a seg-fault (bug report from Arfune).
+ <LI> Under extremely rare conditions the GIF coder had a memory leak.
+ <LI> Moved image list advancement to after the progress monitor call in
+ QuantizeImages() (bug report by Tim Hunter).
+
+</UL></font>
+<p>
+2004-11-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The display program no longer exits after the first image.
+
+</UL></font>
+<p>
+2004-11-11 Peter Seiderer <ps.report@gmx.n..>
+<font size=-2><UL>
+ <LI> The JP2 coders no longer interprets the first channel as an opacity channel.
+
+</UL></font>
+<p>
+2004-11-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The VID coder no longer generates a fault (bug report from Arfune).
+ <LI> CMYK Postscript with a subimage specification no longer returns a grayscale
+ image (bug report from Arfune).
+
+</UL></font>
+<p>
+2004-11-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Handle image settings with MogrifyImageInfo() method.
+
+</UL></font>
+<p>
+2004-11-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> GNS contributed QueryMultilineTypeMetrics(). Its like QueryTypeMetrics()
+ but returns the maximum text width and height for multiple lines of text.
+
+</UL></font>
+<p>
+2004-11-05 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Treat -channel as a setting in the command line programs.
+ <LI> InitializeMagick() accepts a directory or filename (bug report by
+ Roger James).
+
+</UL></font>
+<p>
+2004-11-04 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> insert 0 (to insert before image number 0) is no longer a no-op.
+
+</UL></font>
+<p>
+2004-11-03 Peter Seiderer <ps.report@gmx.n..>
+<font size=-2><UL>
+ <LI> Enhance the JP2 coder to accept image in the YCbCr colorspace.
+
+</UL></font>
+<p>
+2004-11-02 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fix option list to specify a colorspace of YIQ, not YIZ (bug report by GNS).
+ <LI> More endianness problems with TIFF (bug report from Scott Minster).
+ <LI> High-resolution PCD images no longer go into an infinite loop.
+
+</UL></font>
+<p>
+2004-10-31 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> PerlMagick GetPixels() type. RGMA should be RGBA.
+
+</UL></font>
+<p>
+2004-10-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Allocate the number of colors given to AllocateImageColormap() even if it
+ exceeds the MaxColormapSize value (bug report by GNS).
+
+</UL></font>
+<p>
+2004-10-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Initialize image colormap before pixels are initialized when utilizing the
+ JPEG quantization algorithm.
+
+</UL></font>
+<p>
+2004-10-28 Jean-Louis Morel <jl_morel@bribe..>
+
+<font size=-2><UL>
+ <LI> Win98 bug reported by Jouke Visser: the module crashes with Win98.
+ I found the bug in the function lt_dlclose: on Win98, FreeLibrary always
+ returns 0 (failure) but GetLastError returns 0 too (success)!
+ There is nothing about that in the Microsoft documentation :-)
+ 2 With this small patch, one can compile the module for Perl5.6 without an
+ error message
+
+</UL></font>
+<p>
+2004-10-26 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The -compose option is a setting. Use -composite with the convert program
+ to composite two images with the operator specified with -compose.
+
+</UL></font>
+<p>
+2004-10-25 Daniel Kobras <kobras@debia...>
+<font size=-2><UL>
+ <LI> Fix EXIF code to prevent an overflow of the ifdstack array by one entry.
+
+</UL></font>
+<p>
+2004-10-23 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The -fx power operator changed to ^ and xor is : because it's not used very
+ often. The bitwise operators &, |, and ^ have their operands multiplied by
+ MaxRGB and the result divided by MaxRGB. The <, >, and = operators return
+ 1 if true, 0 if false (e.g. for the threshold operation (u > .5),
+ solarize (u * (u < .5 | u = .5) + (1 - u) * (u > .5)) (suggested by Gabe).
+
+</UL></font>
+<p>
+2004-10-22 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> A bezier with no current point must assume the first control point
+ is coincident with the current point (e.g. M100 400l590 259s36 12 61 12).
+ <LI> Fix ExpandFilenames() to not expand glob expressions if they are an option
+ parameter.
+
+</UL></font>
+<p>
+2004-10-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed FlattenImage() to ignore any PSD invisible layers.
+
+</UL></font>
+<p>
+2004-10-15 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> If ImageMagick cannot find its configuration files, allow the process to
+ continue, perhaps in a diminished capacity.
+
+</UL></font>
+<p>
+2004-10-14 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed bug in PSD coder that improperly removed an informational layer.
+ <LI> Perl threads requires local storage for ImageMagick exceptions.
+
+</UL></font>
+<p>
+2004-10-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> FlattenImage() should flatten relative to the page geometry if it exists.
+ <LI> PerlMagick's Profile() method no longer produces an assertion error when
+ the profile parameter is set to undef.
+
+</UL></font>
+<p>
+2004-10-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Additional fixes for crop geometry relative to a page geometry, see
+ http://www.cit.gu.edu.au/~anthony/graphics/imagick6/size/.
+
+</UL></font>
+<p>
+2004-10-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Embedded filenames failed to produce correct filenames for TIFF
+ (e.g. image%02d.tif).<BR>
+ <LI> Search module path under Windows for configure files.
+
+</UL></font>
+<p>
+2004-10-06 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The mogrify command parsed the -compress option but failed to set the
+ compress member of the image_info structure.
+
+</UL></font>
+<p>
+2004-10-03 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Add methods PaintOpaqueImage() and PaintTransparentImage() and deprecated
+ OpaqueImage() and TransparentImage(). These methods are similar except
+ they accept CMYK images in addition to RGB.
+
+</UL></font>
+<p>
+2004-10-02 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fix round-off error when computing tile geometry for the montage program.
+
+</UL></font>
+<p>
+2004-10-02 Adam Megacz <adam@megac...>
+<font size=-2><UL>
+ <LI> Fix decoding of opacity on rle-encoded xcf images
+
+</UL></font>
+<p>
+2004-10-01 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Don't let corrupt EXIF overflow the stack.
+
+</UL></font>
+<p>
+2004-09-30 Christophe Olivier <palf@quadr...>
+<font size=-2><UL>
+ <LI> Correct another problem with PSD and group layer-- if the group layer is
+ not visible, all the layers of the group should be not visible.
+
+</UL></font>
+<p>
+2004-09-29 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Converting images to Postscript larger than a Postscript page no longer
+ produces an incorrect bounding box.
+ <LI> Return degrees, not radians, for asin(), acos(), and atan() in FxImage()
+ (bug report by cerv@iue.tu...).<BR>
+ <LI> The montage program faulted when an image tile was the same size as the
+ specified geometry and in the CMYK colorspace.
+
+</UL></font>
+<p>
+2004-09-29 Jacob (=Jouk) Jansen <joukj@hrem...>
+<font size=-2><UL>
+ <LI> VMS patches to 6.0.1:
+
+</UL></font>
+<p>
+2004-09-29 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Add new -bias option to convert/mogrify to add bias when convolving an
+ image.<BR>
+ <LI> GetHistogramImage() no longer reports bogus values.
+
+</UL></font>
+<p>
+2004-09-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Report errors reported by the TIFF library when reading invalid TIFF image
+ files (see Debian Bug#272794).<BR>
+ <LI> Eliminated compiler warnings reported by gcc 3.5.0.
+
+</UL></font>
+<p>
+2004-09-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Move low-level blob methods declarations to a private header,
+ blob-private.<BR>
+ <LI> DescribeImage() display any clipping path if available.
+ <LI> Write the clip mask with the clipmask format (e.g. clipmask:clip.png).
+ <LI> Enhance the cache clipping algorithm to clip the black channel of a CMYK
+ image.
+
+</UL></font>
+<p>
+2004-09-15 C Pillet <cpillet73@yahoo...>
+<font size=-2><UL>
+ <LI> Update destination in the SubstituteString() method.
+
+</UL></font>
+<p>
+2004-09-15 Christophe Olivier <palf@quadr...>
+<font size=-2><UL>
+ <LI> Fix to enable reading Photoshop images with a group of layers.
+
+</UL></font>
+<p>
+2004-09-15 Christophe Olivier <palf@quadr...>
+<font size=-2><UL>
+ <LI> Fix to enable reading Photoshop images with a group of layers.
+
+</UL></font>
+<p>
+2004-09-15 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Respect the montage tile geometry (e.g. -tile 4x3 produces a page for
+ 12 tiles even if you only have 8).
+
+</UL></font>
+<p>
+2004-09-14 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed a dependancy ordering problem in the top-level Makefile.
+
+</UL></font>
+<p>
+2004-09-14 Steve Turner <norseman@first...>
+<font size=-2><UL>
+ <LI> Changed the I variable to image in coders/mat.c. It appears I is defined
+ in the Slackware header files and it caused a compile error.
+
+</UL></font>
+<p>
+2004-09-13 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Some Postscript files were not translated properly when read.
+ <LI> DestroyImage() was previous void, now it returns (Image *) NULL to force
+ the image to a known value and to detect logic errors in the program
+ (any reference to image after it is destroyed will cause a fault).
+ Other destroy methods will be changed in this manner as well. Note,
+ this change will not affect existing programs that rely on these methods.
+
+</UL></font>
+<p>
+2004-09-13 Bengt-Arne Fjellner <Bengt-Arne.Fjellner@ltu.s...>
+<font size=-2><UL>
+ <LI> Fixed bmp.c so Imagemagick can read RLE4 coded bmp.
+
+</UL></font>
+<p>
+2004-09-11 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Initialize lists before relinquishing the thread lock.
+ <LI> The Grab button of the file browser widget no longer reports an error.
+
+</UL></font>
+<p>
+2004-09-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added new -floodfill option for the convert and mogrify program (e.g.
+ -floodfill +100+100 red).<BR>
+ <LI> The -clip option no longer reports no clipping path when one is present
+ (e.g. convert image.tif -negate -clip image.jpg).
+
+</UL></font>
+<p>
+2004-09-06 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Don't allow a corrupt GIF image to overflow pixel stack.
+ <LI> Increment image reference count when opening a cache view.
+ <LI> The -border 0x0 option no longer produces a black image.
+
+</UL></font>
+<p>
+2004-09-03 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Writing a TIFF image to STDOUT no longer generates a seg fault.
+ <LI> The -colors option no longer causes a seg fault in a grayscale JPEG image.
+
+</UL></font>
+<p>
+2004-09-02 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> The -coalesce option was not honoring dispose-to-previous disposal method.
+
+</UL></font>
+<p>
+2004-09-01 Daniel Kobras <kobras@debia...>
+<font size=-2><UL>
+ <LI> PerlMagick's Profile crashes unless name option is set.
+
+</UL></font>
+<p>
+2004-08-30 Richard Kettlewell <rjk@green...>
+<font size=-2><UL>
+ <LI> Don't sync file when not owned by ImageMagick.
+
+</UL></font>
+<p>
+2004-08-31 Daniel Kobras <kobras@debia...>
+<font size=-2><UL>
+ <LI> #define __attribute__ leaks outside the scope of a single header file,
+ thereby killing any __attribute__ settings in the following code.
+
+</UL></font>
+<p>
+2004-08-30 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The default -module option operates in the HSB colorspace. You can operate
+ in the HSL or HWB colorspace by using the -colorspace option (e.g.
+ -colorspace HSL -modulate 100,130).
+
+</UL></font>
+<p>
+2004-08-30 Sebastien <sc5@herme...><BR>
+<font size=-2><UL>
+ <LI> Images are not created when we receive a SVG error so an attempt to set the
+ image title or comment caused an assertion exception.
+
+</UL></font>
+<p>
+2004-08-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The DrawingWand DrawComposite() takes a wand rather than an image.
+
+</UL></font>
+<p>
+2004-08-28 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Add SetImageProgressMonitor() and SetImageInfoProgressMonitor() to the
+ core API and MagickSetProgressMonitor() to the Wand API. These methods
+ permit you to pass client data which is not permitted with the deprecated
+ SetMagickMonitor() method.
+
+</UL></font>
+<p>
+2004-08-26 Glenn Randers-Pehrson <glennrp@glenn...>
+<font size=-2><UL>
+ <LI> avoid libpng-1.2.6 bug by setting PNG_HAVE_IDAT flag.
+
+</UL></font>
+<p>
+2004-08-26 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The display program properly respects -geometry (suggested by
+ Dean S. Messing).
+
+</UL></font>
+<p>
+2004-08-24 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Do not issue module warning when writing an image in an unknown implicit
+ image format (e.g. convert logo.png logo.thumb).
+
+</UL></font>
+<p>
+2004-08-23 Marcus Meissner <<meissner@suse....>
+<font size=-2><UL>
+ <LI> Prevent buffer overruns when decoding runlength-encoded images in the BMP
+ format.
+
+</UL></font>
+<p>
+2004-08-19 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Using a subimage specification on Postscript/PDF no long renderes a
+ grayscale image (e.g. image.pdf[0]).
+ <LI> Comparing two CMYK images with the compare program now produces a proper
+ difference image.<BR>
+ <LI> Improved a number of algorithms to better support CMYk images (e.g
+ MedianFilterImage()).
+
+</UL></font>
+<p>
+2004-08-16 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Limit endianness to raw image formats and TIFF.
+ <LI> GetImageBoundingBox() now works properly for CMYK images.
+
+</UL></font>
+<p>
+2004-08-14 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> The -draw option now respects the image page geometry.
+ <LI> The A channel for the -fx option was inverted.
+
+</UL></font>
+<p>
+2004-08-14 Ken Cantwell<BR>
+<font size=-2><UL>
+ <LI> Relinquish the wand id linked-list when all wands are destroyed.
+
+</UL></font>
+<p>
+2004-08-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Only scale FITS pixels if they are float/double.
+
+</UL></font>
+<p>
+2004-08-06 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Images with less than 256 unique colors, retain the exact colors.
+ Previously some close colors were merged (e.g. 253 and 255 were averaged
+ to 254).<BR>
+ <LI> Added -repage option, like -page but it acts as an image operator rather
+ than a setting.
+
+</UL></font>
+<p>
+2004-08-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> PNG vulnerability fix.
+ <LI> Added YCbCr coder for raw Y, Cb, and Cr samples.
+ <LI> Fixed the -fx option operator precendence problem (+ and - should be the
+ same precendence).
+
+</UL></font>
+<p>
+2004-07-23 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Rare memory corruption due to a JPEG comment (bug report by
+ brundlefly76@hotma...).
+
+</UL></font>
+<p>
+2004-07-19 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The PerlMagick Evaluate() method no longer fails with an assertion error.
+ <LI> Restore -dSAFER for a more secure Ghostscript invocation. The downside is
+ we must copy the Postscript file to a temporary file otherwise we get a
+ the ocassional invalidfileaccess fom Ghostscript.
+
+</UL></font>
+<p>
+2004-07-18 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Do not report image depth unless the -verbose or -format %z option is used
+ with the identify program.
+
+</UL></font>
+<p>
+2004-07-11 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Center gravity now works when cropping by percent (e.g. -crop 75%).
+ <LI> Small memory leak on exception in the ImageToBlob() method.
+ <LI> %@ returns the image bounding box (e.g. identify -format %@ logo:).
+ <LI> Sync pixel cache when cloning an image-- just in case someone clones
+ an image clone and accesses pixels with AcquireImagePixel() instead of
+ GetImagePixels().
+
+</UL></font>
+<p>
+2004-07-09 Glenn Randers-Pehrson <randeg@alum.rpi.edu>
+<font size=-2><UL>
+ <LI> coders/bmp.c (ReadBMPImage): Removed if-test on reading red_mask,
+ green_mask, and blue_mask. These are only *valid* under certain conditions,
+ but they are always present in the file.
+
+</UL></font>
+<p>
+2004-07-05 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Support CMYK Postscript with the bmpsep8 device.
+ <LI> Add support for channels for the -unsharp options.
+ <LI> Add support for reading PCL with the Alladin pcl6 delegate.
+
+</UL></font>
+<p>
+2004-06-26 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Fixed SVG-path-implementation for elliptical arcs for angle < 45° and the
+ sweep-flag is 1 (bug repored by Juergen).
+ <LI> Fixed PerlMagick memory leak for corrupt TIFF images.
+ <LI> MagickBooleanType changed from unsigned int to an enum for stronger type
+ checking. This should not affect the C API, however, for the C++ API you
+ can no longer use `bool' instead of MagickTrue/MagickFalse for the methods
+ that require a MagickBooleanType.
+
+</UL></font>
+<p>
+2004-06-23 Suryakant Patidar <surya_iiit@lyco...>
+<font size=-2><UL>
+ <LI> Add copious usability features to the animate program.
+
+</UL></font>
+<p>
+2004-06-22 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Add support for compositing pixels in the CMYK colorspace.
+
+</UL></font>
+<p>
+2004-06-20 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Shear no longer produces artifacts for a 0 y-shear (e.g. 60x0).
+
+</UL></font>
+<p>
+2004-06-19 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Convert image resolution relative to the value specified by the -units
+ option.
+
+</UL></font>
+<p>
+2004-06-18 Jan Kratochvil <lace@jankr...>
+<font size=-2><UL>
+ <LI> Perl interface for MagickToMime().
+
+</UL></font>
+<p>
+2004-06-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Gaussian kernel widths must be odd.
+ <LI> Report corrupt PNG image (bug report by Ryuichi Arafune).
+ <LI> Move X11 compatibility defines from xwindow.c to xwindow.h (suggested by
+ Harald Koenig).
+
+</UL></font>
+<p>
+2004-06-12 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Call new AsychronousDestroyResources() method from signal handler.
+
+</UL></font>
+<p>
+2004-06-10 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> The +tile option is recognized once more.
+
+</UL></font>
+<p>
+2004-06-09 Alexandra Christini <alexandra@image...>
+<font size=-2><UL>
+ <LI> ImageMagick 6.0.2 released.
+
+</UL></font>
+<p>
+2004-06-09 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> GetTypeByFamily() did not always return an italic font when requested
+ <LI> ColorFloodfill() sometimes prematurely exited with a large fuzz value.
+
+</UL></font>
+<p>
+2004-06-06 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> The file browser returned incorrect filenames when saving an image with the
+ display program.
+
+</UL></font>
+<p>
+2004-05-31 Chris Madison <madisonblu@hotma...>
+<font size=-2><UL>
+ <LI> Added checkerboard background to display/animate X window to assist in
+ visualizing transparent images.<BR>
+ <LI> The configure script now automatically enables OS features by selectively
+ setting defines such as XOPEN_SOURCE, _POSIX_C_SOURCE, etc.
+ <LI> Added anonymous memory-mapping to the pixel cache. This makes it possible
+ for memory to be returned to the system after the image is destroyed.
+
+</UL></font>
+<p>
+2004-05-31 Good Will <pu@dr...><BR>
+<font size=-2><UL>
+ <LI> Fixed a bug in EnhanceImage() that incorrected shifted edge pixels.
+
+</UL></font>
+<p>
+2004-05-26 Alexandra Christini <alexandra@image...>
+<font size=-2><UL>
+ <LI> Fixed problem with relative filename wildcards (e.g. identify images/*.jpg).
+ <LI> MagickWand tracks the wand construction/destructions and initializes/
+ destroys the ImageMagick core API environment as appropriate.
+
+</UL></font>
+<p>
+2004-05-23 Richardo Fabbri <ricardofabbri@users...>
+<font size=-2><UL>
+ <LI> The active_list variable must be reset when a list is destroyed.
+
+</UL></font>
+<p>
+2004-05-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Introduce MagickBooleanType and MagickStatusType types of unsigned int.
+ These types are 100% compatible with the existing API but removes
+ ambiguity. Previously we got complaints that users did not realize that a
+ return value of unsigned int in most cases meant a binary value (True/
+ False). MagickStatusType is used for methods that return a bit mask.
+ <LI> Introduce MagickFalse and MagickTrue while we deprecate True/False.
+
+</UL></font>
+<p>
+2004-05-18 David Strobach <strobach@exec...>
+<font size=-2><UL>
+ <LI> Don't open a loadable module if its already open.
+
+</UL></font>
+<p>
+2004-05-14 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Most Wand methods return an `unsigned int' where True indicates success and
+ False indicates an error. We enhanced these methods to return
+ MagickBooleanType and MagickTrue/MagickFalse to make it less ambiguous.
+ Note these changes are 100% compatible so existing Wand calls will continue
+ to work as written.
+
+</UL></font>
+<p>
+2004-05-14 Eli Barzilay <li@barzi...>
+<font size=-2><UL>
+ <LI> DrawSetStrokeDashArray() now respects the number_elements argument.
+
+</UL></font>
+<p>
+2004-05-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Since the WMF coder has Wand dependancies we only enable this coder when
+ both WMF is available and module support enabled.
+
+</UL></font>
+<p>
+2004-05-08 Daniel Kobras <kobras@debia...>
+<font size=-2><UL>
+ <LI> When an unknown property is encountered in the XCF coder, it enters a bogus
+ loop that never terminates.
+
+</UL></font>
+<p>
+2004-05-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Various modules in coders/ require external libraries (bug report from
+ kobras).<BR>
+ <LI> PerlMagick's QueryFontMetrics() incorrectly reports `unrecognized
+ attribute'` for the `font' attribute (bug report from Arfune).
+
+</UL></font>
+<p>
+2004-05-05 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> convert fails to make multipage pdf from more than one postscript input
+ files (bug report from Arfune).
+
+</UL></font>
+<p>
+2004-05-04 Alexandra Christini <ally@image...>
+<font size=-2><UL>
+ <LI> ImageMagick 6.0.1 released.
+
+</UL></font>
+<p>
+2004-04-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Some XCF tiles were not being read properly (bug report from Arfune).
+
+</UL></font>
+<p>
+2004-04-26 David Strobach <strobach@exec...>
+<font size=-2><UL>
+ <LI> Fixed memory leak in EPT coder.
+ <LI> Fixed memory leak in DestroyImage().
+ <LI> Close Windows registry when no longer needed.
+
+</UL></font>
+<p>
+2004-04-25 Oliver Hirschi <ohirschi@pm-me...>
+<font size=-2><UL>
+ <LI> RelinquishUniqueFileResource() was not freeing file resource properly.
+
+</UL></font>
+<p>
+2004-04-24 David Strobach <strobach@exec...>
+<font size=-2><UL>
+ <LI> Free the ImageInfo structure allocated by CloneImageInfo() in the
+ WriteImages() method.
+
+</UL></font>
+<p>
+2004-04-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> EPT images cannot support blobs.
+
+</UL></font>
+<p>
+2004-04-20 David Strobach <strobach@exec...>
+<font size=-2><UL>
+ <LI> Fixed temporary file resource limit leak in RelinquishUniqueFileResource().
+
+</UL></font>
+<p>
+2004-04-19 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> ConvolveImageChannel() incorrectly initialized non-selected channels to 0.
+ <LI> Prep shared memory segments to automatically destroy itself in the event
+ of a process kill (see<BR>
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=207379).
+
+</UL></font>
+<p>
+2004-04-19 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> ConvolveImageChannel() incorrectly initialized non-selected channels to 0.
+
+</UL></font>
+<p>
+2004-04-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added Cisco IP phone image format (write only).
+
+</UL></font>
+<p>
+2004-04-15 Alexandra Christini <ally@image...>
+<font size=-2><UL>
+ <LI> ImageMagick 6.0.0 released.
+
+</UL></font>
+<p>
+2004-04-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Updated the dot coder to use the new graphviz 1.12 API.
+ <LI> The next/previous fields of the configuration structures (magick_info,
+ type_info, etc.) are deprecated, instead use the Get???InfoList()
+ method (e.g. GetTypeInfoList()).
+
+</UL></font>
+<p>
+2004-04-07 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> ColorFloodfillImage() with FillToBorder option stopped working in 6.0.0.
+ Fixed now (bug report by Tim Hunter)..
+
+</UL></font>
+<p>
+2004-04-05 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> GetColorInfoList() returns an array of ColorInfo structures. Also added
+ similar methods for each of the ImageMagick lists (e.g. magick, delegate,
+ etc.).
+
+</UL></font>
+<p>
+2003-03-27 Nathan Brown <nathan@sputn...>
+<font size=-2><UL>
+ <LI> Fixed a couple bugs in the AVI coder MJPG support.
+
+</UL></font>
+<p>
+2004-03-25 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -family, -stretch, -style, and -weight to the convert program. These
+ options are used in conjunction with -font to specify font attributes.
+
+</UL></font>
+<p>
+2004-03-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Frame decorations are opaque if the matte color is opaque.
+
+</UL></font>
+<p>
+2004-03-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added CombineImages() to combine several grayscale images into a single
+ image (e.g. convert -channel RGB image.R image.G image.B -combine logo.png).
+
+</UL></font>
+<p>
+2004-03-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added EvaluateImageChannel() method to the API. Use it to apply an
+ arithmetic, relational, or logical operator to an image. These operations
+ can be used to lighten or darken an image, to increase or decrease contrast
+ in an image, or to produce the "negative" of an image.
+
+</UL></font>
+<p>
+2004-03-07 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added a pixel iterator to the MagickWand API (suggested by Kyle Shorter).
+
+</UL></font>
+<p>
+2004-03-05 Teemu Ikonen <tpikonen@pcu.h...>
+<font size=-2><UL>
+ <LI> fixed the Matlab file reader read also files written in little-endian
+ architectures.
+
+</UL></font>
+<p>
+2004-02-10 Alexandra Christini <achristini@bigpl...>
+<font size=-2><UL>
+ <LI> Reset errno in PerlMagick constant() method.
+
+</UL></font>
+<p>
+2004-02-20 <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added `O' for importing/exporting pixels. `O' is the image opacity the
+ eqiuvalent of MaxRGB-`A' (suggested by Dave Welton).
+
+</UL></font>
+<p>
+2004-02-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added the -posterize option to reduce the image to a limited number of color
+ levels.
+
+</UL></font>
+<p>
+2004-02-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added the -splice option to splice the background color into an image
+ (suggested by Anthony Thyssen).
+
+</UL></font>
+<p>
+2004-02-10 Alexandra Christini <achristini@bigpl...>
+<font size=-2><UL>
+ <LI> Add -radial-blur option to the command line utilities.
+
+</UL></font>
+<p>
+2004-02-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Cache views can grow dynamically now (suggested by Andrew Reid).
+
+</UL></font>
+<p>
+2004-02-09 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -clone, -remove, -splice, and -swap as options to the convert program
+ to enhance image list manipulation (suggested by Anthony Thyssen).
+
+</UL></font>
+<p>
+2004-02-05 Anthony Thyssen <anthony@griff...>
+<font size=-2><UL>
+ <LI> Expand the range of -dissolve to go from 0 to 200. That is values 0 to
+ 100 slowly dissolve the overlay onto the background. But then values
+ 100 to 200 slowly dissolve the background away until it is just the source
+ image on top of a clear canvas the size of the original background.
+
+</UL></font>
+<p>
+2004-01-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -separate to the convert program to separate a channel from
+ an image and return a grayscale image (suggested by Anthony Thyssen).
+
+</UL></font>
+<p>
+2004-02-02 Glenn Randers-Pehrson <randeg@alum.rpi.edu>
+<font size=-2><UL>
+ <LI> coders/bmp.c: fix potential use of uninitialized data.
+ <LI> coders/png.c: fix potential use of uninitialized data.
+
+</UL></font>
+<p>
+2004-01-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> New map option, P, for padding pixels when calling the ConstituteImage(),
+ ExportImagePixels(), and ImportImagePixels() methods.
+
+</UL></font>
+<p>
+2004-01-24 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Support raw camera formats for the ImageMagick under Windows.
+
+</UL></font>
+<p>
+2004-01-24 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Privatized the BlobInfo structure and added news methods in blob.c to
+ get/set members of the BlobInfo structure.
+ <LI> Fixed a memory leak in the JNG coder concerning blobs.
+
+</UL></font>
+<p>
+2004-01-23 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Bumped the beta release from 5.5.8 to 6.0.0.
+
+</UL></font>
+<p>
+2004-01-17 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added a resample element to the MSL coder.
+
+</UL></font>
+<p>
+2004-01-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added new -annotate option for the convert and mogrify program (e.g.
+ -annotate +100+100 'Some text', -annotate 30x30+100+100 'Some text').
+ <LI> New TrimImage() C API method.
+
+</UL></font>
+<p>
+2004-01-07 Dan Rogahn <rogahn@...><BR>
+<font size=-2><UL>
+ <LI> update and add new scripting elements to coders/msl.c
+
+</UL></font>
+<p>
+2004-01-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed color shift problem when adjusting brightness.
+ <LI> Rename MagickCloneImage() to MagickGetImage().
+ <LI> Account for pixels-per-centimeter resolution when resampling.
+
+</UL></font>
+<p>
+2004-01-04 Jacob (=Jouk) Jansen <joukj@hrem...>
+<font size=-2><UL>
+ <LI> VMS patches to 5.5.8: coders/avi.c, remove all the <CR> at the
+ end of the lines magick/config.h_vms, add HAVE_FT2BUILD_H directive
+ magick/Make.com, and add compare.c
+
+</UL></font>
+<p>
+2004-01-03 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> In coders/sgi.c, opacity channel was lost when writing grayscale SGI
+ images.
+
+</UL></font>
+<p>
+2003-12-31 Dan Rogahn <rogahn@...><BR>
+<font size=-2><UL>
+ <LI> Default gamma to 1.0 in coders/msl.c.
+
+</UL></font>
+<p>
+2003-12-27 Volker Kuhlmann <list0570@parad...>
+<font size=-2><UL>
+ <LI> Applied latest Suze 9.0 patches.
+
+</UL></font>
+<p>
+2003-12-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed a number of Magick Wand nits as reported by Rolf in the MagickWand
+ discussion group (http://studio.imagemagick.org/magick/viewforum.php?f=6).
+ <LI> Added explicit option grouping to the convert command, for example,
+ convert \( 1.png 2.png -append \) \( 3.png 4.png -append \) +append
+ image.jpg (suggested by Anthony Thyssen).
+ <LI> Option -draw image respects gravity (suggested by Anthony Thyssen).
+ <LI> Text annotate respects gravity (suggested by Anthony Thyssen).
+ <LI> Add latest TIFF library to ImageMagick Windows distribution.
+
+</UL></font>
+<p>
+2003-12-22 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Added JPEG Quality, JPEG Colorspace, and JPEG Sampling factors to
+ the "identify -verbose" report. Added "-define jpeg:preserve-settings"
+ flag. If this is set, and the input and output formats are both JPEG,
+ the input quality is used to compress the output file. Also, if the
+ colorspace was not changed, the same sampling factors are used for
+ compression.
+
+</UL></font>
+<p>
+2003-12-16 Marek Scholaster" <Marek.Scholaster@sezna...>
+<font size=-2><UL>
+ <LI> ResizeImage() parameter "filter" is never used.
+
+</UL></font>
+<p>
+2003-12-16 Ron Stanonik <stanonik@cogsc...>
+<font size=-2><UL>
+ <LI> CloneMagickMemory() did not always copy overlapping memory correct
+ (bug report by Ron Stanonik).
+
+</UL></font>
+<p>
+2003-12-16 Nathan Brown <nathan@sputn...>
+<font size=-2><UL>
+ <LI> Modified the AVI coder to support MJPG compression.
+
+</UL></font>
+<p>
+2003-12-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Previous signal handlers were not being called properly.
+
+</UL></font>
+<p>
+2003-12-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added new image comparsion utility (e.g.
+ compare -metric PSNR image reconstructed difference).
+
+</UL></font>
+<p>
+2003-12-11 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The display program no longer exits after the last image. You must press Q
+ or ESC or choose the Quit menu option to exit (suggested by Anthony
+ Thyssen).<BR>
+ <LI> Off-by-one error for RLA image dimensions (patch provided by Jean-Francois
+ Panisset).
+
+</UL></font>
+<p>
+2003-12-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The gravity is now repected by the -draw option (bug report by
+ Anthony Thyssen).
+
+</UL></font>
+<p>
+2003-12-03 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Reset image->extract_info.{x,y} when parsing the -size option.
+ <LI> New MAGICK_CONFIGURE_PATH environment variable allows the user to specify
+ the search path for configuration (.xml) files
+
+</UL></font>
+<p>
+2003-12-03 Jouk <Joukj@hrem.stm.tudelft.{nl}>
+<font size=-2><UL>
+ <LI> Patch to get ImageMagick working under OpenVMS.
+
+</UL></font>
+<p>
+2003-11-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Recognize `unlimited' for limit option: convert -limit memory unlimited.
+
+</UL></font>
+<p>
+2003-11-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Converted composite operators to inline methods in magick/composite.c.
+ <LI> Accept floating point image sizes (e.g. -geometry 1662.179324x2079.019558).
+ <LI> Added QueryMagickColor() to define CMYK colors. First use is with
+ the XC image format (e.g. -size 100x100 xc:'cmyk(100,100,100,50)');
+
+</UL></font>
+<p>
+2003-11-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Get EXIF data with $im->Get('%[EXIF:*]') in PerlMagick.
+ <LI> Added the -orient option to set the image orientation.
+ <LI> Postscript/PDF once again respects the image gravity attribute.
+
+</UL></font>
+<p>
+2003-11-16 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Noise is scaled to the value of QuantumDepth. Previously noise was less
+ intense for Q16 and Q32.
+
+</UL></font>
+<p>
+2003-11-06 Armani <a.krueger@xebec.{de}>
+<font size=-2><UL>
+ <LI> Memory leak in DrawComposite(), base64 is never freed.
+
+</UL></font>
+<p>
+2003-11-03 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added EPT2 and EPT3 image types which embeds Postscript level II and
+ Postscript level III repectively.<BR>
+ <LI> Text compression is limited to 65535 bytes for the PNG coder (libpng
+ restriction).<BR>
+ <LI> To write an image clip mask, use the CLIP: coder.
+ <LI> Added GetImageExtrema() and GetImageChannelExtrema() to return the extrema
+ for an image or image channel.<BR>
+ <LI> Added GetImageMean() and GetImageChannelMeand() to return the mean and
+ standard deviation for an image or image channel.
+
+</UL></font>
+<p>
+2003-11-01 Lars Ruben Skyum <lars.skyum@stibo.com>
+<font size=-2><UL>
+ <LI> coders/jpeg.c: changed to not write gray CMYK images as grayscales. That
+ would not be a valid optimization.<BR>
+ <LI> magick/color.c (IsGrayImage, IsMonochromeImage): Changed to never return
+ true for CMYK images. Separated images get wrong colors when optimized to
+ grayscales based on what these two functions return. Gray and CMYK are two
+ different color spaces.<BR>
+ <LI> magick/nt_feature.c (NTIsMagickConflict): changed to accept colon as part
+ of the magick string, consistent with the way the function is used.
+ <LI> magick/utility.c, magick/utility.h (ExpandFilenames, GetPathComponent):
+ Fixed filename glob expansion. Added handling of filename prefix-magick and
+ sub-image specification to GetPathComponent. Sub-image specification takes
+ precedence over any filename patterns.
+
+</UL></font>
+<p>
+2003-11-01 Kenneth J. Davis <jeremyd@computer.{org}>
+<font size=-2><UL>
+ <LI> Fixed assertion error in GetConfigureOptions().
+
+</UL></font>
+<p>
+2003-10-29 Tony Butt <magick-bugs><BR>
+<font size=-2><UL>
+ <LI> Fixed off-by-one array error in magick/xwindows.c.
+
+</UL></font>
+<p>
+2003-10-24 Manuel Jouglet <manu.jouglet@wanadoo.{fr}>
+<font size=-2><UL>
+ <LI> Fixed possible infiinite loop in Windows thread locking.
+
+</UL></font>
+<p>
+2003-10-21 Jouk <Joukj@hrem.stm.tudelft.{nl}>
+<font size=-2><UL>
+ <LI> Patch to get ImageMagick working under OpenVMS.
+
+</UL></font>
+<p>
+2003-10-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added new GetPixels() method to PerlMagick.
+
+</UL></font>
+<p>
+2003-10-16 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Began support for CIELab PSD and TIFF images.
+ <LI> New -method-prefix configure option to add a unique prefix for all
+ Magick API methods.
+
+</UL></font>
+<p>
+2003-10-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Thanks to Catalin Mihaila for contributing a ZX-Spectrum SCREEN$ reader.
+
+</UL></font>
+<p>
+2003-10-09 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> When JPEG sampling factors aren't fully supplied, any omitted ones
+ should be 1x1.
+
+</UL></font>
+<p>
+2003-10-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added Get*List() to consistently return ImageMagick lists
+ (e.g. GetMagickList() returns a list of support image formats).
+ <LI> Added -define option to support options associated with an image
+ format (e.g. -define ps3:imagemask).
+
+</UL></font>
+<p>
+2003-10-08 Kelly Bergougnoux <three3@users.sourceforge.{net}>
+<font size=-2><UL>
+ <LI> Contributed new Cineon image format coder.
+
+</UL></font>
+<p>
+2003-10-08 Lars Ruben Skyum <lars.skyum@stibo.com>
+<font size=-2><UL>
+ <LI> magick/attribute.c (TraceSVGClippingPath): optimized for speed and
+ precision in clipping mask generation by using lines to connect Bezier
+ curve control points where applicable.
+
+</UL></font>
+<p>
+2003-09-30 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> The PNG decoder would exit too early when reading file.png[0].
+
+</UL></font>
+<p>
+2003-10-02 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Wrote an option parser to uniformly deal with enumerated types.
+
+</UL></font>
+<p>
+2003-09-30 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> In the Q8 configuration, the bmp decoder was scaling 5-5-5-bit and
+ 5-6-5-bit colors slightly incorrectly when decoding 16-bit BMPs, as
+ well as when decoding 8-8-8-8-bit colors in 32-bit BMPs.
+
+</UL></font>
+<p>
+2003-09-26 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added MagickWand API methods to get, append, and remove images from
+ a wand.
+
+</UL></font>
+<p>
+2003-09-24 Wolfgang Textor <Textor-Duisburg@t-online.de>
+<font size=-2><UL>
+ <LI> Applied changes to get the current ImageMagick 5.5.8 beta sources
+ compile on a Mac with Codewarrior 8.3.
+
+</UL></font>
+<p>
+2003-09-21 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Image profiles are now conveniently handled with a hashmap structure.
+ The color_profile and iptc_profile members of the Image structure
+ are still maintained for backwards compatibility, however, we
+ encourage you to use the new PutImageProfile(), GetImageProfile(),
+ and DeleteImageProfile() methods.
+
+</UL></font>
+<p>
+2003-09-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Error messages are enhanced to give greater detail. Use -debug
+ Exception to trace the source location of an error.
+
+</UL></font>
+<p>
+2003-09-18 Lars Ruben Skyum <lars.skyum@stibo.com>
+<font size=-2><UL>
+ <LI> coders/ps3.c: Major update of the PS3 coder. The coder now
+ creates much smaller files for bilevel, gray, and colormapped
+ images. Compression and image type is now separated so they may
+ be combined independently. Any alpha channel is separated into a
+ separate mask so it's possible to mask bilevel, gray, colormapped,
+ rgb, and CKYK images. You may also mask a JPEG compressed PS file
+ for instance. Clipping masks created from a photoshop clipping path
+ with -clip option is converted to a corresponding postscript clipping
+ path. New functions need comment headers.
+ <LI> magick/attribute.c: Added TracePSClippingPath for creating a
+ postscript clipping path from a Photoshop clipping path.
+ <LI> magick/image.c: ClipPathImage now stores the name of the clipping
+ path in the mask image filename so that it is remembered and may be
+ used for creating a postscript clipping path for postscript output.
+
+</UL></font>
+<p>
+2003-09-16 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> There is a new ImageMagick license (see
+ http://www.imagemagick.org/script/license.php). It is a W3C-style rather
+ than BSD-style license to address the frequently-asked-questions
+ about what the license permits you to do. It makes it more clear
+ that you can do pretty much whatever you want with ImageMagick as long
+ as you don't claim your wrote it.
+
+</UL></font>
+<p>
+2003-09-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Created a number of new header files to localize exported methods.
+ <LI> Updated source files to minimize the number of lint warnings.
+
+</UL></font>
+<p>
+2003-09-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Deprecated Extended*Type. Replace with Magick*Type.
+ <LI> Updating multiple source files to make lint happy.
+
+</UL></font>
+<p>
+2003-09-08 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Revised TraceArc to use TraceEllipse; removed now unused large_arc
+ and sweep flags.
+
+</UL></font>
+<p>
+2003-09-03 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Add module alias for OTF => TTF.
+
+</UL></font>
+<p>
+2003-09-01 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Reworked configuration file logic to load files from the current
+ directory, at MAGICK_HOME, or at ~/.magick before the system versions
+ of the configuration file. This allows a user to define private fonts
+ in ~/.magick/type.xml, for example.
+
+</UL></font>
+<p>
+2003-09-01 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Color was inverted when writing OTB monochrome images.
+ <LI> Add image histogram methods to C, C++, Perlmagick, and MagickWand API.
+
+</UL></font>
+<p>
+2003-08-31 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Palm coder bug fix (patch provided by Chris Hawks).
+
+</UL></font>
+<p>
+2003-08-26 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added a Wand error classfication for the Wand API.
+ <LI> Geometries with a % and a missing value now works correctly (e.g. x25%).
+
+</UL></font>
+<p>
+2003-08-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Truetype fonts are now found under Win98 (patch provided by Patrick
+ Broyer).
+
+</UL></font>
+<p>
+2003-08-11 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added infa-structure to help support image channels.
+
+</UL></font>
+<p>
+2003-08-08 Lars Ruben Skyum <lars.skyum@st...>
+<font size=-2><UL>
+ <LI> isspace() required an unsigned char.
+
+</UL></font>
+<p>
+2003-08-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -tint option (contributed by Winfried Truemper).
+ <LI> The temporary EPT file requires a binary header (patch provided by
+ James Keifenheim).<BR>
+ <LI> Add a Visual C++ workspace for ImageMagickObject (workspace contributed by
+ James Keifenheim).
+
+</UL></font>
+<p>
+2003-08-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added 'Save' option to animate program menu.
+
+</UL></font>
+<p>
+2003-07-30 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -fx option to the convert program.
+
+</UL></font>
+<p>
+2003-07-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Port of Troy Edwards' script to support ImageMagick. Thanks Troy.
+
+</UL></font>
+<p>
+2003-07-26 Lars Ruben Skyum <lars.skyum@st...>
+<font size=-2><UL>
+ <LI> Additional imporvements to ClipPathImage() & TraceClippingPath().
+
+</UL></font>
+<p>
+2003-07-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed "Draw transparent color on background image without alpha" bug
+ (bug report by Anthony Thyssen).<BR>
+ <LI> -fuzz now accept negative values.
+
+</UL></font>
+<p>
+2003-07-17 Lars Ruben Skyum <lars.skyum@st...>
+<font size=-2><UL>
+ <LI> support for grayscale color profiles. You may now convert to/from CMYK
+ or RGB from/to grayscale with a grayscale profile. This is what Photoshop
+ does when it creates grayscales from color images or makes true color
+ images from grayscales.<BR>
+ <LI> any alpha channel is now maintained across colorspace conversions. It
+ was previously lost in the conversions.
+ <LI> colormapped images may now be profiled with a color profile. They were
+ previously passed through unchanged.
+ <LI> improved error handling. Any invalid colorspace / color profile
+ combination is now catched in ImageMagick before LCMS gets a chance to catch
+ the same error. LCMS will exit() the program the hard way if it catches
+ such an error. ImageMagick clean-up routines will now be performed on exit.
+ <LI> support for the two remaining colorspaces, YCbCr and LUV, for which there
+ is support in both ImageMagick and LCMS (or ICC 3.4, really). Profiles
+ using other ICC 3.4 colorspaces not supported by ImageMagick will now
+ properly throw an exception before LCMS exit's the application.
+
+</UL></font>
+<p>
+2003-07-16 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -clippath to convert (patch provided by Lars Ruben Skyum).
+ <LI> Fix transparent font problem (bug report by Anthony Thyssen).
+
+</UL></font>
+<p>
+2003-07-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Read old-style Adobe clipping paths (patch by Lars Ruben Skyum).
+ <LI> Properly read CMYK TIFF images (bug report by Lars Ruben Skyum ).
+
+</UL></font>
+<p>
+2003-07-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Recall the MagickWand API is in flux. The drawing wand methods
+ that previously accepted or returned a PixelPacket now accepts/returns
+ a PixelWand. The MagickWand API should be stable by the end of
+ this year.
+
+</UL></font>
+<p>
+2003-07-05 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Adopted William Radcliffe's semaphore spin lock for Win32 builds.
+
+</UL></font>
+<p>
+2003-07-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Fixed a small bug in the fuzzy color matching algorithm.
+ <LI> Image compare requires a sqrt() (bug report by Anthony Thyssen).
+
+</UL></font>
+<p>
+2003-06-17 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Separated the MagickWand API into its own library, MagickWand.a.
+
+</UL></font>
+<p>
+2003-06-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> New identifier for TXT images so they can be read.
+ <LI> Do not change X window root cursor.
+
+</UL></font>
+<p>
+2003-06-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Promote PseudoClass images to DirectClass in method ImportImagePixels().
+ <LI> New -list configure option.
+
+</UL></font>
+<p>
+2003-06-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -strip option to strip an image of all profiles and comments.
+ <LI> Added -support option to sharpen/blur while resizing an image.
+ <LI> Adopted Bob FriesenHahn's log event patches.
+ <LI> MagickCloneWand() did not properly clone the wand->image member.
+ <LI> Fixed small memory leak in PerlMagick.
+
+</UL></font>
+<p>
+2003-06-04 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Color profile patches provided by (dge at softec.st).
+ <LI> The TXT coder now respects image depth.
+ <LI> Only define X coder/decoder if HasX11 is defined.
+ <LI> Applied William Radcliffe's META coder patches.
+
+</UL></font>
+<p>
+2003-06-02 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Applied William Radcliffe's LCMS color profile patches.
+
+</UL></font>
+<p>
+2003-05-30 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> The MNG encoder failed to set the JNG bit in the simplicity profile.
+ <LI> The MNG encoder failed to write FRAM chunks when all images were JNG.
+ <LI> The JNG encoder wrote the wrong alpha_sample_depth for opaque images.
+
+</UL></font>
+<p>
+2003-05-28 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Large images (greater than 2048*2048) are cached to disk to reduce
+ virtual memory thrashing. Set MAGICK_AREA_LIMIT environment variable
+ to change limit.
+
+</UL></font>
+<p>
+2003-05-23 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> PNG encoder would dump core when writing grayscale image in png24
+ or png32 format.
+
+</UL></font>
+<p>
+2003-05-20 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added support for the Ghostscript pngalpha device to support
+ Postscript transparency.
+
+</UL></font>
+<p>
+2003-05-18 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Deprecated LiberateMemory() and ReacquireMemory() due to ANSI
+ strict-alias rules.<BR>
+ <LI> Updated DllMain for Windows (patch by Achim Domma).
+ <LI> Resizing the image window with display program did not resize the
+ image properly under the Metacity window manager.
+
+</UL></font>
+<p>
+2003-05-17 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added -thumbnail as an option to the utilities.
+ <LI> No TIFF preview was written on EPT write (patch provided by
+ Lars Ruben Skyum).<BR>
+ <LI> NegateImage() now negates the K channel of a CMYK image (patch provided
+ by Lars Ruben Skyum).
+
+</UL></font>
+<p>
+2003-05-13 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Parameter 'elevation' misspelled for PerlMagick Shape() method.
+ <LI> A number of minor leak/unitialized memory problems fixed.
+ <LI> Allocate free nodes from the heap in QuantizeImage().
+ <LI> Magick-config --version returned gibberish.
+ <LI> Adopted Bob Friesenhahn's patterns-- use as filename pattern:checkboard,
+ pattern:bricks, etc.
+
+</UL></font>
+<p>
+2003-05-12 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> ImageMagick 5.5.7 released.
+
+</UL></font>
+<p>
+2003-05-07 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> We cannot reliably auto rotate PDF files so this feature was removed.
+
+</UL></font>
+<p>
+2003-05-02 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The conjure program did not correctly handle the gravity attribute.
+
+</UL></font>
+<p>
+2003-04-26 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The persistent cache reference count was not properly incremented.
+
+</UL></font>
+<p>
+2003-04-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added $image->Describe() method to PerlMagick to interface to the
+ DescribeImage() C API method.<BR>
+ <LI> Added support for the EXIF Tag Parsing Library. Currently we simply
+ display the tags when calling DescribeImage(). In the near future
+ there will be support for modifying or adding tags.
+ <LI> Added Bob Friesenhahn's updated Windows installation instructions.
+ <LI> Interfaced the drawing routines with the new MagickWand API.
+ MagickWand will be the primary public C interface to ImageMagick in
+ the near future.
+
+</UL></font>
+<p>
+2003-04-22 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> magick/effect.c: RandomChannelThresholdImage was not handling
+ PseudoColor, non-gray images correctly.
+
+</UL></font>
+<p>
+2003-04-21 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> png.c would not compile with libpng versions older than libpng-0.95,
+ due to bugs introduced in ImageMagick version 5.5.2.
+
+</UL></font>
+<p>
+2003-04-16 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Implemented -random-threshold and -ordered-dither options.
+
+</UL></font>
+<p>
+2003-04-15 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The locale messaging system now uses a hash for fast lookup.
+ <LI> Updated libtool to the new released version, 1.5.
+
+</UL></font>
+<p>
+2003-04-11 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Fixed bug with decoding grayscale PNG images and JNG alpha channel
+ at Q:32.
+
+</UL></font>
+<p>
+2003-04-10 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Now recognize 32-bit hex color specifications, patches provided by
+ Bob Friesenhahn.
+
+</UL></font>
+<p>
+2003-04-08 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Started API wrappers based on Bob Friesenhahn's method suggestions.
+ <LI> Text annotations that started with '\n' were not rendered correctly.
+
+</UL></font>
+<p>
+2003-04-06 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Removed artifacts from images rotated with a small number of degrees.
+
+</UL></font>
+<p>
+2003-04-04 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Minor bug fix in the ParseGeometry() method.
+
+</UL></font>
+<p>
+2003-04-01 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Modified the non-public inline AlphaComposite() to use a PixelPacket
+ pointer; previously it returned a PixelPacket structure.
+ <LI> You can now specify an image geometry as an image file (e.g. -geometry
+ image.jpg).
+
+</UL></font>
+<p>
+2003-04-01 Glenn Randers-Pehrson <glennrp@image...>
+<font size=-2><UL>
+ <LI> Use new temporary file manager for JNG components.
+
+</UL></font>
+<p>
+2003-04-01 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added support for 12-bit TIFF images.
+
+</UL></font>
+<p>
+2003-03-31 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added improved locale message subsystem (contributed by Kyle Shorter).
+
+</UL></font>
+<p>
+2003-03-27 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Removed a bias from SampleImage() and DrawAffineImage() (bug report
+ by Glenn Randers-Pehrson).
+
+</UL></font>
+<p>
+2003-03-27 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> PerlMagick now recognizes percent values for fuzz or opacity.
+ <LI> Not enough memory allocated for reading PCX (bug report by Trevor
+ Willis).
+
+</UL></font>
+<p>
+2003-03-26 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> There were artifacts when using the Bessel function for resizing
+ (bug report by Bob Friesenhahn).<BR>
+ <LI> Added -resample to convert to change the resolution of an image.
+
+</UL></font>
+<p>
+2003-03-25 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Added a temporary file manager that prevents race conditions and
+ removes any remaining files on exit.
+
+</UL></font>
+<p>
+2003-03-22 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> Prepped ImageMagick to work with Visual C++ 7.0 under Windows.
+ The Windows configure patches came from William Radcliffe.
+
+</UL></font>
+<p>
+2003-03-21 Cristy <yarrow@image...><BR>
+<font size=-2><UL>
+ <LI> The refresh of the display image window no longer lags when the
+ magnify window overlay it.
+</UL></font>
+
+<hr>
+
+<a href="#top"><img src="../images/top.gif" border=0 width="35" height="46" align="right" alt="Top of page"></a>
+<form action="http://studio.imagemagick.org/magick/" style="margin-top:5px">
+ <input type="submit" title="Help!" value="Help!" style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold">
+ <small>"Image manipulation software that works like magick"</small>
+ </form></td>
+ </tr></table>
+
+</BODY>
+</HTML>
diff --git a/www/Magick++/CoderInfo.html b/www/Magick++/CoderInfo.html
new file mode 100644
index 0000000..cf8505d
--- /dev/null
+++ b/www/Magick++/CoderInfo.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick::CoderInfo Class</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;13531808">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;13535284">
+<meta name="DESCRIPTION" content="Class to access raw image pixels.">
+<meta name="KEYWORDS" content="ImageMagick,Pixel,Magick++">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000ff" vlink="#ff0000" bgcolor="#fbc713">
+<h3 align="center">Magick::CoderInfo</h3>
+<p>The <i>CoderInfo</i> class provides the means to provide information regarding ImageMagick support for an image format (designated by a magick string). It may be used to provide support for a specific named format (provided as an argument to the constructor), or as an element of a container when format support is queried using the <a href="STL.html#coderInfoList">coderInfoList()</a> templated function.</p>
+<p>The following code fragment illustrates how CoderInfo may be used.</p>
+<p><tt><font color="#000066">CoderInfo info("GIF");</font></tt><br>
+<tt><font color="#000066">cout << info->name() << ": (" << info->description() << ") : ";</font></tt><br>
+<tt><font color="#000066">cout << "Readable = ";</font></tt><br>
+<tt><font color="#000066">if ( info->isReadable() )</font></tt><br>
+<tt><font color="#000066">cout << "true";</font></tt><br>
+<tt><font color="#000066">else</font></tt><br>
+<tt><font color="#000066">cout << "false";</font></tt><br>
+<tt><font color="#000066">cout << ", ";</font></tt><br>
+<tt><font color="#000066">cout << "Writable = ";</font></tt><br>
+<tt><font color="#000066">if ( info->isWritable() )</font></tt><br>
+<tt><font color="#000066">cout << "true";</font></tt><br>
+<tt><font color="#000066">else</font></tt><br>
+<tt><font color="#000066">cout << "false";</font></tt><br>
+<tt><font color="#000066">cout << ", ";</font></tt><br>
+<tt><font color="#000066">cout << "Multiframe = ";</font></tt><br>
+<tt><font color="#000066">if ( info->isMultiframe() )</font></tt><br>
+<tt><font color="#000066">cout << "true";</font></tt><br>
+<tt><font color="#000066">else</font></tt><br>
+<tt><font color="#000066">cout << "false";</font></tt><br>
+<tt><font color="#000066">cout << endl;</font></tt></p>
+<p style="margin-bottom: 0cm">The methods available in the <i>CoderInfo</i> class are shown in the following table:</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>CoderInfo Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Method</b></p></td>
+<td>
+<p align="center"><b>Returns</b></p></td>
+<td>
+<p align="center"><b>Signature</b></p></td>
+<td>
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="CoderInfo"></a><font size="2">CoderInfo</font></p></td>
+<td bgcolor="#999999"></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Construct object corresponding to named format (e.g. "GIF"). An exception is thrown if the format is not supported.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="name"></a><font size="2">name</font></p></td>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Format name (e.g. "GIF").</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="description"></a><font size="2">description</font></p></td>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Format description (e.g. "CompuServe graphics interchange format").</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="isReadable"></a><font size="2">isReadable</font></p></td>
+<td>
+<p><font size="2">bool</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Format is readable.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="isWritable"></a><font size="2">isWritable</font></p></td>
+<td>
+<p><font size="2">bool</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Format is writeable.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="isMultiFrame"></a><font size="2">isMultiFrame</font></p></td>
+<td>
+<p><font size="2">bool</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Format supports multiple frames.</font></p></td></tr></table>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/Color.html b/www/Magick++/Color.html
new file mode 100644
index 0000000..48bc061
--- /dev/null
+++ b/www/Magick++/Color.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick::Color Class</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;13543972">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;14583794">
+<meta name="DESCRIPTION" content="Magick::Color class documentation">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1 align="center">Magick::Color</h1>
+<p><a href="#Color">Color</a> is the base color class in Magick++. It is a simple container class for the pixel red, green, blue, and alpha values scaled to fit ImageMagick's Quantum size. Normally users will instantiate a class derived from Color which supports the color model that fits the needs of the application. The Color class may be constructed directly from an X11-style color string.</p>
+<p style="margin-bottom: 0cm">Available derived color specification classes are shown in the following table:</p>
+<p align="center" style="margin-bottom: 0cm"><b>Color Derived Classes</b></p>
+<center>
+<table width="90%" border="1" cellpadding="2" cellspacing="3">
+<col width="29*">
+<col width="227*">
+<tr>
+<td width="12%">
+<p><a href="#ColorRGB">ColorRGB</a></p></td>
+<td width="88%">
+<p>Representation of RGB color with red, green, and blue specified as ratios (0 to 1)</p></td></tr>
+<tr>
+<td width="12%">
+<p><a href="#ColorGray">ColorGray</a></p></td>
+<td width="88%">
+<p>Representation of <span lang="en-US">grayscale</span> RGB color (equal parts red, green, and blue) specified as a ratio (0 to 1)</p></td></tr>
+<tr>
+<td width="12%">
+<p><a href="#ColorMono">ColorMono</a></p></td>
+<td width="88%">
+<p>Representation of a black/white color (true/false)</p></td></tr>
+<tr>
+<td width="12%">
+<p><a href="#ColorYUV">ColorYUV</a></p></td>
+<td width="88%">
+<p>Representation of a color in the YUV <span lang="en-US">colorspace</span></p></td></tr></table></center>
+<p style="margin-bottom: 0cm">ImageMagick may be compiled to support 32 or 64 bit pixels of type <span lang="en-US">PixelPacket.</span> This is controlled by the value of the QuantumDepth define. The default is 64 bit pixels, which provides the best accuracy. If memory consumption and/or processing time must be minimized, then ImageMagick may be compiled with QuantumDepth=8. The following table shows the relationship between <i>QuantumDepth</i>, the type of <i>Quantum</i>, and the overall <i>PixelPacket</i> size.</p>
+<p align="center" style="margin-bottom: 0cm"><b>Effect Of QuantumDepth Values</b></p>
+<center>
+<table width="361" border="1" cellpadding="2" cellspacing="3">
+<col width="102">
+<col width="121">
+<col width="111">
+<tr>
+<td width="102">
+<p align="center"><b>QuantumDepth</b></p></td>
+<td width="121">
+<p align="center"><b>Quantum Typedef</b></p></td>
+<td width="111">
+<p align="center"><b>PixelPacket Size</b></p></td></tr>
+<tr>
+<td width="102">
+<p align="center">8</p></td>
+<td width="121">
+<p align="center">unsigned char</p></td>
+<td width="111">
+<p align="center">32 bits</p></td></tr>
+<tr>
+<td width="102">
+<p align="center">16</p></td>
+<td width="121">
+<p align="center">unsigned short</p></td>
+<td width="111">
+<p align="center">64 bits</p></td></tr></table></center>
+<h3><a name="Color"></a>Color Class</h3>
+<p>The Color base class is not intended to be used directly. Normally a user will construct a derived class or inherit from this class. Color arguments are must be scaled to fit the Quantum size. The Color class contains a pointer to a PixelPacket, which may be allocated by the Color class, or may refer to an existing pixel in an image.</p>
+<p>An alternate way to <span lang="en-US">construct</span> the class is via an X11-<span lang="en-US">compatible</span> color specification string.</p>
+<p><tt><font size="2"><font color="#000066">class Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( Quantum red_,</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum green_,</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum blue_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( Quantum red_,</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum green_,</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum blue_,</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum alpha_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( const std::string &x11color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( const char * x11color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">virtual ~Color ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( const Color & color_ );</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Red color (range 0 to QuantumRange)</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void redQuantum ( Quantum red_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum redQuantum ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Green color (range 0 to QuantumRange)</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void greenQuantum ( Quantum green_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum greenQuantum ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Blue color (range 0 to QuantumRange)</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void blueQuantum ( Quantum blue_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum blueQuantum ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Alpha level (range OpaqueOpacity=0 to TransparentOpacity=QuantumRange)</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void alphaQuantum ( Quantum alpha_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Quantum alphaQuantum ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Scaled (to 1.0) version of alpha for use in sub-classes</font></font></tt><br>
+<tt><font size="2"><font color="#000066">// (range opaque=0 to transparent=1.0)</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void alpha ( double alpha_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double alpha ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">// Does object contain valid color?</font></font></tt><br>
+<tt><font size="2"><font color="#000066">void isValid ( bool valid_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">bool isValid ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">// Set color via X11 color specification string</font></font></tt><br>
+<tt><font size="2"><font color="#000066">const Color& operator= ( const std::string &x11color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">const Color& operator= ( const char * x11color_ );</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color& operator= ( const Color& color_ );</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">// Return X11 color specification string</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ operator std::string() const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Return ImageMagick PixelPacket</font></font></tt><br>
+<tt><font size="2"><font color="#000066">operator PixelPacket() const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Construct color via ImageMagick PixelPacket</font></font></tt><br>
+<tt><font size="2"><font color="#000066">Color ( const PixelPacket &color_ );</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Set color via ImageMagick PixelPacket</font></font></tt><br>
+<tt><font size="2"><font color="#000066">const Color& operator= ( PixelPacket &color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<h3><a name="ColorRGB"></a>ColorRGB</h3>
+<p>Representation of an RGB color. All color arguments have a valid range of 0.0 - 1.0.</p>
+<p><tt><font size="2"><font color="#000066">class ColorRGB : public Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorRGB ( double red_, double green_, double blue_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorRGB ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorRGB ( const Color & color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ ~ColorRGB ( void );</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void red ( double red_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double red ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void green ( double green_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double green ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void blue ( double blue_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double blue ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator from base class</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorRGB& operator= ( const Color& color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<h3><a name="ColorGray"></a>ColorGray</h3>
+<p>Representation of a grayscale color (in RGB colorspace). <span lang="en-US">Grayscale</span> is simply RGB with equal parts of red, green, and blue. All double arguments have a valid range of 0.0 - 1.0.</p>
+<p><tt><font size="2"><font color="#000066">class ColorGray : public Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorGray ( double shade_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorGray ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorGray ( const Color & color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ ~ColorGray ();</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">void shade ( double shade_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double shade ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator from base class</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorGray& operator= ( const Color& color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<h3><a name="ColorMono"></a>ColorMono</h3>
+<p>Representation of a black/white pixel (in RGB colorspace). Color arguments are constrained to 'false' (black pixel) and 'true' (white pixel).</p>
+<p><tt><font size="2"><font color="#000066">class ColorMono : public Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorMono ( bool mono_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorMono ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorMono ( const Color & color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ ~ColorMono ();</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void mono ( bool mono_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">bool mono ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator from base class</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorMono& operator= ( const Color& color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<h3><a name="ColorHSL"></a>ColorHSL</h3>
+<p>Representation of a color in Hue/Saturation/Luminosity (HSL) colorspace.</p>
+<p><tt><font size="2"><font color="#000066">class ColorHSL : public Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorHSL ( double hue_, double saturation_, double luminosity_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorHSL ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorHSL ( const Color & color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ ~ColorHSL ( );</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void hue ( double hue_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double hue ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void saturation ( double saturation_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double saturation ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void luminosity ( double luminosity_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double luminosity ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator from base class</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorHSL& operator= ( const Color& color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<h3><a name="ColorYUV"></a>ColorYUV</h3>
+<p>Representation of a color in YUV colorspace (used to encode color for television transmission).</p>
+<p>Argument ranges:<br>
+ Y: 0.0 through 1.0<br>
+ U: -0.5 through 0.5<br>
+ V: -0.5 through 0.5</p>
+<p><tt><font size="2"><font color="#000066">class ColorYUV : public Color</font></font></tt><br>
+<tt><font size="2"><font color="#000066">{</font></font></tt><br>
+<tt><font size="2"><font color="#000066">public:</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorYUV ( double y_, double u_, double v_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorYUV ( void );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorYUV ( const Color & color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">/* virtual */ ~ColorYUV ( void );</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void u ( double u_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double u ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void v ( double v_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double v ( void ) const;</font></font></tt><br>
+<br>
+<tt><font size="2"><font color="#000066">void y ( double y_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">double y ( void ) const;</font></font></tt></p>
+<p><tt><font size="2"><font color="#000066">// Assignment operator from base class</font></font></tt><br>
+<tt><font size="2"><font color="#000066">ColorYUV& operator= ( const Color& color_ );</font></font></tt><br>
+<tt><font size="2"><font color="#000066">};</font></font></tt></p>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/Documentation.html b/www/Magick++/Documentation.html
new file mode 100644
index 0000000..4ab656f
--- /dev/null
+++ b/www/Magick++/Documentation.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick++ Documentation</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;14591273">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;15041750">
+<meta name="DESCRIPTION" content="C++ API for ImageMagick">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<p align="center"><img src="Magick++.png" name="Graphic1" align="bottom" width="464" height="134" border="0"></p>
+<p><a href="http://www.imagemagick.org/www/Magick++">Magick++</a> provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.</p>
+<p>Magick++ is intended to support commercial-grade application development. In order to avoid possible conflicts with the user's application, all symbols contained in Magick++ (included by the header <tt><font color="#663366"><Magick++.h></font></tt>) are scoped to the <span lang="en-US">namespace</span> <i>Magick</i>. Symbols from the ImageMagick C library are imported under the <i>MagickLib</i> namespace to avoid possible conflicts and ImageMagick macros are only included within the Magick++ implementation so they won't impact the user's application.</p>
+<p>The core class in Magick++ is the <a href="Image.html">Image</a> class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)<span lang="en-US">compatible</span> <a href="STL.html">algorithms and function objects</a> are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).</p>
+<p>The Image class supports reference-counted memory management which supports the semantics of an intrinsic variable type (e.g. 'int') with an extremely efficient <tt>operator =</tt> and copy constructor (only a pointer is assigned) while ensuring that the image data is replicated as required so that it the image may be modified without impacting earlier generations. Since the Image class manages heap memory internally, images are best allocated via C++ automatic (stack-based) memory allocation. This support allows most programs using Magick++ to be written without using any pointers, simplifying the implementation and avoiding the risks of using pointers. When a program uses automatic memory allocation to allocate Magick++ images, that aspect of the program becomes naturally exception-safe and thread-safe.</p>
+<p>The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the <a href="Color.html">Color</a> class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the <a href="Geometry.html">Geometry</a> class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the <a href="Drawable.html">Drawable</a> class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the <a href="Montage.html">Montage</a> class.</p>
+<p>Errors are reported using C++ exceptions derived from the <a href="Exception.html">Exception</a> class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching <i>try</i> block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automatically cleaned up, avoiding the potential for memory leaks.</p>
+<p style="margin-bottom: 0cm">For ease of access, the documentation for the available user-level classes is available via the following table.</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Magick++ User-Level Classes</b></p>
+<center>
+<table width="90%" border="1" cellpadding="2" cellspacing="3">
+<col width="35*">
+<col width="221*">
+<tr>
+<td width="14%">
+<p><a href="Blob.html">Blob</a></p></td>
+<td width="86%">
+<p>Binary Large OBject container.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="CoderInfo.html">CoderInfo</a></p></td>
+<td width="86%">
+<p>Report information about supported image formats (use with <a href="STL.html#coderInfoList">coderInfoList</a>())</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Color.html">Color</a></p></td>
+<td width="86%">
+<p>Color specification.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Drawable.html">Drawable</a></p></td>
+<td width="86%">
+<p>Drawable shape (for input to 'draw').</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Exception.html">Exception</a></p></td>
+<td width="86%">
+<p>C++ exception objects.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Geometry.html">Geometry</a></p></td>
+<td width="86%">
+<p>Geometry specification.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Image.html">Image</a></p></td>
+<td width="86%">
+<p>Image frame. This is the primary object in Magick++.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Montage.html">Montage</a></p></td>
+<td width="86%">
+<p>Montage options for montageImages().</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="Pixels.html">Pixels</a></p></td>
+<td width="86%">
+<p>Low-level access to image pixels.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="STL.html">STL</a></p></td>
+<td width="86%">
+<p>STL algorithms and function objects for operating on containers of image frames.</p></td></tr>
+<tr>
+<td width="14%">
+<p><a href="TypeMetric.html">TypeMetric</a></p></td>
+<td width="86%">
+<p>Container for font type metrics (use with <a href="Image.html#fontTypeMetrics">Image::fontTypeMetrics</a>).</p></td></tr></table></center>
+<blockquote style="margin-left: 0cm"></blockquote>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/Drawable.html b/www/Magick++/Drawable.html
new file mode 100644
index 0000000..1fccbfe
--- /dev/null
+++ b/www/Magick++/Drawable.html
@@ -0,0 +1,768 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick::Drawable Class</title>
+<meta name="GENERATOR" content="StarOffice 6.0 (Solaris Sparc)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;15043598">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20021124;11445600">
+<meta name="DESCRIPTION" content="Documentation for Magick::Drawable class">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1 align="center">Magick::Drawable</h1>
+<p>Drawable provides a convenient interface for preparing vector, image, or text arguments for the Image::draw() method. Each instance of a Drawable sub-class represents a single drawable object. Drawable objects may be drawn "one-by-one" via multiple invocations of the Image <a href="Image.html#draw">draw</a>() method, or may be drawn "all-at-once" by passing a list of Drawable objects to the Image <a href="Image.html#draw">draw</a>() method. The one-by-one approach is convenient for simple drawings, while the list-based approach is appropriate for drawings which require more sophistication.</p>
+<p>The following is an example using the Drawable subclasses with a one-by-one approach to draw the following figure:</p>
+<p><font color="#ffffff"><font color="#ffffff"><img src="Drawable_example_1.png" name="Graphic1" align="bottom" width="300" height="200" border="3"></font></font></p>
+<p><tt><font color="#000066">#include <string></font></tt><br>
+<tt><font color="#000066">#include <iostream></font></tt><br>
+<tt><font color="#000066">#include <Magick++.h></font></tt></p>
+<p><tt><font color="#000066">using namespace std;</font></tt><br>
+<tt><font color="#000066">using namespace Magick;</font></tt></p>
+<p><tt><font color="#000066">int main(int /*argc*/,char **/*argv*/)</font></tt><br>
+<tt><font color="#000066">{</font></tt><br>
+<tt><font color="#000066">try {</font></tt><br>
+<tt><font color="#000066">// Create base image (white image of 300 by 200 pixels)</font></tt><br>
+<tt><font color="#000066">Image image( Geometry(300,200), Color("white") );</font></tt></p>
+<p><tt><font color="#000066">// Set draw options</font></tt><br>
+<tt><font color="#000066">image.strokeColor("red"); // Outline color</font></tt><br>
+<tt><font color="#000066">image.fillColor("green"); // Fill color</font></tt><br>
+<tt><font color="#000066">image.strokeWidth(5);</font></tt></p>
+<p><tt><font color="#000066">// Draw a circle</font></tt><br>
+<tt><font color="#000066">image.draw( DrawableCircle(100,100, 50,100) );</font></tt></p>
+<p><tt><font color="#000066">// Draw a rectangle</font></tt><br>
+<tt><font color="#000066">image.draw( DrawableRectangle(200,200, 270,170) );</font></tt></p>
+<p><tt><font color="#000066">// Display the result</font></tt><br>
+<tt><font color="#000066">image.display( );</font></tt><br>
+<tt><font color="#000066">}</font></tt><br>
+<tt><font color="#000066">catch( exception &error_ )</font></tt><br>
+<tt><font color="#000066">{</font></tt><br>
+<tt><font color="#000066">cout << "Caught exception: " << error_.what() << endl;</font></tt><br>
+<tt><font color="#000066">return 1;</font></tt><br>
+<tt><font color="#000066">}</font></tt></p>
+<p><tt><font color="#000066">return 0;</font></tt><br>
+<tt><font color="#000066">}</font></tt></p>
+<p><font color="#ffffff">Since Drawable is an object it may be saved in an array or a list for later (perhaps repeated) use. The following example shows how to draw the same figure using the</font> list-based approach</p>
+<p><tt><font color="#000066">#include <string></font></tt><br>
+<tt><font color="#000066">#include <iostream></font></tt><br>
+<tt><font color="#000066">#include <list></font></tt><br>
+<tt><font color="#000066">#include <Magick++.h></font></tt></p>
+<p><tt><font color="#000066">using namespace std;</font></tt><br>
+<tt><font color="#000066">using namespace Magick;</font></tt></p>
+<p><tt><font color="#000066">int main(int /*argc*/,char **/*argv*/)</font></tt><br>
+<tt><font color="#000066">{</font></tt><br>
+<tt><font color="#000066">try {</font></tt><br>
+<tt><font color="#000066">// Create base image (white image of 300 by 200 pixels)</font></tt><br>
+<tt><font color="#000066">Image image( Geometry(300,200), Color("white") );</font></tt></p>
+<p><tt><font color="#000066">// Construct drawing list</font></tt><br>
+<tt><font color="#000066">std::list<Magick::Drawable> drawList;</font></tt></p>
+<p><tt><font color="#000066">// Add some drawing options to drawing list</font></tt><br>
+<tt><font color="#000066">drawList.push_back(DrawableStrokeColor("red")); // Outline color</font></tt><br>
+<tt><font color="#000066">drawList.push_back(DrawableStrokeWidth(5)); // Stroke width</font></tt><br>
+<tt><font color="#000066">drawList.push_back(DrawableFillColor("green")); // Fill color</font></tt></p>
+<p><tt><font color="#000066">// Add a Circle to drawing list</font></tt><br>
+<tt><font color="#000066">drawList.push_back(DrawableCircle(100,100, 50,100));</font></tt></p>
+<p><tt><font color="#000066">// Add a Rectangle to drawing list</font></tt><br>
+<tt><font color="#000066">drawList.push_back(DrawableRectangle(200,100, 270,170));</font></tt></p>
+<p><tt><font color="#000066">// Draw everything using completed drawing list</font></tt><br>
+<tt><font color="#000066">image.draw(drawList);</font></tt></p>
+<p><tt><font color="#000066">// Display the result</font></tt><br>
+<tt><font color="#000066">image.display( );</font></tt><br>
+<tt><font color="#000066">}</font></tt><br>
+<tt><font color="#000066">catch( exception &error_ )</font></tt><br>
+<tt><font color="#000066">{</font></tt><br>
+<tt><font color="#000066">cout << "Caught exception: " << error_.what() << endl;</font></tt><br>
+<tt><font color="#000066">return 1;</font></tt><br>
+<tt><font color="#000066">}</font></tt></p>
+<p><tt><font color="#000066">return 0;</font></tt><br>
+<tt><font color="#000066">}</font></tt></p>
+<p style="margin-bottom: 0in"><font color="#ffffff">Drawable depends on the simple Coordinate structure which represents a pair of x,y coodinates. The methods provided by the Coordinate structure are shown in the following table:</font></p>
+<p align="center" style="margin-bottom: 0in"><b>Coordinate Structure Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<th>
+<p class="western">Method/Member</p></th>
+<th>
+<p class="western">Signature</p></th>
+<th>
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2">
+<p class="western" align="center">Coordinate</p></td>
+<td>
+<p class="western">void</p></td>
+<td>
+<p class="western">Default Constructor</p></td></tr>
+<tr>
+<td>
+<p class="western">double x_, double y_</p></td>
+<td>
+<p class="western">Constructor, setting <i>first</i> & <i>second</i></p></td></tr>
+<tr>
+<td>
+<p class="western" align="center">x</p></td>
+<td>
+<p class="western">double x_</p></td>
+<td>
+<p class="western">x coordinate member</p></td></tr>
+<tr>
+<td>
+<p class="western" align="center">y</p></td>
+<td>
+<p class="western">double y_</p></td>
+<td>
+<p class="western">y coordinate member</p></td></tr></table>
+<p style="margin-bottom: 0in"><font color="#ffffff">The Drawable classes are shown in the following table. Only constructor signatures are documented here. Each Drawable class also provides methods by which each individual parameter may be adjusted.</font></p>
+<p align="center" style="margin-bottom: 0in"><b>Drawable Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="68*">
+<col width="55*">
+<col width="133*">
+<tr>
+<th width="27%">
+<p class="western">Sub-Class</p></th>
+<th width="21%">
+<p class="western">Constructor Signature</p></th>
+<th width="52%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2" width="27%">
+<p class="western" align="center">DrawableAffine</p></td>
+<td width="21%">
+<p class="western">double sx_, double sy_, double rx_, double ry_, double tx_, double ty_</p></td>
+<td width="52%">
+<p class="western">Specify a transformation matrix to adjust scaling, rotation, and translation (coordinate transformation) for subsequently drawn objects in the same or decendent drawing context. The sx_ & sy_ parameters represent the x & y scale factors, the rx_ & ry_ parameters represent the x & y rotation, and the tx_ & ty_ parameters represent the x & y translation.</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western">void</p></td>
+<td width="52%">
+<p class="western">Specify a transformation matrix to adjust scaling, rotation, and translation (coordinate transformation) for subsequently drawn objects in the same or decendent drawing context. Initialized to unity (no effect) affine values. Use class methods (not currently documented) to adjust individual parameters from their unity values.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableAngle</p></td>
+<td width="21%">
+<p class="western">double angle_</p></td>
+<td width="52%">
+<p class="western">Set drawing angle</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableArc</p></td>
+<td width="21%">
+<p class="western">double startX_, double startY_, double endX_, double endY_, double startDegrees, double endDegrees_</p></td>
+<td width="52%">
+<p class="western">Draw an arc using the <i>stroke</i> color and based on the circle starting at coordinates <i>startX_</i>,<i>startY_,</i> and ending with coordinates <i>endX_,</i>endY_, and bounded by the rotational arc <i>startDegrees_,endDegrees_</i></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableBezier</p></td>
+<td width="21%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td>
+<td width="52%">
+<p class="western">Draw a bezier curve using the <i>stroke</i> color and based on the coordinates specified by the <i>coordinates_</i> list.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableClipPath</p></td>
+<td width="21%">
+<p class="western">const std::string &id_</p></td>
+<td width="52%">
+<p class="western">Select a drawing clip path matching <em>id_.</em></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableCircle</p></td>
+<td width="21%">
+<p class="western">double originX_, double originY_, double perimX_, double perimY_</p></td>
+<td width="52%">
+<p class="western">Draw a circle using the <i>stroke</i> color and thickness using specified origin and perimeter coordinates. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableColor</p></td>
+<td width="21%">
+<p class="western"><font size="2">double x_, double y_, <a href="Enumerations.html#PaintMethod">PaintMethod</a> paintMethod_</font></p></td>
+<td width="52%">
+<p class="western">Color image according to paintMethod. The point method recolors the target pixel. The replace method recolors any pixel that matches the color of the target pixel. Floodfill recolors any pixel that matches the color of the target pixel and is a neighbor, whereas filltoborder recolors any neighbor pixel that is not the border color. Finally, reset recolors all pixels.</p></td></tr>
+<tr>
+<td rowspan="6" width="27%">
+<p class="western" align="center">DrawableCompositeImage</p></td>
+<td width="21%">
+<p class="western">double x_, double y_, const std::string &filename_</p></td>
+<td rowspan="2" width="52%">
+<p class="western">Composite current image with contents of specified image, at specified coordinates. If the <i>matte</i> attribute is set to <i>true</i>, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through.</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western">double x_, double y_, const Image &image_</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western">double x_, double y_, double width_, double height_, const std::string &filename_</p></td>
+<td rowspan="2" width="52%">
+<p class="western">Composite current image with contents of specified image, rendered with specified width and height, at specified coordinates. If the <i>matte</i> attribute is set to <i>true</i>, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through. If the specified <i>width</i> or <i>height</i> is zero, then the image is composited at its natural size, without enlargement or reduction.</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western">double x_, double y_, double width_, double height_, const Image &image_</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western"><font size="2">double x_, double y_, double width_, double height_, const std::string &filename_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a> composition_</font></p></td>
+<td rowspan="2" width="52%">
+<p class="western">Composite current image with contents of specified image, rendered with specified width and height, using specified composition algorithm, at specified coordinates. If the <i>matte</i> attribute is set to <i>true</i>, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through. If the specified <i>width</i> or <i>height</i> is zero, then the image is composited at its natural size, without enlargement or reduction.</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western"><font size="2">double x_, double y_, double width_, double height_, const Image &image_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a> composition_</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableDashArray</p></td>
+<td width="21%">
+<p class="western">const double* dasharray_</p></td>
+<td width="52%">
+<p class="western">Specify the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents a zero-terminated array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. A typical strokeDashArray_ array might contain the members 5 3 2 0, where the zero value indicates the end of the pattern array.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableDashOffset</p></td>
+<td width="21%">
+<p class="western">double offset_</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Specify the distance into the dash pattern to start the dash. See documentation on SVG's</font> <a href="http://www.w3.org/TR/SVG/painting.html#StrokeDashoffsetProperty"><font size="2" style="font-size: 11pt">stroke-dashoffset</font></a> <font size="2" style="font-size: 11pt">property for usage details.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableEllipse</p></td>
+<td width="21%">
+<p class="western">double originX_, double originY_, double radiusX_, double radiusY_, double arcStart_, double arcEnd_</p></td>
+<td width="52%">
+<p class="western">Draw an ellipse using the <i>stroke</i> color and thickness, specified origin, x & y radius, as well as specified start and end of arc in degrees. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableFillColor</p></td>
+<td width="21%">
+<p class="western"><font size="2">const <a href="Color.html">Color</a> &color_</font></p></td>
+<td width="52%">
+<p class="western">Specify drawing object fill color.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableFillRule</p></td>
+<td width="21%">
+<p class="western"><font size="2"><a href="Enumerations.html#FillRule">FillRule</a> fillRule_</font></p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Specify the algorithm which is to be used to determine what parts of the canvas are included inside the shape. See documentation on SVG's</font> <a href="http://www.w3.org/TR/SVG/painting.html#FillRuleProperty"><font size="2" style="font-size: 11pt">fill-rule</font></a> <font size="2" style="font-size: 11pt">property for usage details.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableFillOpacity</p></td>
+<td width="21%">
+<p class="western">double opacity_</p></td>
+<td width="52%">
+<p class="western">Specify opacity to use when drawing using fill color.</p></td></tr>
+<tr>
+<td rowspan="2" width="27%">
+<p class="western" align="center">DrawableFont</p></td>
+<td width="21%">
+<p class="western">const std::string &font_</p></td>
+<td width="52%">
+<p class="western">Specify font name to use when drawing text.</p></td></tr>
+<tr>
+<td width="21%">
+<p class="western"><font size="2">const std::string &family_,</font><br>
+<font size="2"><a href="Enumerations.html#StyleType">StyleType</a> style_,</font><br>
+<font size="2">unsigned long weight_,</font><br>
+<font size="2"><a href="Enumerations.html#StretchType">StretchType</a> stretch_</font></p></td>
+<td width="52%">
+<p class="western">Specify font family, style, weight (one of the set { 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 } with 400 being the normal size), and stretch to be used to select the font used when drawing text. Wildcard matches may be applied to style via the AnyStyle enumeration, applied to weight if weight is zero, and applied to stretch via the AnyStretch enumeration.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableGravity</p></td>
+<td width="21%">
+<p class="western"><font size="2"><a href="Enumerations.html#GravityType">GravityType</a> gravity_</font></p></td>
+<td width="52%">
+<p class="western">Specify text positioning gravity.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableLine</p></td>
+<td width="21%">
+<p class="western">double startX_, double startY_, double endX_, double endY_</p></td>
+<td width="52%">
+<p class="western">Draw a line using <i>stroke</i> color and thickness using starting and ending coordinates</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableMatte</p></td>
+<td width="21%">
+<p class="western"><font size="2">double x_, double y_, <a href="Enumerations.html#PaintMethod">PaintMethod</a> paintMethod_</font></p></td>
+<td width="52%">
+<p class="western">Change the pixel matte value to transparent. The point method changes the matte value of the target pixel. The replace method changes the matte value of any pixel that matches the color of the target pixel. Floodfill changes the matte value of any pixel that matches the color of the target pixel and is a neighbor, whereas filltoborder changes the matte value of any neighbor pixel that is not the border color, Finally reset changes the matte value of all pixels.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableMiterLimit</p></td>
+<td width="21%">
+<p class="western">unsigned int miterLimit_</p></td>
+<td width="52%">
+<p class="western">Specify miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'. The default value of this parameter is 4.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePath</p></td>
+<td width="21%">
+<p class="western">const std::list<Magick::VPath> &path_</p></td>
+<td width="52%">
+<p class="western">Draw on image using vector path.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePoint</p></td>
+<td width="21%">
+<p class="western">double x_, double y_</p></td>
+<td width="52%">
+<p class="western">Draw a point using <i>stroke</i> color and thickness at coordinate</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePointSize</p></td>
+<td width="21%">
+<p class="western">double pointSize_</p></td>
+<td width="52%">
+<p class="western">Set font point size.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePolygon</p></td>
+<td width="21%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td>
+<td width="52%">
+<p class="western">Draw an arbitrary polygon using <i>stroke</i> color and thickness consisting of three or more coordinates contained in an STL list. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePolyline</p></td>
+<td width="21%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td>
+<td width="52%">
+<p class="western">Draw an arbitrary polyline using <i>stroke</i> color and thickness consisting of three or more coordinates contained in an STL list. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePopClipPath</p></td>
+<td width="21%">
+<p class="western">void</p></td>
+<td width="52%">
+<p class="western">Pop (terminate) clip path definition started by DrawablePushClipPath.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePopGraphicContext</p></td>
+<td width="21%">
+<p class="western">void</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Pop Graphic Context. Removing the current graphic context from the graphic context stack restores the options to the values they had prior to the preceding</font> <a href="#DrawablePushGraphicContext"><i><font size="2" style="font-size: 11pt">DrawablePushGraphicContext</font></i></a> <font size="2" style="font-size: 11pt">operation.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePushClipPath</p></td>
+<td width="21%">
+<p class="western">const std::string &id_</p></td>
+<td width="52%">
+<p class="western">Push (create) clip path definition with id_. Clip patch definition consists of subsequent drawing commands, terminated by DrawablePopClipPath.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePushGraphicContext</p></td>
+<td width="21%">
+<p class="western">void</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Push Graphic Context. When a graphic context is pushed, options set after the context is pushed (such as coordinate transformations, color settings, etc.) are saved to a new graphic context. This allows related options to be saved on a graphic context "stack" in order to support heirarchical nesting of options. When</font> <a href="#DrawablePopGraphicContext"><i><font size="2" style="font-size: 11pt">DrawablePopGraphicContext</font></i></a> <font size="2" style="font-size: 11pt">is used to pop the current graphic context, the options in effect during the last <i>DrawablePushGraphicContext</i> operation are restored.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePushPattern</p></td>
+<td width="21%">
+<p class="western">std::string &id_, long x_, long y_, long width_, long height_</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Start a pattern definition with arbitrary pattern name specified by <i>id_</i>, pattern offset specified by <i>x_</i> and <i>y_</i>, and pattern size specified by <i>width_</i> and <i>height_</i>. The pattern is defined within the coordinate system defined by the specified offset and size. Arbitrary drawing objects (including</font> <a href="#DrawableCompositeImage"><font size="2" style="font-size: 11pt">DrawableCompositeImage</font></a><font size="2" style="font-size: 11pt">) may be specified between</font> <a href="#DrawablePushPattern"><font size="2" style="font-size: 11pt">DrawablePushPattern</font></a> <font size="2" style="font-size: 11pt">and</font> <a href="#DrawablePopPattern"><font size="2" style="font-size: 11pt">DrawablePopPattern</font></a> <font size="2" style="font-size: 11pt">in order to draw the pattern. Normally the pair</font> <a href="#DrawablePushGraphicContext"><font size="2" style=
+"font-size: 11pt">DrawablePushGraphicContext</font></a> <font size="2" style="font-size: 11pt">&</font> <a href="#DrawablePopGraphicContext"><font size="2" style="font-size: 11pt">DrawablePopGraphicContext</font></a> <font size="2" style="font-size: 11pt">are used to enclose a pattern definition. Pattern definitions are terminated by a</font> <a href="#DrawablePopPattern"><font size="2" style="font-size: 11pt">DrawablePopPattern</font></a> <font size="2" style="font-size: 11pt">object.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawablePopPattern</p></td>
+<td width="21%">
+<p class="western">void</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Terminate a pattern definition started via</font> <a href="#DrawablePushPattern"><font size="2" style="font-size: 11pt">DrawablePushPattern</font></a><font size="2" style="font-size: 11pt">.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableRectangle</p></td>
+<td width="21%">
+<p class="western">double upperLeftX_, double upperLeftY_, double lowerRightX_, double lowerRightY</p></td>
+<td width="52%">
+<p class="western">Draw a rectangle using <i>stroke</i> color and thickness from upper-left coordinates to lower-right coordinates. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableRotation</p></td>
+<td width="21%">
+<p class="western">double angle_</p></td>
+<td width="52%">
+<p class="western">Set rotation to use when drawing (coordinate transformation).</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableRoundRectangle</p></td>
+<td width="21%">
+<p class="western">double centerX_, double centerY_, double width_, double hight_, double cornerWidth_, double cornerHeight_</p></td>
+<td width="52%">
+<p class="western">Draw a rounded rectangle using <i>stroke</i> color and thickness, with specified center coordinate, specified width and height, and specified corner width and height. If a <i>fill</i> color is specified, then the object is filled.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableScaling</p></td>
+<td width="21%">
+<p class="western">double x_, double y_</p></td>
+<td width="52%">
+<p class="western">Apply scaling in x and y direction while drawing objects (coordinate transformation).</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableSkewX</p></td>
+<td width="21%">
+<p class="western">double angle_</p></td>
+<td width="52%">
+<p class="western">Apply Skew in X direction (coordinate transformation)</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableSkewY</p></td>
+<td width="21%">
+<p class="western">double angle_</p></td>
+<td width="52%">
+<p class="western">Apply Skew in Y direction</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeAntialias</p></td>
+<td width="21%">
+<p class="western">bool flag_</p></td>
+<td width="52%">
+<p class="western">Antialias while drawing lines or object outlines.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeColor</p></td>
+<td width="21%">
+<p class="western"><font size="2">const <a href="Color.html">Color</a> &color_</font></p></td>
+<td width="52%">
+<p class="western">Set color to use when drawing lines or object outlines.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeLineCap</p></td>
+<td width="21%">
+<p class="western"><font size="2"><a href="Enumerations.html#LineCap">LineCap</a> linecap_</font></p></td>
+<td width="52%">
+<p class="western">Specify the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeLineJoin</p></td>
+<td width="21%">
+<p class="western"><font size="2"><a href="Enumerations.html#LineJoin">LineJoin</a> linejoin_</font></p></td>
+<td width="52%">
+<p class="western">Specify the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeOpacity</p></td>
+<td width="21%">
+<p class="western">double opacity_</p></td>
+<td width="52%">
+<p class="western">Opacity to use when drawing lines or object outlines.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableStrokeWidth</p></td>
+<td width="21%">
+<p class="western">double width_</p></td>
+<td width="52%">
+<p class="western">Set width to use when drawing lines or object outlines.</p></td></tr>
+<tr>
+<td rowspan="2" width="27%">
+<p class="western" align="center">DrawableText</p></td>
+<td width="21%">
+<p class="western">double x_, double y_, std::string text_</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Annotate image with text using <i>stroke</i> color, font, font pointsize, and <i>box</i> color (text background color), at specified coordinates. If text contains</font> <a href="FormatCharacters.html"><font size="2" style="font-size: 11pt">special format characters</font></a> <font size="2" style="font-size: 11pt">the image filename, type, width, height, or other image attributes may be incorporated in the text (see label()).</font></p></td></tr>
+<tr>
+<td width="21%">
+<p class="western">const double x_, const double y_, const std::string &text_, const std::string &encoding_</p></td>
+<td width="52%">
+<p class="western"><font size="2" style="font-size: 11pt">Annotate image with text represented with text encoding, using current <i>stroke</i> color, font, font pointsize, and <i>box</i> color (text background color), at specified coordinates. If text contains</font> <a href="FormatCharacters.html"><font size="2" style="font-size: 11pt">special format characters</font></a> <font size="2" style="font-size: 11pt">the image filename, type, width, height, or other image attributes may be incorporated in the text (see label()).</font></p>
+<p class="western"><font size="2" style="font-size: 11pt">The text encoding specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "<font face="Courier, monospace">UTF-8</font>" for representing</font> <a href="http://www.unicode.org/"><font size="2" style="font-size: 11pt">Unicode</font></a> <font size="2" style="font-size: 11pt">as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.</font></p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableTextAntialias</p></td>
+<td width="21%">
+<p class="western">bool flag_</p></td>
+<td width="52%">
+<p class="western">Antialias while drawing text (default true). The main reason to disable text antialiasing is to avoid adding new colors to the image.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center"><a name="DrawableTextDecoration"></a> DrawableTextDecoration</p></td>
+<td width="21%">
+<p class="western"><font size="2"><a href="Enumerations.html#DecorationType">DecorationType</a> decoration_</font></p></td>
+<td width="52%">
+<p class="western">Specify decoration (e.g. UnderlineDecoration) to apply to text.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableTextUnderColor</p></td>
+<td width="21%">
+<p class="western">const Color &color_</p></td>
+<td width="52%">
+<p class="western">Draw a box under rendered text using the specified color.</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableTranslation</p></td>
+<td width="21%">
+<p class="western">double x_, double y_</p></td>
+<td width="52%">
+<p class="western">Apply coordinate translation (set new coordinate origin).</p></td></tr>
+<tr>
+<td width="27%">
+<p class="western" align="center">DrawableViewbox</p></td>
+<td width="21%">
+<p class="western">unsigned long x1_, unsigned long y1_, unsigned long x2_, unsigned long y2_</p></td>
+<td width="52%">
+<p class="western">Dimensions of the output viewbox. If the image is to be written to a vector format (e.g. MVG or SVG), then a DrawablePushGraphicContext() object should be pushed to the head of the list, followed by a DrawableViewbox() statement to establish the output canvas size. A matching DrawablePopGraphicContext() object should be pushed to the tail of the list.</p></td></tr></table>
+<h2 align="center">Vector Path Classes</h2>
+<p>The vector paths supported by Magick++ are based on those supported by the <a href="http://www.w3.org/TR/SVG/paths.html">SVG XML specification</a>. Vector paths are not directly drawable, they must first be supplied as a constructor argument to the <a href="#DrawablePath">DrawablePath</a> class in order to create a drawable object. The <a href="#DrawablePath">DrawablePath</a> class effectively creates a drawable compound component which may be replayed as desired. If the drawable compound component consists only of vector path objects using relative coordinates then the object may be positioned on the image by preceding it with a <i>DrawablePath</i> which sets the current drawing coordinate. Alternatively coordinate transforms may be used to <a href="#DrawableTranslation">translate the origin</a> in order to position the object, <a href="#DrawableRotation">rotate</a> it, <a href="#DrawableSkewX">skew</a> it, or <a href="#DrawableScaling">scale</a> it.</p>
+<h3>The "moveto" commands</h3>
+<p style="margin-bottom: 0in">The "moveto" commands establish a new current point. The effect is as if the "pen" were lifted and moved to a new location. A path data segment must begin with either one of the "moveto" commands or one of the "arc" commands. Subsequent "moveto" commands (i.e., when the "moveto" is not the first command) represent the start of a new subpath:</p>
+<p align="center" style="margin-bottom: 0in"><b>Moveto Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="37*">
+<col width="43*">
+<col width="177*">
+<tr>
+<th width="14%">
+<p class="western">Sub-Class</p></th>
+<th width="17%">
+<p class="western">Constructor Signature</p></th>
+<th width="69%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2" width="14%">
+<p class="western" align="center"><a name="PathMovetoAbs"></a>PathMovetoAbs</p></td>
+<td width="17%">
+<p class="western">const Magick::Coordinate &coordinate_</p></td>
+<td rowspan="4" width="69%">
+<p class="western">Start a new sub-path at the given coordinate. <i>PathMovetoAbs</i> indicates that absolute coordinates will follow; <i>PathMovetoRel</i> indicates that relative coordinates will follow. If a relative moveto appears as the first element of the path, then it is treated as a pair of absolute coordinates. If a moveto is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit lineto commands.</p></td></tr>
+<tr>
+<td width="17%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr>
+<tr>
+<td rowspan="2" width="14%">
+<p class="western" align="center"><a name="PathMovetoRel"></a>PathMovetoRel</p></td>
+<td width="17%">
+<p class="western">const Magick::Coordinate &coordinate_</p></td></tr>
+<tr>
+<td width="17%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr></table>
+<h3>The "closepath" command</h3>
+<p style="margin-bottom: 0in">The "closepath" command causes an automatic straight line to be drawn from the current point to the initial point of the current subpath:</p>
+<p align="center" style="margin-bottom: 0in"><b>Closepath Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="37*">
+<col width="41*">
+<col width="178*">
+<tr>
+<th width="14%">
+<p class="western">Sub-Class</p></th>
+<th width="16%">
+<p class="western">Constructor Signature</p></th>
+<th width="69%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td width="14%">
+<p class="western" align="center"><a name="PathClosePath"></a>PathClosePath</p></td>
+<td width="16%">
+<p class="western">void</p></td>
+<td width="69%">
+<p class="western">Close the current subpath by drawing a straight line from the current point to current subpath's most recent starting point (usually, the most recent moveto point).</p></td></tr></table>
+<h3>The "lineto" commands</h3>
+<p style="margin-bottom: 0in">The various "lineto" commands draw straight lines from the current point to a new point:</p>
+<p align="center" style="margin-bottom: 0in"><b>Lineto Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="56*">
+<col width="39*">
+<col width="161*">
+<tr>
+<th width="22%">
+<p class="western">Sub-Class</p></th>
+<th width="15%">
+<p class="western">Constructor Signature</p></th>
+<th width="63%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2" width="22%">
+<p class="western" align="center"><a name="PathLinetoAbs"></a>PathLinetoAbs</p></td>
+<td width="15%">
+<p class="western">const Magick::Coordinate& coordinate_</p></td>
+<td rowspan="4" width="63%">
+<p class="western">Draw a line from the current point to the given coordinate which becomes the new current point. <i>PathLinetoAbs</i> indicates that absolute coordinates are used; <i>PathLinetoRel</i> indicates that relative coordinates are used. A number of coordinates pairs may be specified in a list to draw a polyline. At the end of the command, the new current point is set to the final set of coordinates provided.</p></td></tr>
+<tr>
+<td width="15%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr>
+<tr>
+<td rowspan="2" width="22%">
+<p class="western" align="center"><a name="PathLinetoRel"></a>PathLinetoRel</p></td>
+<td width="15%">
+<p class="western">const Magick::Coordinate& coordinate_</p></td></tr>
+<tr>
+<td width="15%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr>
+<tr>
+<td width="22%">
+<p class="western" align="center"><a name="PathLinetoHorizontalAbs"></a> PathLinetoHorizontalAbs</p></td>
+<td width="15%">
+<p class="western">double x_</p></td>
+<td rowspan="2" width="63%">
+<p class="western">Draws a horizontal line from the current point (cpx, cpy) to (x, cpy). <i>PathLinetoHorizontalAbs</i> indicates that absolute coordinates are supplied; <i>PathLinetoHorizontalRel</i> indicates that relative coordinates are supplied. At the end of the command, the new current point becomes (x, cpy) for the final value of x.</p></td></tr>
+<tr>
+<td width="22%">
+<p class="western" align="center"><a name="PathLinetoHorizontalRel"></a> PathLinetoHorizontalRel</p></td>
+<td width="15%">
+<p class="western">double x_</p></td></tr>
+<tr>
+<td width="22%">
+<p class="western" align="center"><a name="PathLinetoVerticalAbs"></a> PathLinetoVerticalAbs</p></td>
+<td width="15%">
+<p class="western">double y_</p></td>
+<td rowspan="2" width="63%">
+<p class="western">Draws a vertical line from the current point (cpx, cpy) to (cpx, y). <i>PathLinetoVerticalAbs</i> indicates that absolute coordinates are supplied; <i>PathLinetoVerticalRel</i> indicates that relative coordinates are supplied. At the end of the command, the new current point becomes (cpx, y) for the final value of y.</p></td></tr>
+<tr>
+<td width="22%">
+<p class="western" align="center"><a name="PathLinetoVerticalRel"></a> PathLinetoVerticalRel</p></td>
+<td width="15%">
+<p class="western">double y_</p></td></tr></table>
+<h3>The curve commands</h3>
+<p>These three groups of commands draw curves:</p>
+<ul>
+<li>
+<p style="margin-bottom: 0in"><a href="#cubic%20Bezier">Cubic Bézier commands.</a> A cubic Bézier segment is defined by a start point, an end point, and two control points.</p></li>
+<li>
+<p style="margin-bottom: 0in"><a href="#quadratic%20Bezier">Quadratic Bézier commands.</a> A quadratic Bézier segment is defined by a start point, an end point, and one control point.</p></li>
+<li>
+<p><a href="#elliptical%20arc">Elliptical arc commands.</a> An elliptical arc segment draws a segment of an ellipse.</p></li></ul>
+<h3><a name="cubic Bezier"></a>The cubic Bézier curve commands</h3>
+<p>The cubic Bézier commands depend on the <i>PathCurvetoArgs</i> argument class, which has the constructor signature</p>
+<p><tt>PathCurvetoArgs( double x1_, double y1_,</tt><br>
+ <tt>double x2_, double y2_,</tt><br>
+ <tt>double x_, double y_ );</tt></p>
+<p style="margin-bottom: 0in">The commands are as follows:</p>
+<p align="center" style="margin-bottom: 0in"><b>Cubic Bézier Curve Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="54*">
+<col width="58*">
+<col width="144*">
+<tr>
+<th width="21%">
+<p class="western">Sub-Class</p></th>
+<th width="23%">
+<p class="western">Constructor Signature</p></th>
+<th width="56%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2" width="21%">
+<p class="western" align="center"><a name="PathCurvetoAbs"></a>PathCurvetoAbs</p></td>
+<td width="23%">
+<p class="western">const Magick::PathCurvetoArgs &args_</p></td>
+<td rowspan="4" width="56%">
+<p class="western">Draws a cubic Bézier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve. <i>PathCurvetoAbs</i> indicates that absolutecoordinates will follow; <i>PathCurvetoRel</i> indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.</p></td></tr>
+<tr>
+<td width="23%">
+<p class="western">const std::list<Magick::PathCurvetoArgs> &args_</p></td></tr>
+<tr>
+<td rowspan="2" width="21%">
+<p class="western" align="center"><a name="PathCurvetoRel"></a>PathCurvetoRel</p></td>
+<td width="23%">
+<p class="western">const Magick::PathCurvetoArgs &args_</p></td></tr>
+<tr>
+<td width="23%">
+<p class="western">const std::list<Magick::PathCurvetoArgs> &args_</p></td></tr>
+<tr>
+<td rowspan="2" width="21%">
+<p class="western" align="center"><a name="PathSmoothCurvetoAbs"></a> PathSmoothCurvetoAbs</p></td>
+<td width="23%">
+<p class="western">const Magick::Coordinate &coordinates_</p></td>
+<td rowspan="4" width="56%">
+<p class="western">Draws a cubic Bézier curve from the current point to (x,y). The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an <i>PathCurvetoAbs</i>, <i>PathCurvetoRel</i>, <i>PathSmoothCurvetoAbs</i> or <i>PathSmoothCurvetoRel</i>, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). <i>PathSmoothCurvetoAbs</i> indicates that absolute coordinates will follow; <i>PathSmoothCurvetoRel</i> indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.</p></td></tr>
+<tr>
+<td width="23%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr>
+<tr>
+<td rowspan="2" width="21%">
+<p class="western" align="center"><a name="PathSmoothCurvetoRel"></a> PathSmoothCurvetoRel</p></td>
+<td width="23%">
+<p class="western">const Magick::Coordinate &coordinates_</p></td></tr>
+<tr>
+<td width="23%">
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr></table>
+<h3><a name="quadratic Bezier"></a>The quadratic Bézier curve commands</h3>
+<p>The quadratic Bézier commands depend on the <i>PathQuadraticCurvetoArgs</i> argument class, which has the constructor signature:</p>
+<p><tt>PathQuadraticCurvetoArgs( double x1_, double y1_,</tt><br>
+ <tt>double x_, double y_ );</tt></p>
+<p style="margin-bottom: 0in">The quadratic Bézier commands are as follows:</p>
+<p align="center" style="margin-bottom: 0in"><b>Quadratic Bézier Curve Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<th>
+<p class="western">Sub-Class</p></th>
+<th>
+<p class="western">Constructor Signature</p></th>
+<th>
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2">
+<p class="western" align="center"><a name="PathQuadraticCurvetoAbs"></a> PathQuadraticCurvetoAbs</p></td>
+<td>
+<p class="western">const Magick::PathQuadraticCurvetoArgs &args_</p></td>
+<td rowspan="4">
+<p class="western">Draws a quadratic Bézier curve from the current point to (x,y) using (x1,y1) as the control point. <i>PathQuadraticCurvetoAbs</i> indicates that absolute coordinates will follow; <i>PathQuadraticCurvetoRel</i> indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.</p></td></tr>
+<tr>
+<td>
+<p class="western">const std::list<Magick::PathQuadraticCurvetoArgs> &args_</p></td></tr>
+<tr>
+<td rowspan="2">
+<p class="western" align="center"><a name="PathQuadraticCurvetoRel"></a> PathQuadraticCurvetoRel</p></td>
+<td>
+<p class="western">const Magick::PathQuadraticCurvetoArgs &args_</p></td></tr>
+<tr>
+<td>
+<p class="western">const std::list<Magick::PathQuadraticCurvetoArgs> &args_</p></td></tr>
+<tr>
+<td rowspan="2">
+<p class="western" align="center"><a name="PathSmoothQuadraticCurvetoAbs"></a> PathSmoothQuadraticCurvetoAbs</p></td>
+<td>
+<p class="western">const Magick::Coordinate &coordinate_</p></td>
+<td rowspan="4">
+<p class="western">Draws a quadratic Bézier curve from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous<br>
+command relative to the current point. (If there is no previous command or if the previous command was not a <i>PathQuadraticCurvetoAbs</i>, <i>PathQuadraticCurvetoRel</i>, <i>PathSmoothQuadraticCurvetoAbs</i> or <i>PathSmoothQuadraticCurvetoRel</i>, assume the control point is coincident with the current point.) <i>PathSmoothQuadraticCurvetoAbs</i> indicates that absolute coordinates will follow; <i>PathSmoothQuadraticCurvetoRel</i> indicates that relative coordinates will follow. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.</p></td></tr>
+<tr>
+<td>
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr>
+<tr>
+<td rowspan="2">
+<p class="western" align="center"><a name="PathSmoothQuadraticCurvetoRel"></a> PathSmoothQuadraticCurvetoRel</p></td>
+<td>
+<p class="western">const Magick::Coordinate &coordinate_</p></td></tr>
+<tr>
+<td>
+<p class="western">const std::list<Magick::Coordinate> &coordinates_</p></td></tr></table>
+<h3><a name="elliptical arc"></a>The elliptical arc curve commands</h3>
+<p>The elliptical arc curve commands depend on the <i>PathArcArgs</i> argument class, which has the constructor signature:</p>
+<p><tt>PathArcArgs( double radiusX_, double radiusY_,</tt><br>
+ <tt>double xAxisRotation_, bool largeArcFlag_,</tt><br>
+ <tt>bool sweepFlag_, double x_, double y_ );</tt></p>
+<p style="margin-bottom: 0in">The elliptical arc commands are as follows:</p>
+<p align="center" style="margin-bottom: 0in"><b>Elliptical Arc Curve Classes</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="35*">
+<col width="46*">
+<col width="175*">
+<tr>
+<th width="14%">
+<p class="western">Sub-Class</p></th>
+<th width="18%">
+<p class="western">Constructor Signature</p></th>
+<th width="68%">
+<p class="western">Description</p></th></tr>
+<tr>
+<td rowspan="2" width="14%">
+<p class="western" align="center"><a name="PathArcAbs"></a>PathArcAbs</p></td>
+<td width="18%">
+<p class="western">const Magick::PathArcArgs &coordinates_</p></td>
+<td rowspan="4" width="68%">
+<p class="western">Draws an elliptical arc from the current point to (x, y). The size and orientation of the ellipse are defined by two radii (<i>radiusX</i>, <i>radiusY</i>) and an <i>xAxisRotation</i>, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. <i>largeArcFlag</i> and <i>sweepFlag</i> contribute to the automatic calculations and help determine how the arc is drawn. If <i>largeArcFlag</i> is true then draw the larger of the available arcs. If <i>sweepFlag</i> is true, then draw the arc matching a clock-wise rotation.</p></td></tr>
+<tr>
+<td width="18%">
+<p class="western">const std::list<Magick::PathArcArgs> &coordinates_</p></td></tr>
+<tr>
+<td rowspan="2" width="14%">
+<p class="western" align="center"><a name="PathArcRel"></a>PathArcRel</p></td>
+<td width="18%">
+<p class="western">const Magick::PathArcArgs &coordinates_</p></td></tr>
+<tr>
+<td width="18%">
+<p class="western">const std::list<Magick::PathArcArgs> &coordinates_</p></td></tr></table>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/Drawable_example_1.png b/www/Magick++/Drawable_example_1.png
new file mode 100644
index 0000000..50e2045
--- /dev/null
+++ b/www/Magick++/Drawable_example_1.png
Binary files differ
diff --git a/www/Magick++/Enumerations.html b/www/Magick++/Enumerations.html
new file mode 100644
index 0000000..692dea8
--- /dev/null
+++ b/www/Magick++/Enumerations.html
@@ -0,0 +1,2287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Enumerations</title>
+<meta name="GENERATOR" content="StarOffice 6.0 (Solaris Sparc)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;17491620">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20021125;10502900">
+<meta name="DESCRIPTION" content="Documentation for ImageMagick enumerations">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#1F00FF" vlink="#9900DD" bgcolor="#fbc713">
+<H1 ALIGN=CENTER>Enumerations</H1>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><IMG SRC="right_triangle.png" NAME="Graphic1" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">Contents</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<UL>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ChannelType">ChannelType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ClassType">ClassType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ColorspaceType">ColorspaceType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#CompositeOperator">CompositeOperator</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#CompressionType">CompressionType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#DecorationType">DecorationType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#FillRule">FillRule</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#FilterTypes">FilterTypes</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#GravityType">GravityType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ImageType">ImageType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#InterlaceType">InterlaceType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ChannelType">ChannelType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#LineCap">LineCap</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#LineJoin">LineJoin</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#NoiseType">NoiseType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#OrientationType">OrientationType</A></P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#PaintMethod">PaintMethod</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#QuantumTypes">QuantumTypes</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#RenderingIntent">RenderingIntent</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#ResolutionType">ResolutionType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#StorageType">StorageType</A>
+ </P>
+ <LI><P STYLE="margin-bottom: 0in"><A HREF="#StretchType">StretchType</A>
+ </P>
+ <LI><P><A HREF="#StyleType">StyleType</A>
+ </P>
+</UL>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ChannelType"></A><IMG SRC="right_triangle.png" NAME="Graphic2" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ChannelType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>ChannelType</I> is used as an
+argument when doing color separations. Use <I>ChannelType </I>when
+extracting a layer from an image. <I>MatteChannel</I> is useful for
+extracting the opacity values from an image. Note that an image may
+be represented in RGB, RGBA, CMYK, or CMYKA, pixel formats and a
+channel may only be extracted if it is valid for the current pixel
+format.</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ChannelType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3 BGCOLOR="#cccccc">
+ <COL WIDTH=86*>
+ <COL WIDTH=170*>
+ <TR>
+ <TD WIDTH=34%>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD WIDTH=66%>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>UndefinedChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>RedChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract red channel (RGB images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>CyanChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract cyan channel (CMYK images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>GreenChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract green channel (RGB images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>MagentaChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract magenta channel (CMYK images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>BlueChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract blue channel (RGB images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>YellowChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract yellow channel (CMYK images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>OpacityChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract matte (opacity values) channel (CMYKA images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>BlackChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract black channel (CMYK images only)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=34%>
+ <P>MatteChannel</P>
+ </TD>
+ <TD WIDTH=66%>
+ <P>Extract matte (opacity values) channel (RGB images only)</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ClassType"></A><IMG SRC="right_triangle.png" NAME="Graphic3" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ClassType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>ClassType</I> specifies the image
+storage class.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ClassType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedClass</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>DirectClass</P>
+ </TD>
+ <TD>
+ <P>Image is composed of pixels which represent literal color
+ values.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PseudoClass</P>
+ </TD>
+ <TD>
+ <P>Image is composed of pixels which specify an index in a color
+ palette.</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ColorspaceType"></A><IMG SRC="right_triangle.png" NAME="Graphic4" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ColorspaceType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P>The ColorspaceType enumeration is used to specify the colorspace
+that quantization (color reduction and mapping) is done under or to
+specify the colorspace when encoding an output image. Colorspaces are
+ways of describing colors to fit the requirements of a particular
+application (e.g. Television, offset printing, color monitors).
+Color reduction, by default, takes place in the <I>RGBColorspace</I>.
+Empirical evidence suggests that distances in color spaces such as
+<I>YUVColorspace</I> or <I>YIQColorspace</I> correspond to perceptual
+color differences more closely han do distances in RGB space. These
+color spaces may give better results when color reducing an image.
+Refer to <I>quantize</I> for more details.
+</P>
+<P STYLE="margin-bottom: 0in">When encoding an output image, the
+colorspaces <I>RGBColorspace</I>, <I>CMYKColorspace</I>, and
+<I>GRAYColorspace</I> may be specified. The <I>CMYKColorspace</I>
+option is only applicable when writing TIFF, JPEG, and Adobe
+Photoshop bitmap (PSD) files.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ColorspaceType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedColorspace</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RGBColorspace</P>
+ </TD>
+ <TD>
+ <P>Red-Green-Blue colorspace.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GRAYColorspace</P>
+ </TD>
+ <TD>
+ <P> Grayscale colorspace</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>TransparentColorspace</P>
+ </TD>
+ <TD>
+ <P>The Transparent color space behaves uniquely in that it
+ preserves the matte channel of the image if it exists.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>OHTAColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>XYZColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YCbCrColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YCCColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YIQColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YPbPrColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YUVColorspace</P>
+ </TD>
+ <TD>
+ <P>Y-signal, U-signal, and V-signal colorspace. YUV is most widely
+ used to encode color for use in television transmission.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CMYKColorspace</P>
+ </TD>
+ <TD>
+ <P>Cyan-Magenta-Yellow-Black colorspace. CYMK is a subtractive
+ color system used by printers and photographers for the rendering
+ of colors with ink or emulsion, normally on a white surface.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>sRGBColorspace</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="CompositeOperator"></A><IMG SRC="right_triangle.png" NAME="Graphic5" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">CompositeOperator</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>CompositeOperator</I> is used to
+select the image composition algorithm used to compose a <I>composite
+image</I> with an <I>image</I>. By default, each of the composite
+image pixels are replaced by the corresponding image tile pixel.
+Specify <I>CompositeOperator</I> to select a different algorithm.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>CompositeOperator</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedCompositeOp</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>OverCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result is the union of the two image shapes with the
+ <I>composite image</I> obscuring <I>image</I> in the region of
+ overlap.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>InCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result is a simply <I>composite image </I>cut by the shape
+ of image. None of the image data of <I>image</I> is included in
+ the result.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>OutCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting image is <I>composite image</I> with the shape of
+ <I>image</I> cut out.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>AtopCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result is the same shape as image <I>image</I>, with
+ <I>composite image</I> obscuring <I>image</I> there the image
+ shapes overlap. Note that this differs from <I>OverCompositeOp</I>
+ because the portion of <I>composite image</I> outside of <I>image</I>'s
+ shape does not appear in the result.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>XorCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result is the image data from both c<I>omposite image</I>
+ and <I>image</I> that is outside the overlap region. The overlap
+ region will be blank.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PlusCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result is just the sum of the image data. Output
+ values are cropped to 255 (no overflow). This operation is
+ independent of the matte channels.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MinusCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result of <I>composite image </I>- <I>image</I>, with
+ overflow cropped to zero. The matte chanel is ignored (set to 255,
+ full coverage).</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>AddCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result of <I>composite image</I> + <I>image</I>, with
+ overflow wrapping around (mod 256).</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SubtractCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result of <I>composite image </I>- <I>image</I>, with
+ underflow wrapping around (mod 256). The add and subtract
+ operators can be used to perform reverible transformations.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>DifferenceCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result of abs(c<I>omposite image </I>- <I>image</I>). This
+ is useful for comparing two very similar images.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MultiplyCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BumpmapCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The result <I>image</I> shaded by <I>composite image.</I></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CopyCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting <I>image</I> is image replaced with c<I>omposite
+ image</I>. Here the matte information is ignored.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CopyRedCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting image is the red layer in <I>image</I> replaced
+ with the red layer in <I>composite image</I>. The other layers are
+ copied untouched.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CopyGreenCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting image is the green layer in <I>image</I> replaced
+ with the green layer in <I>composite image</I>. The other layers
+ are copied untouched.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CopyBlueCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting image is the blue layer in <I>image</I> replaced
+ with the blue layer in <I>composite image</I>. The other layers
+ are copied untouched.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CopyOpacityCompositeOp</P>
+ </TD>
+ <TD>
+ <P>The resulting image is the matte layer in <I>image</I> replaced
+ with the matte layer in <I>composite image</I>. The other layers
+ are copied untouched.
+ </P>
+ <P>The image compositor requires a matte, or alpha channel in the
+ image for some operations. This extra channel usually defines a
+ mask which represents a sort of a cookie-cutter for the image.
+ This is the case when matte is 255 (full coverage) for pixels
+ inside the shape, zero outside, and between zero and 255 on the
+ boundary. For certain operations, if <I>image</I> does not
+ have a matte channel, it is initialized with 0 for any pixel
+ matching in color to pixel location (0,0), otherwise 255 (to work
+ properly <I>borderWidth</I> must be 0).</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ClearCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>DissolveCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>DisplaceCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ModulateCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ThresholdCompositeOp</P>
+ </TD>
+ <TD>
+ <P> </P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="CompressionType"></A><IMG SRC="right_triangle.png" NAME="Graphic6" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">CompressionType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>CompressionType</I> is used to
+express the desired compression type when encoding an image. Be aware
+that most image types only support a sub-set of the available
+compression types. If the compression type specified is incompatable
+with the image, ImageMagick selects a compression type compatable
+with the image type.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>CompressionType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedCompression</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NoCompression</P>
+ </TD>
+ <TD>
+ <P>No compression</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BZipCompression</P>
+ </TD>
+ <TD>
+ <P>BZip (Burrows-Wheeler block-sorting text compression algorithm
+ and Huffman coding) as used by bzip2 utilities</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>FaxCompression</P>
+ </TD>
+ <TD>
+ <P>CCITT Group 3 FAX compression</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>Group4Compression</P>
+ </TD>
+ <TD>
+ <P>CCITT Group 4 FAX compression (used only for TIFF)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>JPEGCompression</P>
+ </TD>
+ <TD>
+ <P>JPEG compression</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LZWCompression</P>
+ </TD>
+ <TD>
+ <P>Lempel-Ziv-Welch (LZW) compression (caution, patented by
+ Unisys)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RunlengthEncodedCompression</P>
+ </TD>
+ <TD>
+ <P>Run-Length encoded (RLE) compression</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ZipCompression</P>
+ </TD>
+ <TD>
+ <P>Lempel-Ziv compression (LZ77) as used in PKZIP and GNU gzip.</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="DecorationType"></A><IMG SRC="right_triangle.png" NAME="Graphic7" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">DecorationType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>DecorationType </I>enumerations
+are used to specify line decorations of rendered text.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>DecorationType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NoDecoration</P>
+ </TD>
+ <TD>
+ <P>No decoration</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UnderlineDecoration</P>
+ </TD>
+ <TD>
+ <P>Underlined text</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>OverlineDecoration</P>
+ </TD>
+ <TD>
+ <P>Overlined text</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LineThroughDecoration</P>
+ </TD>
+ <TD>
+ <P>Strike-through text</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="EndianType"></A><IMG SRC="right_triangle.png" NAME="Graphic8" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">EndianType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>EndianType </I>enumerations are
+used to specify the endian option for formats which support it (e.g.
+TIFF).
+</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>EndianType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedEndian</P>
+ </TD>
+ <TD>
+ <P>Not defined (default)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LSBEndian</P>
+ </TD>
+ <TD>
+ <P>Little endian (like Intel X86 and DEC Alpha)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MSBEndian</P>
+ </TD>
+ <TD>
+ <P>Big endian (like Motorola 68K, Mac PowerPC, & SPARC)</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="FillRule"></A><IMG SRC="right_triangle.png" NAME="Graphic9" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT COLOR="#ffffff">FillRule</FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>FillRule</I> specifies the algorithm
+which is to be used to determine what parts of the canvas are
+included inside the shape. See the documentation on SVG's <A HREF="http://www.w3.org/TR/SVG/painting.html#FillRuleProperty">fill-rule</A>
+property for usage details.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>FillRule</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P>UndefinedRule</P>
+ </TD>
+ <TD>
+ <P>Fill rule not specified</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>EvenOddRule</P>
+ </TD>
+ <TD>
+ <P>See SVG fill-rule <I>evenodd</I> rule.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NonZeroRule</P>
+ </TD>
+ <TD>
+ <P>See SVG fill-rule <I>nonzero</I> rule.</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="FilterTypes"></A><IMG SRC="right_triangle.png" NAME="Graphic10" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">FilterTypes</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>FilterTypes</I> is used to adjust
+the filter algorithm used when resizing images. Different filters
+experience varying degrees of success with various images and can
+take sipngicantly different amounts of processing time.
+ImageMagick uses the <I>LanczosFilter</I> by default since this
+filter has been shown to provide the best results for most images in
+a reasonable amount of time. Other filter types (e.g. <I>TriangleFilter</I>)
+may execute much faster but may show artifacts when the image is
+re-sized or around diagonal lines. The only way to be sure is to test
+the filter with sample images.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>FilterTypes</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedFilter</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PointFilter</P>
+ </TD>
+ <TD>
+ <P>Point Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BoxFilter</P>
+ </TD>
+ <TD>
+ <P>Box Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>TriangleFilter</P>
+ </TD>
+ <TD>
+ <P>Triangle Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>HermiteFilter</P>
+ </TD>
+ <TD>
+ <P>Hermite Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>HanningFilter</P>
+ </TD>
+ <TD>
+ <P>Hanning Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>HammingFilter</P>
+ </TD>
+ <TD>
+ <P>Hamming Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BlackmanFilter</P>
+ </TD>
+ <TD>
+ <P>Blackman Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GaussianFilter</P>
+ </TD>
+ <TD>
+ <P>Gaussian Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>QuadraticFilter</P>
+ </TD>
+ <TD>
+ <P>Quadratic Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CubicFilter</P>
+ </TD>
+ <TD>
+ <P>Cubic Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CatromFilter</P>
+ </TD>
+ <TD>
+ <P>Catrom Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MitchellFilter</P>
+ </TD>
+ <TD>
+ <P>Mitchell Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LanczosFilter</P>
+ </TD>
+ <TD>
+ <P>Lanczos Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BesselFilter</P>
+ </TD>
+ <TD>
+ <P>Bessel Filter</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SincFilter</P>
+ </TD>
+ <TD>
+ <P>Sinc Filter</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="GravityType"></A><IMG SRC="right_triangle.png" NAME="Graphic11" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">GravityType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>GravityType</I> specifies
+positioning of an object (e.g. text, image) within a bounding region
+(e.g. an image). Gravity provides a convenient way to locate objects
+irrespective of the size of the bounding region, in other words, you
+don't need to provide absolute coordinates in order to position an
+object. A common default for gravity is <I>NorthWestGravity</I>.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>GravityType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ForgetGravity</P>
+ </TD>
+ <TD>
+ <P>Don't use gravity.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NorthWestGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at top-left of region.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NorthGravity</P>
+ </TD>
+ <TD>
+ <P>Postiion object at top-center of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NorthEastGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at top-right of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>WestGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at left-center of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CenterGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at center of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>EastGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at right-center of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SouthWestGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at left-bottom of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SouthGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at bottom-center of region</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SouthEastGravity</P>
+ </TD>
+ <TD>
+ <P>Position object at bottom-right of region</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ImageType"></A><IMG SRC="right_triangle.png" NAME="Graphic12" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ImageType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>ImageType</I> indicates the type
+classification of the image.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ImageType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedType</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BilevelType</P>
+ </TD>
+ <TD>
+ <P>Monochrome image</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GrayscaleType</P>
+ </TD>
+ <TD>
+ <P>Grayscale image</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GrayscaleMatteType</P>
+ </TD>
+ <TD>
+ <P>Grayscale image with opacity</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PaletteType</P>
+ </TD>
+ <TD>
+ <P>Indexed color (palette) image</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PaletteMatteType</P>
+ </TD>
+ <TD>
+ <P>Indexed color (palette) image with opacity</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>TrueColorType</P>
+ </TD>
+ <TD>
+ <P>Truecolor image</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>TrueColorMatteType</P>
+ </TD>
+ <TD>
+ <P>Truecolor image with opacity</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ColorSeparationType</P>
+ </TD>
+ <TD>
+ <P>Cyan/Yellow/Magenta/Black (CYMK) image</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="InterlaceType"></A><IMG SRC="right_triangle.png" NAME="Graphic13" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">InterlaceType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P><I>InterlaceType</I> specifies the ordering of the red, green, and
+blue pixel information in the image. Interlacing is usually used to
+make image information available to the user faster by taking
+advantage of the space vs time tradeoff. For example, interlacing
+allows images on the Web to be recognizable sooner and satellite
+images to accumulate/render with image resolution increasing over
+time.
+</P>
+<P STYLE="margin-bottom: 0in">Use <I>LineInterlace</I> or
+<I>PlaneInterlace</I> to create an interlaced GIF or progressive JPEG
+image.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>InterlaceType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedInterlace</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NoInterlace</P>
+ </TD>
+ <TD>
+ <P>Don't interlace image (RGBRGBRGBRGBRGBRGB...)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LineInterlace</P>
+ </TD>
+ <TD>
+ <P>Use scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PlaneInterlace</P>
+ </TD>
+ <TD>
+ <P>Use plane interlacing (RRRRRR...GGGGGG...BBBBBB...)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PartitionInterlace</P>
+ </TD>
+ <TD>
+ <P>Similar to plane interlaing except that the different planes
+ are saved to individual files (e.g. image.R, image.G, and image.B)</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ChannelType1"></A><IMG SRC="right_triangle.png" NAME="Graphic14" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ChannelType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>ChannelType</I> is used as an
+argument when doing color separations. Use <I>ChannelType</I> when
+extracting a layer from an image. <I>MatteLayer</I> is useful for
+extracting the opacity values from an image.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ChannelType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedLayer</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RedLayer</P>
+ </TD>
+ <TD>
+ <P>Select red layer</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GreenLayer</P>
+ </TD>
+ <TD>
+ <P>Select green layer</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BlueLayer</P>
+ </TD>
+ <TD>
+ <P>Select blue layer</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MatteLayer</P>
+ </TD>
+ <TD>
+ <P>Select matte (opacity values) layer</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="LineCap"></A><IMG SRC="right_triangle.png" NAME="Graphic15" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">LineCap</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>LineCap</I> enumerations specify
+shape to be used at the end of open subpaths when they are stroked.
+See SVG's '<A HREF="http://www.w3.org/TR/SVG/painting.html#StrokeLinecapProperty">stroke-linecap'</A>
+for examples.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>LineCap</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedCap</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ButtCap</P>
+ </TD>
+ <TD>
+ <P>Square ending.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RoundCap</P>
+ </TD>
+ <TD>
+ <P>Rounded ending (half-circle end with radius of 1/2 stroke
+ width).</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SquareCap</P>
+ </TD>
+ <TD>
+ <P>Square ending, extended by 1/2 the stroke width at end.</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="LineJoin"></A><IMG SRC="right_triangle.png" NAME="Graphic16" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">LineJoin</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>LineJoin</I> enumerations
+specify the shape to be used at the corners of paths or basic shapes
+when they are stroked. See SVG's '<A HREF="http://www.w3.org/TR/SVG/painting.html#StrokeLinejoinProperty">stroke-linejoin'</A>
+for examples.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ChannelType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedJoin</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MiterJoin</P>
+ </TD>
+ <TD>
+ <P>Sharp-edged join</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RoundJoin</P>
+ </TD>
+ <TD>
+ <P>Rounded-edged join</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BevelJoin</P>
+ </TD>
+ <TD>
+ <P>Beveled-edged join</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="NoiseType"></A><IMG SRC="right_triangle.png" NAME="Graphic17" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">NoiseType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>NoiseType</I> is used as an argument
+to select the type of noise to be added to the image.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>NoiseType</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UniformNoise</P>
+ </TD>
+ <TD>
+ <P>Uniform noise</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GaussianNoise</P>
+ </TD>
+ <TD>
+ <P>Gaussian noise</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MultiplicativeGaussianNoise</P>
+ </TD>
+ <TD>
+ <P>Multiplicative Gaussian noise</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ImpulseNoise</P>
+ </TD>
+ <TD>
+ <P>Impulse noise</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>LaplacianNoise</P>
+ </TD>
+ <TD>
+ <P>Laplacian noise</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PoissonNoise</P>
+ </TD>
+ <TD>
+ <P>Poisson noise</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>
+ <COL WIDTH=256*>
+ <TR>
+ <TD WIDTH=100% BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="PaintMethod1"></A><A NAME="OrientationType"></A>
+ <IMG SRC="right_triangle.png" NAME="Graphic25" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">OrientationType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P ALIGN=LEFT STYLE="margin-bottom: 0in"><I>OrientationType</I>
+specifies the orientation of the image. Useful for when the image is
+produced via a different ordinate system, the camera was turned on
+its side, or the page was scanned sideways.</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>OrientationType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3 BGCOLOR="#cccccc">
+ <COL WIDTH=65*>
+ <COL WIDTH=75*>
+ <COL WIDTH=115*>
+ <TR>
+ <TD WIDTH=25%>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD WIDTH=29%>
+ <P ALIGN=CENTER><B>Scanline Direction</B></P>
+ </TD>
+ <TD WIDTH=45%>
+ <P ALIGN=CENTER><B>Frame Direction</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>UndefinedOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Unknown</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Unknown</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>TopLeftOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Left to right</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Top to bottom</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>TopRightOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Right to left</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Top to bottom</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>BottomRightOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Right to left</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Bottom to top</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>BottomLeftOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Left to right</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Bottom to top</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>LeftTopOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Top to bottom</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Left to right</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>RightTopOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Top to bottom</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Right to left</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>RightBottomOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Bottom to top</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Right to left</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=25%>
+ <P>LeftBottomOrientation</P>
+ </TD>
+ <TD WIDTH=29%>
+ <P>Bottom to top</P>
+ </TD>
+ <TD WIDTH=45%>
+ <P>Left to right</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="PaintMethod"></A><IMG SRC="right_triangle.png" NAME="Graphic18" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">PaintMethod</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>PaintMethod</I> specifies how pixel
+colors are to be replaced in the image. It is used to select the
+pixel-filling algorithm employed.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>PaintMethod</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PointMethod</P>
+ </TD>
+ <TD>
+ <P>Replace pixel color at point.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ReplaceMethod</P>
+ </TD>
+ <TD>
+ <P>Replace color for all image pixels matching color at point.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>FloodfillMethod</P>
+ </TD>
+ <TD>
+ <P>Replace color for pixels surrounding point until encountering
+ pixel that fails to match color at point.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>FillToBorderMethod</P>
+ </TD>
+ <TD>
+ <P>Replace color for pixels surrounding point until encountering
+ pixels matching border color.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ResetMethod</P>
+ </TD>
+ <TD>
+ <P>Replace colors for <B>all</B> pixels in image with pen color.</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="QuantumTypes"></A><IMG SRC="right_triangle.png" NAME="Graphic19" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">QuantumTypes</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><I>QuantumTypes</I> is used to indicate
+the source or destination format of entire pixels, or components of
+pixels ("Quantums") while they are being read, or written
+to, a pixel cache. The validity of these format specifications
+depends on whether the Image pixels are in RGB format, RGBA format,
+or CMYK format. The pixel Quantum size is determined by the Image
+depth (eight or sixteen bits).
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>RGB(A) Image Quantums</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>IndexQuantum</P>
+ </TD>
+ <TD>
+ <P>PseudoColor colormap indices (valid only for image with
+ colormap)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RedQuantum</P>
+ </TD>
+ <TD>
+ <P>Red pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GreenQuantum</P>
+ </TD>
+ <TD>
+ <P>Green pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BlueQuantum</P>
+ </TD>
+ <TD>
+ <P>Blue pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>OpacityQuantum</P>
+ </TD>
+ <TD>
+ <P>Opacity (Alpha) Quantum</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>CMY(K) Image Quantum</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CyanQuantum</P>
+ </TD>
+ <TD>
+ <P>Cyan pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>MagentaQuantum</P>
+ </TD>
+ <TD>
+ <P>Magenta pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>YellowQuantum</P>
+ </TD>
+ <TD>
+ <P>Yellow pixel Quantum</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>BlackQuantum</P>
+ </TD>
+ <TD>
+ <P>Black pixel Quantum</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Grayscale Image
+Quantums</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GrayQuantum</P>
+ </TD>
+ <TD>
+ <P>Gray pixel</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>GrayOpacityQuantum</P>
+ </TD>
+ <TD>
+ <P>Pixel opacity</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Entire Pixels
+(Expressed in Byte Order)</B></P>
+<TABLE COLS=2 WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RGBQuantum</P>
+ </TD>
+ <TD>
+ <P>RGB pixel (24 or 48 bits)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RGBAQuantum</P>
+ </TD>
+ <TD>
+ <P>RGBA pixel (32 or 64 bits)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CMYKQuantum</P>
+ </TD>
+ <TD>
+ <P>CMYK pixel (32 or 64 bits)</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="RenderingIntent"></A><IMG SRC="right_triangle.png" NAME="Graphic20" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">RenderingIntent</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P>Rendering intent is a concept defined by <A HREF="http://www.color.org/">ICC</A>
+Spec ICC.1:1998-09, "File Format for Color Profiles".
+ImageMagick uses <I>RenderingIntent</I> in order to support ICC
+Color Profiles.
+</P>
+<P STYLE="margin-bottom: 0in">From the specification: "Rendering
+intent specifies the style of reproduction to be used during the
+evaluation of this profile in a sequence of profiles. It applies
+specifically to that profile in the sequence and not to the entire
+sequence. Typically, the user or application will set the rendering
+intent dynamically at runtime or embedding time."
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>RenderingIntent</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedIntent</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SaturationIntent</P>
+ </TD>
+ <TD>
+ <P>A rendering intent that specifies the saturation of the pixels
+ in the image is preserved perhaps at the expense of accuracy in
+ hue and lightness.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PerceptualIntent</P>
+ </TD>
+ <TD>
+ <P>A rendering intent that specifies the full gamut of the image
+ is compressed or expanded to fill the gamut of the destination
+ device. Gray balance is preserved but colorimetric accuracy might
+ not be preserved.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>AbsoluteIntent</P>
+ </TD>
+ <TD>
+ <P>Absolute colorimetric</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>RelativeIntent</P>
+ </TD>
+ <TD>
+ <P>Relative colorimetric</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="ResolutionType"></A><IMG SRC="right_triangle.png" NAME="Graphic21" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">ResolutionType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">By default, ImageMagick defines
+resolutions in pixels per inch. <I>ResolutionType</I> provides a
+means to adjust this.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ResolutionType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UndefinedResolution</P>
+ </TD>
+ <TD>
+ <P>Unset value.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PixelsPerInchResolution</P>
+ </TD>
+ <TD>
+ <P>Density specifications are specified in units of pixels per
+ inch (english units).</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>PixelsPerCentimeterResolution</P>
+ </TD>
+ <TD>
+ <P>Density specifications are specified in units of pixels per
+ centimeter (metric units).</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="StorageType"></A><IMG SRC="right_triangle.png" NAME="Graphic22" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">StorageType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>StorageType</I> enumerations are
+used to specify the storage format of pixels in the source or
+destination pixel array.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>StorageType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CharPixel</P>
+ </TD>
+ <TD>
+ <P>Character type</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ShortPixel</P>
+ </TD>
+ <TD>
+ <P>Short type</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>IntegerPixel</P>
+ </TD>
+ <TD>
+ <P>Integer type</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>FloatPixel</P>
+ </TD>
+ <TD>
+ <P>Float type</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>DoublePixel</P>
+ </TD>
+ <TD>
+ <P>Double type</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="StretchType"></A><IMG SRC="right_triangle.png" NAME="Graphic23" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">StretchType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>StretchType</I> enumerations are
+used to specify the relative width of a font to the regular width for
+the font family. If the width is not important, the <I>AnyStretch</I>
+enumeration may be specified for a wildcard match.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>StretchType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>AnyStretch</P>
+ </TD>
+ <TD>
+ <P>Wildcard match for font stretch</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NormalStretch</P>
+ </TD>
+ <TD>
+ <P>Normal width font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UltraCondensedStretch</P>
+ </TD>
+ <TD>
+ <P>Ultra-condensed (narrowest) font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ExtraCondensedStretch</P>
+ </TD>
+ <TD>
+ <P>Extra-condensed font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>CondensedStretch</P>
+ </TD>
+ <TD>
+ <P>Condensed font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SemiCondensedStretch</P>
+ </TD>
+ <TD>
+ <P>Semi-Condensed font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>SemiExpandedStretch</P>
+ </TD>
+ <TD>
+ <P>Semi-Expanded font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ExpandedStretch</P>
+ </TD>
+ <TD>
+ <P>Expanded font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ExtraExpandedStretch</P>
+ </TD>
+ <TD>
+ <P>Extra-Expanded font</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>UltraExpandedStretch</P>
+ </TD>
+ <TD>
+ <P>Ultra-expanded (widest) font</P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
+ <TR>
+ <TD BGCOLOR="#52799e">
+ <P ALIGN=LEFT><A NAME="StyleType"></A><IMG SRC="right_triangle.png" NAME="Graphic24" ALT=">" ALIGN=BOTTOM WIDTH=15 HEIGHT=14 BORDER=0><B><FONT SIZE=4><FONT FACE="Helvetica, Arial"><FONT COLOR="#ffffff">StyleType</FONT></FONT></FONT></B></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in">The <I>StyleType</I> enumerations are
+used to specify the style (e.g. Italic) of a font. If the style is
+not important, the <I>AnyStyle</I> enumeration may be specified for a
+wildcard match.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>StyleType</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2 BGCOLOR="#cccccc">
+ <TR>
+ <TD>
+ <P ALIGN=CENTER><B>Enumeration</B></P>
+ </TD>
+ <TD>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>AnyStyle</P>
+ </TD>
+ <TD>
+ <P>Wildcard match for font style</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>NormalStyle</P>
+ </TD>
+ <TD>
+ <P>Normal font style</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ItalicStyle</P>
+ </TD>
+ <TD>
+ <P>Italic font style</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P>ObliqueStyle</P>
+ </TD>
+ <TD>
+ <P>Oblique font style</P>
+ </TD>
+ </TR>
+</TABLE>
+<P><BR><BR>
+</P>
+</BODY>
+</HTML>
diff --git a/www/Magick++/Exception.html b/www/Magick++/Exception.html
new file mode 100644
index 0000000..4082090
--- /dev/null
+++ b/www/Magick++/Exception.html
@@ -0,0 +1,476 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE>Magick::Exception</TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice 7 (Solaris Sparc)">
+ <META NAME="AUTHOR" CONTENT="Bob Friesenhahn">
+ <META NAME="CREATED" CONTENT="20020805;15113101">
+ <META NAME="CHANGEDBY" CONTENT="Robert Friesenhahn">
+ <META NAME="CHANGED" CONTENT="20040819;11571100">
+ <META NAME="DESCRIPTION" CONTENT="Documentation for Magick::Exception class">
+ <STYLE>
+ <!--
+ @page { size: 8.5in 11in }
+ TD P { color: #000000 }
+ H1 { color: #000000 }
+ P { color: #000000 }
+ PRE { color: #000000 }
+ A:link { color: #0000ee }
+ A:visited { color: #551a8b }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff" DIR="LTR">
+<H1 ALIGN=CENTER>Magick::Exception Classes</H1>
+<P><I>Exception</I> represents the base class of objects thrown when
+Magick++reports an error. Magick++ throws C++ exceptions synchronous
+with the operation where the error occurred. This allows errors to be
+trapped within the enclosing code (perhaps the code to process a
+single image) while allowing the code to be written with a simple
+coding style.</P>
+<P>A try/catch block should be placed around any sequence of
+operations which can be considered an important body of work. For
+example, if your program processes lists of images and some of these
+images may be defective, by placing the try/catch block around the
+entire sequence of code that processes one image (including
+instantiating the image object), you can minimize the overhead of
+error checking while ensuring that all objects created to deal with
+that object are safely destroyed (C++ exceptions unroll the stack
+until the enclosing try block, destroying any created objects).
+</P>
+<P>The pseudo code for the main loop of your program may look like:
+</P>
+<PRE><FONT COLOR="#000066"><FONT SIZE=2>for infile in list</FONT></FONT>
+<FONT COLOR="#000066"><FONT SIZE=2>{</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>try {</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Construct an image instance first so that we don't have to worry</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// about object construction failure due to a minor warning exception</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// being thrown.</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>Magick::Image image; </FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>try {</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Try reading image file</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>image.read(infile);</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>catch( Magick::WarningCoder &warning )</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>{</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Process coder warning while loading file (e.g. TIFF warning)</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Maybe the user will be interested in these warnings (or not).</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// If a warning is produced while loading an image, the image</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// can normally still be used (but not if the warning was about</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// something important!)</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>cerr << “Coder Warning: “ << warning.what() << endl;</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>catch( Magick::Warning &warning )</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>{</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Handle any other Magick++ warning.</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>cerr << “Warning: “ << warning.what() << endl;</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>catch( Magick::BlobError &error ) </FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>{ </FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Process Magick++ file open error</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>cerr << “Error: “ << error.what() << endl;</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>continue; // Try next image.</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>try {</FONT></FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">image.rotate(90);</FONT></FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">image.write(“outfile”);</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>catch ( Magick::Exception & error)</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>{</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// Handle problem while rotating or writing outfile.</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>cerr << “Caught Magick++ exception: “ << error.what() << endl;</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>catch( std::exception &error )</FONT> </FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">{</FONT> </FONT>
+ <FONT SIZE=2>// P<FONT COLOR="#000066">rocess any other exceptions derived from standard C++ exception</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>err << “Caught C++ STD exception: “ << error.what() << endl;</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>}</FONT> </FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">catch( ... )</FONT> </FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">{</FONT> </FONT>
+ <FONT SIZE=2>// P<FONT COLOR="#000066">rocess *any* exception (last-ditch effort). There is not a lot</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// you can do here other to retry the operation that failed, or exit</FONT></FONT>
+<FONT COLOR="#000066"> <FONT SIZE=2>// the program. </FONT></FONT>
+ <FONT SIZE=2><FONT COLOR="#000066">}</FONT></FONT>
+<FONT COLOR="#000066"><FONT SIZE=2>}</FONT></FONT></PRE><P>
+The desired location and number of try/catch blocks in your program
+depends how sophisticated its error handling must be. Very simple
+programs may use just one try/catch block.</P>
+<P>The <I>Exception</I> class is derived from the C++ standard
+exception class. This means that it contains a C++ string containing
+additional information about the error (e.g to display to the user).
+Obtain access to this string via the what() method. For
+example:
+</P>
+<P><TT><FONT COLOR="#000066"> catch( Exception &error_ )</FONT></TT>
+<BR><TT><FONT COLOR="#000066"> {</FONT></TT> <BR><TT><FONT COLOR="#000066">
+cout << "Caught exception: " << error_.what()
+<< endl;</FONT></TT> <BR><TT><FONT COLOR="#000066">
+}</FONT></TT>
+</P>
+<P>The classes <I>Warning</I> and <I>Error</I> derive from the
+<I>Exception</I> class. Exceptions derived from <I>Warning</I> are
+thrown to represent non-fatal errors which may effect the
+completeness or quality of the result (e.g. one image provided as an
+argument to montage is defective). In most cases, a <I>Warning</I>
+exception may be ignored by catching it immediately, processing it
+(e.g. printing a diagnostic) and continuing on. Exceptions derived
+from <I>Error</I> are thrown to represent fatal errors that can not
+produce a valid result (e.g. attempting to read a file which does not
+exist).
+</P>
+<P STYLE="margin-bottom: 0in">The specific derived exception classes
+are shown in the following tables:
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Warning Sub-Classes</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=70*>
+ <COL WIDTH=186*>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2><B>Warning</B></FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P ALIGN=CENTER><FONT SIZE=2><B>Warning Description</B></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningUndefined</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Unspecified warning type.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningBlob</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium; text-decoration: none"><FONT SIZE=2>NOT
+ CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningCache</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium; text-decoration: none"><FONT SIZE=2>NOT
+ CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningCoder</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warnings issued by some coders.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningConfigure</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium; text-decoration: none"><FONT SIZE=2>NOT
+ CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningCorruptImage</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warning issued when an image is determined to be
+ corrupt.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningDelegate</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warnings reported by the delegate (interface to
+ external programs) subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningDraw</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warnings reported by the rendering subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningFileOpen</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warning reported when The image file could not be
+ opened (permission problem, wrong file type, or does not exist).</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningImage</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningMissingDelegate</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningModule</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningMonitor</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningOption</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warning reported when an option is malformed or
+ out of range.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningRegistry</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningResourceLimit</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warning reported when a program resource is
+ exhausted (e.g. not enough memory).</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningStream</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningType</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=27%>
+ <P ALIGN=CENTER><FONT SIZE=2>WarningXServer</FONT></P>
+ </TD>
+ <TD WIDTH=73%>
+ <P><FONT SIZE=2>Warnings reported by the X11 subsystem.</FONT></P>
+ </TD>
+ </TR>
+</TABLE>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Error Sub-Classes</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=71*>
+ <COL WIDTH=185*>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2><B>Error</B></FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P ALIGN=CENTER><FONT SIZE=2><B>Error Description</B></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorUndefined</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Unspecified error type.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorBlob</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported by BLOB I/O subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorCache</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported by the pixel cache subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorCoder</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported by coders (image format support).</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorConfigure</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported while loading configuration files.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorCorruptImage</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported when the image file is corrupt.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorDelegate</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the delegate (interface to
+ external programs) subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorDraw</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported while drawing on image.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorFileOpen</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported when the image file can not be
+ opened.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorImage</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported while drawing.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorMissingDelegate</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported when an add-on library or program
+ is necessary in order to support the requested operation.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorModule</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the module loader subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorMonitor</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P STYLE="font-weight: medium"><FONT SIZE=2>NOT CURRENTLY USED</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorOption</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported when an option is malformed or out
+ of range.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorRegistry</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the image/BLOB registry
+ subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorResourceLimit</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Error reported when a program resource is
+ exhausted (e.g. not enough memory).</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorStream</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the pixel stream subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorType</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the type (font) rendering
+ subsystem.</FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=28%>
+ <P ALIGN=CENTER><FONT SIZE=2>ErrorXServer</FONT></P>
+ </TD>
+ <TD WIDTH=72%>
+ <P><FONT SIZE=2>Errors reported by the X11 subsystem.</FONT></P>
+ </TD>
+ </TR>
+</TABLE>
+<P><BR><BR>
+</P>
+</BODY>
+</HTML>
diff --git a/www/Magick++/FormatCharacters.html b/www/Magick++/FormatCharacters.html
new file mode 100644
index 0000000..254f17f
--- /dev/null
+++ b/www/Magick++/FormatCharacters.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Special Format Characters</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;18011737">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;18014044">
+<meta name="DESCRIPTION" content="Annotation format character description.">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1 align="center">Special Format Characters</h1>
+<p style="margin-bottom: 0cm">The Magick::Image methods <a href="Image.html#annotate"><i>annotate</i></a>, <a href="Image.html#draw"><i>draw</i></a>, <a href="Image.html#label"><i>label</i></a>, and the template function <i>montageImages</i> support special format characters contained in the argument text. These format characters work similar to C's <i>printf</i>. Whenever a format character appears in the text, it is replaced with the equivalent attribute text. The available format characters are shown in the following table.</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Format Characters</b></p>
+<center>
+<table width="50%" border="1" cellpadding="2" cellspacing="3">
+<col width="131*">
+<col width="125*">
+<tr>
+<td width="51%">
+<p align="center"><b>Format Character</b></p></td>
+<td width="49%">
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%b</p></td>
+<td width="49%">
+<p>file size</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%d</p></td>
+<td width="49%">
+<p>directory</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%e</p></td>
+<td width="49%">
+<p>filename extension</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%f</p></td>
+<td width="49%">
+<p>filename</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%h</p></td>
+<td width="49%">
+<p>height</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%m</p></td>
+<td width="49%">
+<p>magick (e.g GIF)</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%p</p></td>
+<td width="49%">
+<p>page number</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%s</p></td>
+<td width="49%">
+<p>scene number</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%t</p></td>
+<td width="49%">
+<p>top of filename</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%w</p></td>
+<td width="49%">
+<p>width</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%x</p></td>
+<td width="49%">
+<p>x resolution</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">%y</p></td>
+<td width="49%">
+<p>y resolution</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">\n</p></td>
+<td width="49%">
+<p>newline</p></td></tr>
+<tr>
+<td width="51%">
+<p align="center">\r</p></td>
+<td width="49%">
+<p>carriage return</p></td></tr></table></center>
+</body>
+</html>
diff --git a/www/Magick++/Future.html b/www/Magick++/Future.html
new file mode 100644
index 0000000..f542f3e
--- /dev/null
+++ b/www/Magick++/Future.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick++ Future</title>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;17562470">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;18005350">
+<meta name="DESCRIPTION" content="C++ API for ImageMagick">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1 align="center">Future Plans</h1>
+<p>A challenging release plan has been developed for Magick++. What actually gets accomplished depends on the level of support from users and developers. Volunteers are needed. In particular, work on the CORBA/COM IDL-base API may proceed in parallel with other development. The following is the tentative development and release plan (step 1.0 is complete).</p>
+<p><b>1.0</b> API for operating on individual images and STL containers of images</p>
+<blockquote>This version supports all ImageMagick API operations which operate on a single image as well as providing <a href="http://www.sgi.com/tech/stl/">STL</a> container support for operating on multiple images (on any STL compatable container which supports a forward input iterator).</blockquote>
+<blockquote>STL is used as the framework in which to store images. Template functions (e.g. montage) are provided to build the image lists required by ImageMagick and then invoke the list-oriented ImageMagick API. STL is quite powerful yet easy to use. At this stage Magick++ has matched what is currently available/possible using the PerlMagick API due to leveraging the power of STL.</blockquote>
+<p><b>2.0</b> <a href="http://www.omg.org/">CORBA</a> and/or COM IDL based client API with server implementation for executing image processing operations on a remote (or local) computer.</p>
+<blockquote>This version provides an IDL-based API. A C++ wrapper API compatable with that developed for release 2.0 is available for use by clients. Client wrappers may also be developed for other languages (e.g. Java). COM and CORBA servers are provided which are implemented in terms of the Magick++ API in order to satisfy client requests (which may run a different operating system than the server).</blockquote>
+<p><b>3.0</b> Integration of IDL-based API with an existing open source work-queing system in order to load-share image processing tasks and the image frame and file level across a large number of machines.</p>
+<blockquote>This version is the culmination of the effort. By intelligently spreading work over many machines, the performance of ImageMagick is magnified. In order for this to be a success algorithms for efficient transfer of image data must be developed. Algorithms that take into account processor afinity and the CPU vs I/O tradeoff for the task to be performed must be developed. At this point in time, the queuing system to be employed has not been identified.</blockquote>
+</body>
+</html>
diff --git a/www/Magick++/Geometry.html b/www/Magick++/Geometry.html
new file mode 100644
index 0000000..136c5b0
--- /dev/null
+++ b/www/Magick++/Geometry.html
@@ -0,0 +1,839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE>Magick::Geometry</TITLE>
+ <META NAME="GENERATOR" CONTENT="StarOffice 7 (Solaris Sparc)">
+ <META NAME="AUTHOR" CONTENT="Bob Friesenhahn">
+ <META NAME="CREATED" CONTENT="20020805;15172876">
+ <META NAME="CHANGEDBY" CONTENT="Bob Friesenhahn">
+ <META NAME="CHANGED" CONTENT="20050103;22481700">
+ <META NAME="DESCRIPTION" CONTENT="Documentation for Magick::Geometry class">
+ <STYLE>
+ <!--
+ TD P { color: #000000 }
+ H1 { color: #000000 }
+ P { color: #000000 }
+ H3 { color: #000000 }
+ A:link { color: #0000ee }
+ A:visited { color: #551a8b }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff" DIR="LTR">
+<H1 ALIGN=CENTER>Magick::Geometry</H1>
+<P>Geometry provides a convenient means to specify a geometry
+argument. The object may be initialized from a C string or C++ string
+containing a geometry specification. It may also be initialized by
+more efficient parameterized constructors.
+</P>
+<H3><A NAME="X11GeometrySpecifications"></A>X11 Geometry
+Specifications</H3>
+<P>X11 geometry specifications are in the form
+<TT>"<width>x<height>{+-}<xoffset>{+-}<yoffset>"</TT>
+(where <I>width</I>, <I>height</I>, <I>xoffset</I>, and <I>yoffset</I>
+are numbers) for specifying the size and placement location for an
+object.
+</P>
+<P STYLE="margin-bottom: 0in">The <I>width</I> and <I>height</I>
+parts of the geometry specification are measured in pixels. The
+<I>xoffset</I> and <I>yoffset</I> parts are also measured in pixels
+and are used to specify the distance of the placement coordinate from
+the left and top and edges of the image, respectively. Both types of
+offsets are measured from the indicated edge of the object to the
+corresponding edge of the image. The X offset may be specified in the
+following ways:
+</P>
+<CENTER>
+ <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=21*>
+ <COL WIDTH=235*>
+ <TR>
+ <TD WIDTH=8%>
+ <P>+<I>xoffset</I></P>
+ </TD>
+ <TD WIDTH=92%>
+ <P>The left edge of the object is to be placed <I>xoffset</I>
+ pixels in from the <B>left edge </B>of the image.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=8%>
+ <P>-<I>xoffset</I></P>
+ </TD>
+ <TD WIDTH=92%>
+ <P>The left edge of the object is to be placed outside the image,
+ <I>xoffset</I> pixels out from the <B>left edge </B>of the image.</P>
+ </TD>
+ </TR>
+ </TABLE>
+</CENTER>
+<P STYLE="margin-bottom: 0in">The Y offset has similar meanings:
+</P>
+<CENTER>
+ <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=27*>
+ <COL WIDTH=229*>
+ <TR>
+ <TD WIDTH=11%>
+ <P>+<I>yoffset</I></P>
+ </TD>
+ <TD WIDTH=89%>
+ <P>The top edge of the object is to be <I>yoffset</I> pixels
+ <B>below</B> the <B>top edge </B>of the image.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=11%>
+ <P>-<I>yoffset</I></P>
+ </TD>
+ <TD WIDTH=89%>
+ <P>The top edge of the object is to be <I>yoffset</I> pixels
+ <B>above</B> the <B>top edge</B> of the image.</P>
+ </TD>
+ </TR>
+ </TABLE>
+</CENTER>
+<P>Offsets must be given as pairs; in other words, in order to
+specify either <I>xoffset</I> or <I>yoffset</I> both must be present.
+</P>
+<H3><A NAME="ExtendedX11GeometrySpecifications"></A>ImageMagick
+Extensions To X11 Geometry Specifications</H3>
+<P STYLE="margin-bottom: 0in">ImageMagick has added a number of
+qualifiers to the standard geometry string for use when resizing
+images. The form of an extended geometry string is
+"<TT><width>x<height>{+-}<xoffset>{+-}<yoffset>{%}{!}{<}{>}".
+Extended geometry strings should <B>only</B> be used <B>when resizing
+an image</B>. Using an extended geometry string for other
+applications may cause the API call to fail. </TT>The available
+qualifiers are shown in the following table:
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>ImageMagick Geometry
+Qualifiers</B></P>
+<CENTER>
+ <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=36*>
+ <COL WIDTH=220*>
+ <TR>
+ <TD WIDTH=14%>
+ <P ALIGN=CENTER><B>Qualifier</B></P>
+ </TD>
+ <TD WIDTH=86%>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=14%>
+ <P ALIGN=CENTER><B>%</B></P>
+ </TD>
+ <TD WIDTH=86%>
+ <P>Interpret width and height as a <B>percentage</B> of the
+ current size.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=14%>
+ <P ALIGN=CENTER><B>!</B></P>
+ </TD>
+ <TD WIDTH=86%>
+ <P>Resize to width and height <B>exactly</B>, loosing original
+ aspect ratio.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=14%>
+ <P ALIGN=CENTER><B><</B></P>
+ </TD>
+ <TD WIDTH=86%>
+ <P>Resize only if the image is <B>smaller</B> than the geometry
+ specification.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=14%>
+ <P ALIGN=CENTER><B>></B></P>
+ </TD>
+ <TD WIDTH=86%>
+ <P>Resize only if the image is <B>greater</B> than the geometry
+ specification.</P>
+ </TD>
+ </TR>
+ </TABLE>
+</CENTER>
+<H3><A NAME="PostscriptPageSize"></A>Postscript Page Size Extension
+To Geometry Specifications</H3>
+<P>Any geometry string specification supplied to the Geometry
+constructor is considered to be a Postscript page size nickname if
+the first character is not numeric. The Geometry constructor converts
+these page size specifications into the equivalent numeric geometry
+string specification (preserving any offset component) prior to
+conversion to the internal object format. Postscript page size
+specifications are short-hand for the pixel geometry required to fill
+a page of that size. Since the 11x17 inch page size used in the US
+starts with a digit, it is not supported as a Postscript page size
+nickname. Instead, substitute the geometry specification "<TT>792x1224>"</TT>
+when 11x17 output is desired.
+</P>
+<P STYLE="margin-bottom: 0in">An example of a Postscript page size
+specification is <TT>"letter+43+43>"</TT>.
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Postscript Page Size
+Nicknames</B></P>
+<CENTER>
+ <TABLE WIDTH=70% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=105*>
+ <COL WIDTH=151*>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><B>Postscript Page Size Nickname</B></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><B>Equivalent Extended Geometry Specification</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>Ledger</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1224x792></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>Legal</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>612x1008></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>Letter</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>612x792></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>LetterSmall</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>612x792></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>ArchE</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>2592x3456></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>ArchD</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1728x2592></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>ArchC</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1296x1728></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>ArchB</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>864x1296></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>ArchA</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>648x864></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A0</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>2380x3368></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A1</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1684x2380></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A2</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1190x1684></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A3</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>842x1190></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A4</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>595x842></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A4Small</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>595x842></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A5</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>421x595></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A6</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>297x421></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A7</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>210x297></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A8</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>148x210></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A9</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>105x148></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>A10</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>74x105></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B0</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>2836x4008></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B1</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>2004x2836></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B2</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1418x2004></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B3</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1002x1418></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B4</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>709x1002></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>B5</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>501x709></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C0</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>2600x3677></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C1</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1837x2600></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C2</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>1298x1837></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C3</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>918x1298></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C4</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>649x918></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C5</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>459x649></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>C6</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>323x459></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>Flsa</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>612x936></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>Flse</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>612x936></FONT></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=41%>
+ <P ALIGN=CENTER><FONT SIZE=2>HalfLetter</FONT></P>
+ </TD>
+ <TD WIDTH=59%>
+ <P ALIGN=CENTER><FONT SIZE=2>396x612></FONT></P>
+ </TD>
+ </TR>
+ </TABLE>
+</CENTER>
+<H3 ALIGN=CENTER>Geometry Methods</H3>
+<P STYLE="margin-bottom: 0in">Geometry provides methods to initialize
+its value from strings, from a set of parameters, or via attributes.
+The methods available for use in Geometry are shown in the following
+table:
+</P>
+<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Geometry Methods</B></P>
+<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
+ <COL WIDTH=25*>
+ <COL WIDTH=26*>
+ <COL WIDTH=111*>
+ <COL WIDTH=94*>
+ <TR>
+ <TD WIDTH=10%>
+ <P ALIGN=CENTER><B>Method</B></P>
+ </TD>
+ <TD WIDTH=10%>
+ <P ALIGN=CENTER><B>Return Type</B></P>
+ </TD>
+ <TD WIDTH=44%>
+ <P ALIGN=CENTER><B>Signature(s)</B></P>
+ </TD>
+ <TD WIDTH=37%>
+ <P ALIGN=CENTER><B>Description</B></P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=3 WIDTH=10%>
+ <P>Geometry</P>
+ </TD>
+ <TD ROWSPAN=3 WIDTH=10% BGCOLOR="#666666">
+ <P> </P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>unsigned int width_, unsigned int height_, unsigned int xOff_ =
+ 0, unsigned int yOff_ = 0, bool xNegative_ = false, bool
+ yNegative_ = false</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Construct X11 geometry via explicit parameters.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=44%>
+ <P>const string geometry_</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Construct geometry from C++ string</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=44%>
+ <P>const char * geometry_</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Construct geometry from C string</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>width</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>unsigned int width_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Width</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>unsigned int</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>height</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>unsigned int height_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Height</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>unsigned int</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>xOff</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>unsigned int xOff_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>X offset from origin</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>int</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>yOff</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>unsigned int yOff_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Y offset from origin</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>int</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>xNegative</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool xNegative_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Sign of X offset negative? (X origin at right)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>yNegative</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool yNegative_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Sign of Y offset negative? (Y origin at bottom)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>percent</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool percent_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Width and height are expressed as percentages</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>aspect</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool aspect_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Resize without preserving aspect ratio (!)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>greater</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool greater_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Resize if image is greater than size (>)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>less</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool less_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Resize if image is less than size (<)</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD ROWSPAN=2 WIDTH=10%>
+ <P>isValid</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>void</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>bool isValid_</P>
+ </TD>
+ <TD ROWSPAN=2 WIDTH=37%>
+ <P>Does object contain a valid geometry? May be set to <I>false</I>
+ in order to invalidate an existing geometry object.</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>bool</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>void</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>operator =</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>const Geometry&</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>const string geometry_</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Set geometry via C++ string</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>operator =</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>const Geometry&</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>const char * geometry_</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Set geometry via C string</P>
+ </TD>
+ </TR>
+ <TR>
+ <TD WIDTH=10%>
+ <P>operator string</P>
+ </TD>
+ <TD WIDTH=10%>
+ <P>string</P>
+ </TD>
+ <TD WIDTH=44%>
+ <P>Geometry&</P>
+ </TD>
+ <TD WIDTH=37%>
+ <P>Obtain C++ string representation of geometry</P>
+ </TD>
+ </TR>
+</TABLE>
+<P><BR><BR>
+</P>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/www/Magick++/Image.fig b/www/Magick++/Image.fig
new file mode 100644
index 0000000..10d0e2c
--- /dev/null
+++ b/www/Magick++/Image.fig
@@ -0,0 +1,98 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+0
+1200 2
+6 5250 4125 7425 5175
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 5325 4350 7425 4350 7425 5175 5325 5175 5325 4350
+4 1 0 0 0 0 10 0.0000 4 135 810 6450 4275 class Options\001
+4 2 0 0 0 0 8 0.0000 4 135 1785 7350 4575 MagickLib::ImageInfo* _imageInfo\001
+4 2 0 0 0 0 8 0.0000 4 135 2040 7350 4800 MagickLib::QuantizeInfo* _quantizeInfo\001
+4 2 0 0 0 0 8 0.0000 4 135 1875 7350 5025 MagickLib::QuantizeInfo* _drawInfo\001
+-6
+6 600 4800 2400 5625
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 600 5025 2400 5025 2400 5625 600 5625 600 5025
+4 1 0 0 0 0 10 0.0000 4 135 690 1500 4950 class Image\001
+4 2 0 0 0 0 8 0.0000 4 135 1395 2325 5400 class ImageRef* _imageRef\001
+-6
+6 1425 3600 1575 4650
+1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 3675 75 75 1500 3675 1500 3750
+1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 4125 75 75 1500 4125 1500 4200
+1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 4575 75 75 1500 4575 1500 4650
+-6
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 4800 2400 5325 2400
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 4800 2775 5550 4350
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 2400 5325 3075 3600
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 2400 3000 3075 3000
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 2400 1800 3075 2325
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 7425 4500 8100 3900
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 7425 2250 8100 2250
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 4
+ 1 1 1.00 60.00 120.00
+ 7425 2550 7800 2550 7800 2850 8100 2850
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 600 2700 2400 2700 2400 3300 600 3300 600 2700
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 600 1500 2400 1500 2400 2100 600 2100 600 1500
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 8100 2100 9300 2100 9300 2400 8100 2400 8100 2100
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 8100 2700 9300 2700 9300 3000 8100 3000 8100 2700
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 8100 3600 9300 3600 9300 4200 8100 4200 8100 3600
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 8100 4500 9300 4500 9300 5100 8100 5100 8100 4500
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 8100 5400 9300 5400 9300 6000 8100 6000 8100 5400
+2 2 0 1 11 11 100 0 25 0.000 0 0 7 0 0 5
+ 75 300 9825 300 9825 6150 75 6150 75 300
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 7425 4800 8100 4800
+2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 7425 5025 8100 5700
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 3075 2100 4800 2100 4800 3900 3075 3900 3075 2100
+2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5
+ 5325 2100 7425 2100 7425 2700 5325 2700 5325 2100
+4 1 0 0 0 18 14 0.0000 4 210 3300 5250 900 Magick++ Image Data Structures\001
+4 1 0 0 0 0 10 0.0000 4 135 690 1575 1425 class Image\001
+4 1 0 0 0 0 10 0.0000 4 135 690 1500 2625 class Image\001
+4 1 0 0 0 0 10 0.0000 4 135 1725 8700 3525 struct MagickLib::ImageInfo\001
+4 1 0 0 0 0 10 0.0000 4 135 1890 8700 4425 struct MagickLib::QuantizeInfo\001
+4 2 0 0 0 0 8 0.0000 4 135 1395 2325 1875 class ImageRef* _imageRef\001
+4 2 0 0 0 0 8 0.0000 4 135 1395 2325 3075 class ImageRef* _imageRef\001
+4 2 0 0 0 0 8 0.0000 4 135 1665 4725 2475 struct MagickLib::Image* _image\001
+4 1 0 0 0 0 10 0.0000 4 135 1680 8700 5325 struct MagickLib::DrawInfo\001
+4 2 0 0 0 0 8 0.0000 4 135 1485 4725 3750 class MutexLock _mutexLock\001
+4 2 0 0 0 0 8 0.0000 4 135 1140 4725 2850 class Options* _options\001
+4 2 0 0 0 0 8 0.0000 4 135 390 4725 3150 long _id\001
+4 2 0 0 0 0 8 0.0000 4 135 645 4725 3450 int _refCount\001
+4 1 0 0 0 0 10 0.0000 4 135 675 8708 2295 Image Data\001
+4 1 0 0 0 0 10 0.0000 4 135 1005 8700 2902 Image Attributes\001
+4 1 0 0 0 0 10 0.0000 4 135 1485 6450 2025 struct MagickLib::Image\001
+4 1 0 0 0 0 10 0.0000 4 135 900 3975 1950 class ImageRef\001
+4 1 0 0 0 0 10 0.0000 4 105 150 2625 2925 ref\001
+4 1 0 0 0 0 10 0.0000 4 105 150 2625 1875 ref\001
+4 1 0 0 0 0 10 0.0000 4 105 150 2625 4425 ref\001
diff --git a/www/Magick++/Image.html b/www/Magick++/Image.html
new file mode 100644
index 0000000..bd1c2bd
--- /dev/null
+++ b/www/Magick++/Image.html
@@ -0,0 +1,2850 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR"
+ content="Mozilla/4.78 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
+ <meta name="Author" content="Bob Friesenhahn">
+ <meta name="Description" content="Description of Magick::Image Class">
+ <title>Magick::Image Class</title>
+</head>
+<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b"
+ alink="#ff0000">
+<center>
+<h1> Magick::Image Class</h1>
+</center>
+<h4> Quick Contents</h4>
+<ul>
+ <li> <a href="#BLOBs">BLOBs</a> </li>
+ <li> <a href="#Constructors">Constructors</a> </li>
+ <li> <a href="#Image%20Manipulation%20Methods">Image Manipulation
+Methods</a> </li>
+ <li> <a href="#Image%20Attributes">Image Attributes</a> </li>
+ <li> <a href="#Raw%20Image%20Pixel%20Access">Low-Level Image Pixel
+Access</a> </li>
+</ul>
+<hr width="100%">Image is the primary object in Magick++ and represents
+a single image frame (see <a href="ImageDesign.html">design</a> ). The <a
+ href="STL.html">STL interface</a> <b>must</b> be used to operate on
+image sequences or images (e.g. of format GIF, TIFF, MIFF, Postscript,
+& MNG) which are comprized of multiple image frames. Individual
+frames of a multi-frame image may be requested by adding array-style
+notation to the end of the file name (e.g. "animation.gif[3]" retrieves
+the fourth frame of a GIF animation. Various image manipulation
+operations may be applied to the image. Attributes may be set on the
+image to influence the operation of the manipulation operations. The <a
+ href="Pixels.html"> Pixels</a> class provides low-level access to image
+pixels. As a convenience, including <tt><font color="#663366"><Magick++.h></font></tt>
+is sufficient in order to use the complete Magick++ API. The Magick++
+API is enclosed within the <i>Magick</i> namespace so you must either
+add the prefix "<tt> Magick::</tt> " to each class/enumeration name or add
+the statement "<tt> using namespace Magick;</tt>" after including the <tt>Magick++.h</tt>
+header.
+<p>The preferred way to allocate Image objects is via automatic
+allocation (on the stack). There is no concern that allocating Image
+objects on the stack will excessively enlarge the stack since Magick++
+allocates all large data objects (such as the actual image data) from
+the heap. Use of automatic allocation is preferred over explicit
+allocation (via <i>new</i>) since it is much less error prone and
+allows use of C++ scoping rules to avoid memory leaks. Use of automatic
+allocation allows Magick++ objects to be assigned and copied just like
+the C++ intrinsic data types (e.g. '<i>int</i> '), leading to clear and
+easy to read code. Use of automatic allocation leads to naturally
+exception-safe code since if an exception is thrown, the object is
+automatically deallocated once the stack unwinds past the scope of the
+allocation (not the case for objects allocated via <i>new</i> ). </p>
+<p>Image is very easy to use. For example, here is a the source to a
+program which reads an image, crops it, and writes it to a new file (the
+exception handling is optional but strongly recommended): </p>
+<blockquote><tt><font color="#000066">#include <Magick++.h></font></tt> <br>
+ <tt><font color="#000066">#include <iostream></font></tt> <br>
+ <tt><font color="#000066">using namespace std;</font></tt> <br>
+ <tt><font color="#000066">using namespace Magick;</font></tt> <br>
+ <tt><font color="#000066">int main(int argc,char **argv)</font></tt> <br>
+ <tt><font color="#000066">{</font></tt> <br>
+ <tt><font color="#000066"> // Construct the image object.
+Seperating image construction from the</font></tt> <br>
+ <tt><font color="#000066"> // the read operation ensures that a
+failure to read the image file</font></tt> <br>
+ <tt><font color="#000066"> // doesn't render the image object
+useless.</font></tt> <br>
+ <tt><font color="#000066"> Image image;</font></tt><tt><font
+ color="#000066"></font></tt>
+ <p><tt><font color="#000066"> try {</font></tt> <br>
+ <tt><font color="#000066"> // Read a file into
+image object</font></tt> <br>
+ <tt><font color="#000066"> image.read( "girl.gif" );</font></tt> </p>
+ <p><tt><font color="#000066"> // Crop the image to
+specified size</font></tt> (width, height, xOffset, yOffset)<br>
+ <tt><font color="#000066"> image.crop(
+Geometry(100,100, 100, 100) );</font></tt> </p>
+ <p><tt><font color="#000066"> // Write the image to
+a file</font></tt> <br>
+ <tt><font color="#000066"> image.write( "x.gif" );</font></tt> <br>
+ <tt><font color="#000066"> }</font></tt> <br>
+ <tt><font color="#000066"> catch( Exception &error_ )</font></tt> <br>
+ <tt><font color="#000066"> {</font></tt> <br>
+ <tt><font color="#000066"> cout
+<< "Caught exception: " << error_.what() << endl;</font></tt> <br>
+ <tt><font color="#000066"> return 1;</font></tt> <br>
+ <tt><font color="#000066"> }</font></tt> <br>
+ <tt><font color="#000066"> return 0;</font></tt> <br>
+ <tt><font color="#000066">}</font></tt></p>
+</blockquote>
+The following is the source to a program which illustrates the use of
+Magick++'s efficient reference-counted assignment and copy-constructor
+operations which minimize use of memory and eliminate unncessary copy
+operations (allowing Image objects to be efficiently assigned, and
+copied into containers). The program accomplishes the
+following:
+<ol>
+ <li> Read master image.</li>
+ <li> Assign master image to second image.</li>
+ <li> Zoom second image to the size 640x480.</li>
+ <li> Assign master image to a third image.</li>
+ <li> Zoom third image to the size 800x600.</li>
+ <li> Write the second image to a file.</li>
+ <li> Write the third image to a file.</li>
+</ol>
+<blockquote><tt><font color="#000066">#include <Magick++.h></font></tt> <br>
+ <tt><font color="#000066">#include <iostream></font></tt> <br>
+ <tt><font color="#000066">using namespace std;</font></tt> <br>
+ <tt><font color="#000066">using namespace Magick;</font></tt> <br>
+ <tt><font color="#000066">int main(int argc,char **argv)</font></tt> <br>
+ <tt><font color="#000066">{</font></tt> <br>
+ <tt><font color="#000066"> Image
+master("horse.jpg");</font></tt> <br>
+ <tt><font color="#000066"> Image second = master;</font></tt> <br>
+ <tt><font color="#000066"> second.zoom("640x480");</font></tt> <br>
+ <tt><font color="#000066"> Image third = master;</font></tt> <br>
+ <tt><font color="#000066"> third.zoom("800x600");</font></tt> <br>
+ <tt><font color="#000066">
+second.write("horse640x480.jpg");</font></tt> <br>
+ <tt><font color="#000066">
+third.write("horse800x600.jpg");</font></tt> <br>
+ <tt><font color="#000066"> return 0;</font></tt> <br>
+ <tt><font color="#000066">}</font></tt></blockquote>
+During the entire operation, a maximum of three images exist in memory
+and the image data is never copied.
+<p>The following is the source for another simple program which creates
+ a 100 by 100 pixel white image with a red pixel in the center and
+writes it to a file: </p>
+<blockquote><tt><font color="#000066">#include <Magick++.h></font></tt> <br>
+ <tt><font color="#000066">using namespace std;</font></tt> <br>
+ <tt><font color="#000066">using namespace Magick;</font></tt> <br>
+ <tt><font color="#000066">int main(int argc,char **argv)</font></tt> <br>
+ <tt><font color="#000066">{</font></tt> <br>
+ <tt><font color="#000066"> Image image( "100x100",
+"white" );</font></tt> <br>
+ <tt><font color="#000066"> image.pixelColor( 49,
+49, "red" );</font></tt> <br>
+ <tt><font color="#000066"> image.write(
+"red_pixel.png" );</font></tt> <br>
+ <tt><font color="#000066"> return 0;</font></tt> <br>
+ <tt><font color="#000066">}</font></tt></blockquote>
+If you wanted to change the color image to grayscale, you could add the
+lines:
+<p><tt><font color="#000066">
+image.quantizeColorSpace( GRAYColorspace );</font></tt> <br>
+<tt><font color="#000066"> image.quantizeColors( 256
+);</font></tt> <br>
+<tt><font color="#000066"> image.quantize( );</font></tt> </p>
+<p>or, more simply: </p>
+<p><tt><font color="#000066"> image.type(
+GrayscaleType );</font></tt> </p>
+<p>prior to writing the image. </p>
+<center>
+<h3> <a name="BLOBs"></a> BLOBs</h3>
+</center>
+While encoded images (e.g. JPEG) are most often written-to and
+read-from a disk file, encoded images may also reside in memory. Encoded
+images in memory are known as BLOBs (Binary Large OBjects) and may be
+represented using the <a href="Blob.html">Blob</a> class. The encoded
+image may be initially placed in memory by reading it directly from a
+file, reading the image from a database, memory-mapped from a disk
+file, or could be written to memory by Magick++. Once the encoded image
+has been placed within a Blob, it may be read into a Magick++ Image via
+a <a href="#constructor_blob">constructor</a> or <a href="#read">read()</a>
+. Likewise, a Magick++ image may be written to a Blob via <a
+ href="#write"> write()</a> .
+<p>An example of using Image to write to a Blob follows: <br>
+ </p>
+<blockquote><tt><font color="#000066">#include <Magick++.h></font></tt> <br>
+ <tt><font color="#000066">using namespace std;</font></tt> <br>
+ <tt><font color="#000066">using namespace Magick;</font></tt> <br>
+ <tt><font color="#000066">int main(int argc,char **argv)</font></tt> <br>
+ <tt><font color="#000066">{</font></tt> <br>
+ <tt><font color="#000066"> // Read GIF file from
+disk</font></tt> <br>
+ <tt><font color="#000066"> Image image(
+"giraffe.gif" );</font></tt>
+ <p><tt><font color="#000066"> // Write to BLOB in
+JPEG format</font></tt> <br>
+ <tt><font color="#000066"> Blob blob;</font></tt> <br>
+ <tt><font color="#000066"> image.magick( "JPEG" )
+// Set JPEG output format</font></tt> <br>
+ <tt><font color="#000066"> image.write( &blob );</font></tt> </p>
+ <p><tt><font color="#000066"> [ Use BLOB data (in
+JPEG format) here ]</font></tt> </p>
+ <p><tt><font color="#000066"> return 0;</font></tt> <br>
+ <tt><font color="#000066">}</font></tt></p>
+</blockquote>
+<p><br>
+likewise, to read an image from a Blob, you could use one of the
+following examples: </p>
+<p>[ <font color="#000000">Entry condition for the following examples
+is that <i>data</i> is pointer to encoded image data and <i>length</i>
+represents the size of the data</font> ] </p>
+<blockquote><tt><font color="#000066">Blob blob( data, length );</font></tt> <br>
+ <tt><font color="#000066">Image image( blob );</font></tt></blockquote>
+or
+<blockquote><tt><font color="#000066">Blob blob( data, length );</font></tt> <br>
+ <tt><font color="#000066">Image image;</font></tt> <br>
+ <tt><font color="#000066">image.read( blob);</font></tt></blockquote>
+some images do not contain their size or format so the size and format
+must be specified in advance:
+<blockquote><tt><font color="#000066">Blob blob( data, length );</font></tt> <br>
+ <tt><font color="#000066">Image image;</font></tt> <br>
+ <tt><font color="#000066">image.size( "640x480")</font></tt> <br>
+ <tt><font color="#000066">image.magick( "RGBA" );</font></tt> <br>
+ <tt><font color="#000066">image.read( blob);</font></tt></blockquote>
+<center>
+<h3> <a name="Constructors"></a> Constructors</h3>
+</center>
+Image may be constructed in a number of ways. It may be constructed
+from a file, a URL, or an encoded image (e.g. JPEG) contained in an
+in-memory <a href="Blob.html"> BLOB</a> . The available Image
+constructors are shown in the following table: <br>
+ <br>
+
+<table border="1" width="100%" bgcolor="#ffffff">
+ <caption><b>Image Constructors</b></caption> <tbody>
+ <tr>
+ <td>
+ <center><b>Signature</b></center>
+ </td>
+ <td>
+ <center><b>Description</b></center>
+ </td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::string &imageSpec_</font></td>
+ <td><font size="-1">Construct Image by reading from file or URL
+specified by <i>imageSpec_</i>. Use array notation (e.g. filename[9])
+to select a specific scene from a multi-frame image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const Geometry &size_, const <a
+ href="Color.html"> Color</a> &color_</font></td>
+ <td><font size="-1">Construct a blank image canvas of specified
+size and color</font></td>
+ </tr>
+ <tr>
+ <td><a name="constructor_blob"></a> <font size="-1">const <a
+ href="Blob.html">Blob</a> &blob_</font></td>
+ <td rowspan="5"><font size="-1">Construct Image by reading from
+encoded image data contained in an in-memory <a href="Blob.html">BLOB</a>
+. Depending on the constructor arguments, the Blob <a href="#size">size</a>
+, <a href="#depth">depth</a> , <a href="#magick">magick</a> (format) may
+also be specified. Some image formats require that size be specified.
+The default ImageMagick uses for depth depends on the compiled-in
+Quantum size (8 or 16). If ImageMagick's Quantum size does not
+match that of the image, the depth may need to be specified.
+ImageMagick can usually automatically detect the image's format.
+When a format can't be automatically detected, the format (<a
+ href="#magick">magick</a> ) must be specified.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size,
+unsigned int depth</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size,
+unsigned int depth_, const string &magick_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size, const
+string &magick_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const unsigned int width_, </font> <br>
+ <font size="-1">const unsigned int height_,</font> <br>
+ <font size="-1">std::string map_,</font> <br>
+ <font size="-1">const <a href="Enumerations.html#StorageType">
+StorageType</a> type_,</font> <br>
+ <font size="-1">const unsigned char* pixels_</font></td>
+ <td><font size="-1">Construct a new Image based on an array of
+image pixels. The pixel data must be in scanline order top-to-bottom.
+The data can be character, short int, integer, float, or double. Float
+and double require the pixels to be normalized [0..1]. The other types
+are [0..QuantumRange]. For example, to create a 640x480 image from
+unsigned red-green-blue character data, use</font>
+ <p><font size="-1"> Image image( 640, 480, "RGB",
+0, pixels );</font> </p>
+ <p><font size="-1">The parameters are as follows:</font> <br>
+
+ <table border="0" width="100%">
+ <tbody>
+ <tr>
+ <td><font size="-1">width_</font></td>
+ <td><font size="-1">Width in pixels of the image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">height_</font></td>
+ <td><font size="-1">Height in pixels of the image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">map_</font></td>
+ <td><font size="-1">This character string can be any
+combination or order of R = red, G = green, B = blue, A = alpha, C =
+cyan, Y = yellow M = magenta, and K = black. The ordering reflects the
+order of the pixels in the supplied pixel array.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">type_</font></td>
+ <td><font size="-1"><a href="Enumerations.html#StorageType">Pixel
+storage type</a> (CharPixel, ShortPixel, IntegerPixel, FloatPixel, or
+DoublePixel)</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">pixels_</font></td>
+ <td><font size="-1">This array of values contain the pixel
+components as defined by the map_ and type_ parameters. The length of
+the arrays must equal the area specified by the width_ and height_
+values and type_ parameters.</font></td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<center>
+<h3> <a name="Image Manipulation Methods"></a> Image Manipulation Methods</h3>
+</center>
+<i>Image</i> supports access to all the single-image (versus image-list)
+ manipulation operations provided by the ImageMagick library. If you
+must process a multi-image file (such as an animation), the <a
+ href="STL.html"> STL interface</a> , which provides a multi-image
+abstraction on top of <i>Image</i>, must be used.
+<p>Image manipulation methods are very easy to use. For example: </p>
+<blockquote><font color="#663366">Image image;</font> <br>
+ <font color="#663366">image.read("myImage.tiff");</font> <br>
+ <font color="#663366">image.addNoise(GaussianNoise);</font> <br>
+ <font color="#663366">image.write("myImage.tiff");</font></blockquote>
+adds gaussian noise to the image file "myImage.tiff".
+<p>The operations supported by Image are shown in the following table: <br>
+
+<table border="1" nosave="">
+ <caption><b>Image Manipulation Methods</b></caption> <tbody>
+ <tr align="center">
+ <td><b>Method</b></td>
+ <td><b>Signature(s)</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td valign="middle">
+ <div align="center"><a name="adaptiveThreshold"></a> <font
+ size="-1">adaptiveThreshold<br>
+ </font></div>
+ </td>
+ <td valign="middle"><font size="-1">unsigned int width, unsigned
+int height, unsigned offset = 0<br>
+ </font></td>
+ <td valign="top"><font size="-1">Apply adaptive thresholding to
+the image. Adaptive thresholding is useful if the ideal threshold level
+is not known in advance, or if the illumination gradient is not constant
+across the image. Adaptive thresholding works by evaulating the mean
+(average) of a pixel region (size specified by <i>width</i> and <i>height</i>)
+and using the mean as the thresholding value. In order to remove
+residual noise from the background, the threshold may be adjusted by
+subtracting a constant <i>offset</i> (default zero) from the mean to
+compute the threshold.</font><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="addNoise"></a> <font size="-1">addNoise</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#NoiseType">NoiseType</a>
+noiseType_</font></td>
+ <td><font size="-1">Add noise to image with specified noise type.</font></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: middle;"><small><a
+ name="affineTransform"></a>affineTransform<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const DrawableAffine
+&affine<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>Transform image by
+specified affine (or free transform) matrix.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="annotate"></a> <font size="-1">annotate</font></center>
+ </td>
+ <td><font size="-1">const std::string &text_, const <a
+ href="Geometry.html"> Geometry</a> &location_</font></td>
+ <td><font size="-1">Annotate using specified text, and placement
+location</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">string text_, const <a href="Geometry.html">Geometry</a>
+&boundingArea_, <a href="Enumerations.html#GravityType">GravityType</a>
+gravity_</font></td>
+ <td><font size="-1">Annotate using specified text, bounding area,
+and placement gravity. If <i>boundingArea_</i> is invalid, then
+bounding area is entire image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::string &text_, const <a
+ href="Geometry.html"> Geometry</a> &boundingArea_, <a
+ href="Enumerations.html#GravityType">GravityType</a> gravity_, double
+degrees_, </font></td>
+ <td><font size="-1">Annotate with text using specified text,
+bounding area, placement gravity, and rotation. If <i>boundingArea_</i>
+is invalid, then bounding area is entire image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::string &text_, <a
+ href="Enumerations.html#GravityType"> GravityType</a> gravity_</font></td>
+ <td><font size="-1">Annotate with text (bounding area is entire
+image) and placement gravity.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="blur"></a> <font size="-1">blur</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Blur image. The <i>radius_ </i>parameter
+specifies the radius of the Gaussian, in pixels, not counting the center
+pixel. The <i>sigma_</i> parameter specifies the standard
+deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="border"></a> <font size="-1">border</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "6x6+0+0"</font></td>
+ <td><font size="-1">Border image (add border to image). The
+color of the border is specified by the <i>borderColor</i> attribute.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="channel"></a> <font size="-1">channel</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ChannelType">ChannelType</a>
+layer_</font></td>
+ <td><font size="-1">Extract channel from image. Use this option
+to extract a particular channel from the image. <i>MatteChannel</i>
+ for example, is useful for extracting the opacity values
+from an image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="charcoal"></a> <font size="-1">charcoal</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Charcoal effect image (looks like charcoal
+sketch). The <i>radius_</i> parameter specifies the radius of the
+Gaussian, in pixels, not counting the center pixel. The <i>sigma_</i>
+parameter specifies the standard deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chop"></a> <font size="-1">chop</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Chop image (remove vertical or horizontal
+subregion of image)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="colorize"></a> <font size="-1">colorize</font></center>
+ </td>
+ <td><font size="-1">const unsigned int opacityRed_, const
+unsigned int opacityGreen_, const unsigned int opacityBlue_, const
+Color &penColor_</font></td>
+ <td><font size="-1">Colorize image with pen color, using
+specified percent opacity for red, green, and blue quantums.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const unsigned int opacity_, const Color
+&penColor_</font></td>
+ <td><font size="-1">Colorize image with pen color, using
+specified percent opacity.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="comment"></a> <font size="-1">comment</font></center>
+ </td>
+ <td><font size="-1">const string &comment_</font></td>
+ <td><font size="-1">Comment image (add comment string to
+image). By default, each image is commented with its file name.
+Use this method to assign a specific comment to the
+image. Optionally you can include the image filename, type,
+width, height, or other image attributes by embedding <a
+ href="FormatCharacters.html">special format characters.</a> </font></td>
+ </tr>
+ <tr>
+ <td valign="middle" align="center"><font size="-1"><a
+ name="compare"></a> compare<br>
+ </font></td>
+ <td valign="middle"><font size="-1">const Image &reference_<br>
+ </font></td>
+ <td valign="top"><font size="-1">Compare current image with
+another image. Sets <a href="#meanErrorPerPixel">meanErrorPerPixel</a> , <a
+ href="#normalizedMaxError">normalizedMaxError</a> , and <a
+ href="#normalizedMeanError">normalizedMeanError</a> in the current
+image. False is returned if the images are identical. An ErrorOption
+exception is thrown if the reference image columns, rows, colorspace, or
+matte differ from the current image.</font><br>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="3">
+ <center><a name="composite"></a> <font size="-1">composite</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&compositeImage_, int xOffset_, int yOffset_, <a
+ href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
+compose_ = <i>InCompositeOp</i></font></td>
+ <td><font size="-1">Compose an image onto the current image at
+offset specified by <i>xOffset_</i>, <i>yOffset_ </i>using the
+composition algorithm specified by <i>compose_</i>. </font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&compositeImage_, const <a href="Geometry.html">Geometry</a>
+&offset_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+compose_ = <i>InCompositeOp</i></font></td>
+ <td><font size="-1">Compose an image onto the current image at
+offset specified by <i>offset_</i> using the composition algorithm
+specified by <i>compose_</i> . </font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&compositeImage_, <a href="Enumerations.html#GravityType">GravityType</a>
+gravity_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+compose_ = <i>InCompositeOp</i></font></td>
+ <td><font size="-1">Compose an image onto the current image with
+placement specified by <i>gravity_ </i>using the composition algorithm
+specified by <i>compose_</i>. </font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="contrast"></a> <font size="-1">contrast</font></center>
+ </td>
+ <td><font size="-1">unsigned int sharpen_</font></td>
+ <td><font size="-1">Contrast image (enhance intensity differences
+in image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="convolve"></a> <font size="-1">convolve</font></center>
+ </td>
+ <td><font size="-1">unsigned int order_, const double *kernel_</font></td>
+ <td><font size="-1">Convolve image. Applies a user-specfied
+convolution to the image. The <i>order_</i> parameter represents the
+number of columns and rows in the filter kernel, and <i>kernel_</i>
+is a two-dimensional array of doubles representing the convolution
+kernel to apply.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="crop"></a> <font size="-1">crop</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Crop image (subregion of original image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="cycleColormap"></a> <font size="-1">cycleColormap</font></center>
+ </td>
+ <td><font size="-1">int amount_</font></td>
+ <td><font size="-1">Cycle image colormap</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="despeckle"></a> <font size="-1">despeckle</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Despeckle image (reduce speckle noise)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="display"></a> <font size="-1">display</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Display image on screen.</font> <br>
+ <font size="-1"><b><font color="#ff0000">Caution: </font></b> if
+an image format is not compatible with the display visual (e.g.
+JPEG on a colormapped display) then the original image will be
+altered. Use a copy of the original if this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="draw"></a> <font size="-1">draw</font></center>
+ </td>
+ <td><font size="-1">const <a href="Drawable.html">Drawable</a>
+&drawable_</font></td>
+ <td><font size="-1">Draw shape or text on image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::list<<a href="Drawable.html">Drawable</a>
+> &drawable_</font></td>
+ <td><font size="-1">Draw shapes or text on image using a set of
+Drawable objects contained in an STL list. Use of this method improves
+drawing performance and allows batching draw objects together in a
+list for repeated use.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="edge"></a> <font size="-1">edge</font></center>
+ </td>
+ <td><font size="-1">unsigned int radius_ = 0.0</font></td>
+ <td><font size="-1">Edge image (hilight edges in image).
+The radius is the radius of the pixel neighborhood.. Specify a radius
+of zero for automatic radius selection.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="emboss"></a> <font size="-1">emboss</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Emboss image (hilight edges with 3D effect).
+The <i> radius_</i> parameter specifies the radius of the Gaussian, in
+pixels, not counting the center pixel. The <i>sigma_</i>
+parameter specifies the standard deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="enhance"></a> <font size="-1">enhance</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Enhance image (minimize noise)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="equalize"></a> <font size="-1">equalize</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Equalize image (histogram equalization)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="erase"></a> <font size="-1">erase</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Set all image pixels to the current
+background color.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="flip"></a> <font size="-1">flip</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Flip image (reflect each scanline in the
+vertical direction)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="floodFillColor"></a> <font size="-1">floodFill-</font> <br>
+ <font size="-1">Color</font></center>
+ </td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &fillColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill color across pixels
+that match the color of the target pixel and are neighbors of the
+target pixel. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const <a href="Color.html">Color</a> &fillColor_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &fillColor_, const <a href="Color.html">Color</a>
+&borderColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill color across pixels
+starting at target-pixel and stopping at pixels matching specified
+border color. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const <a href="Color.html">Color</a> &fillColor_, const <a
+ href="Color.html">Color</a> &borderColor_</font></td>
+ </tr>
+ <tr>
+ <td><a name="floodFillOpacity"></a> <font size="-1">floodFillOpacity</font></td>
+ <td><font size="-1">const long x_, const long y_, const unsigned
+int opacity_, const PaintMethod method_</font></td>
+ <td><font size="-1">Floodfill pixels matching color (within fuzz
+factor) of target pixel(x,y) with replacement opacity value using method.</font></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="floodFillTexture"></a> <font size="-1">floodFill-</font> <br>
+ <font size="-1">Texture</font></center>
+ </td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const
+Image &texture_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill texture across pixels
+that match the color of the target pixel and are neighbors of the
+target pixel. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const Image &texture_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const Image
+&texture_, const <a href="Color.html">Color</a> &borderColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill texture across pixels
+starting at target-pixel and stopping at pixels matching specified
+border color. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const Image &texture_, const <a href="Color.html"> Color</a>
+&borderColor_</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="flop"></a> <font size="-1">flop</font></center>
+ </td>
+ <td><font size="-1">void </font></td>
+ <td><font size="-1">Flop image (reflect each scanline in the
+horizontal direction)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="frame"></a> <font size="-1">frame</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "25x25+6+6"</font></td>
+ <td rowspan="2"><font size="-1">Add decorative frame around image</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int width_, unsigned int height_,
+int x_, int y_, int innerBevel_ = 0, int outerBevel_ = 0</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="gamma"></a> <font size="-1">gamma</font></center>
+ </td>
+ <td><font size="-1">double gamma_</font></td>
+ <td><font size="-1">Gamma correct image (uniform red, green, and
+blue correction).</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">double gammaRed_, double gammaGreen_, double
+gammaBlue_</font></td>
+ <td><font size="-1">Gamma correct red, green, and blue channels
+of image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="gaussianBlur"></a> <font size="-1">gaussianBlur</font></center>
+ </td>
+ <td><font size="-1">const double width_, const double sigma_</font></td>
+ <td><font size="-1">Gaussian blur image. The number of neighbor
+pixels to be included in the convolution mask is specified by
+'width_'. For example, a width of one gives a (standard) 3x3
+convolution mask. The standard deviation of the gaussian bell curve is
+specified by 'sigma_'.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="implode"></a> <font size="-1">implode</font></center>
+ </td>
+ <td><font size="-1">const double factor_</font></td>
+ <td><font size="-1">Implode image (special effect)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="label"></a> <font size="-1">label</font></center>
+ </td>
+ <td><font size="-1">const string &label_</font></td>
+ <td><font size="-1">Assign a label to an image. Use this option
+to assign a specific label to the image. Optionally
+you can include the image filename, type, width, height, or scene
+number in the label by embedding <a href="FormatCharacters.html">
+special format characters.</a> If the first character of string is @, the
+image label is read from a file titled by the remaining characters in
+the string. When converting to Postscript, use this option to
+specify a header string to print above the image.</font></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><small><a
+ name="level"></a>level<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>const double black_point,
+const double white_point, const double mid_point=1.0<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>Level image. Adjust the
+levels of the image by scaling the colors falling between specified
+white and black points to the full available quantum range. The
+parameters provided represent the black, mid (gamma), and white
+points. The black point specifies the darkest color in the image.
+Colors darker than the black point are set to zero. Mid point (gamma)
+specifies a gamma correction to apply to the image. White point
+specifies the lightest color in the image. Colors brighter than
+the white point are set to the maximum quantum value. The black and
+white point have the valid range 0 to QuantumRange while mid (gamma) has a
+useful range of 0 to ten.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;"><small><a
+ name="levelChannel"></a>levelChannel<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>const ChannelType
+channel, const double black_point, const double white_point, const
+double mid_point=1.0<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>Level image channel.
+Adjust the levels of the image channel by scaling the values falling
+between specified white and black points to the full available quantum
+range. The parameters provided represent the black, mid (gamma), and
+white points. The black point specifies the darkest color in the image.
+Colors darker than the black point are set to zero. Mid point (gamma)
+specifies a gamma correction to apply to the image. White point
+specifies the lightest color in the image. Colors brighter than the
+white point are set to the maximum quantum value. The black and white
+point have the valid range 0 to QuantumRange while mid (gamma) has a useful
+range of 0 to ten.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="magnify"></a> <font size="-1">magnify</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Magnify image by integral size</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="map"></a> <font size="-1">map</font></center>
+ </td>
+ <td><font size="-1">const Image &mapImage_ , bool dither_ =
+false</font></td>
+ <td><font size="-1">Remap image colors with closest color from
+reference image. Set dither_ to <i>true</i> in to apply Floyd/Steinberg
+error diffusion to the image. By default, color reduction chooses an
+optimal set of colors that best represent the original
+image. Alternatively, you can choose a
+particular set of colors from an image file
+with this option.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matteFloodfill"></a> <font size="-1">matteFloodfill</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&target_, const unsigned int opacity_, const int x_, const int
+y_, <a href="Enumerations.html#PaintMethod">PaintMethod</a> method_</font></td>
+ <td><font size="-1">Floodfill designated area with a replacement
+opacity value.</font></td>
+ </tr>
+ <tr>
+ <td><a name="medianFilter"></a> <font size="-1">medianFilter</font></td>
+ <td><font size="-1">const double radius_ = 0.0</font></td>
+ <td><font size="-1">Filter image by replacing each pixel
+component with the median color in a circular neighborhood</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="minify"></a> <font size="-1">minify</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Reduce image by integral size</font></td>
+ </tr>
+ <tr>
+ <td><a name="modifyImage"></a> <font size="-1">modifyImage</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Prepare to update image. Ensures that there
+is only one reference to the underlying image so that the underlying
+image may be safely modified without effecting previous generations of
+the image. Copies the underlying image to a new image if necessary.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="modulate"></a> <font size="-1">modulate</font></center>
+ </td>
+ <td><font size="-1">double brightness_, double saturation_,
+double hue_</font></td>
+ <td><font size="-1">Modulate percent hue, saturation, and
+brightness of an image. Modulation of saturation and brightness is as a
+ratio of the current value (1.0 for no change). Modulation of hue is an
+absolute rotation of -180 degrees to +180 degrees from the current
+position corresponding to an argument range of 0 to 2.0 (1.0 for no
+change).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="negate"></a> <font size="-1">negate</font></center>
+ </td>
+ <td><font size="-1">bool grayscale_ = false</font></td>
+ <td><font size="-1">Negate colors in image. Replace every
+pixel with its complementary color (white becomes black, yellow becomes
+blue, etc.). Set grayscale to only negate grayscale values in
+image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="normalize"></a> <font size="-1">normalize</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Normalize image (increase contrast by
+normalizing the pixel values to span the full range of color values).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="oilPaint"></a> <font size="-1">oilPaint</font></center>
+ </td>
+ <td><font size="-1">unsigned int radius_ = 3</font></td>
+ <td><font size="-1">Oilpaint image (image looks like oil painting)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="opacity"></a> <font size="-1">opacity</font></center>
+ </td>
+ <td><font size="-1">unsigned int opacity_</font></td>
+ <td><font size="-1">Set or attenuate the opacity channel in the
+image. If the image pixels are opaque then they are set to the specified
+opacity value, otherwise they are blended with the supplied opacity
+value. The value of opacity_ ranges from 0 (completely opaque) to <i>QuantumRange</i>
+. The defines <i>OpaqueOpacity</i> and <i>TransparentOpacity</i> are
+available to specify completely opaque or completely transparent,
+respectively.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="opaque"></a> <font size="-1">opaque</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&opaqueColor_, const <a href="Color.html">Color</a> &penColor_</font></td>
+ <td><font size="-1">Change color of pixels matching opaqueColor_
+to specified penColor_.</font></td>
+ </tr>
+ <tr nosave="">
+ <td rowspan="2" nosave="">
+ <center><a name="ping"></a> <font size="-1">ping</font></center>
+ </td>
+ <td><font size="-1">const std::string &imageSpec_</font></td>
+ <td rowspan="2" nosave=""><font size="-1">Ping is similar to read
+except only enough of the image is read to determine the image columns,
+rows, and filesize. The <a href="#columns">columns</a> </font>, <font
+ size="-1"><a href="#rows">rows</a> , and <a href="#fileSize">fileSize</a>
+attributes are valid after invoking ping. The image data is not
+valid after calling ping.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const Blob &blob_</font></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="process"></a>process<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>std::string name_,
+const int argc_, char **argv_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>Execute the named
+process module, passing any arguments via an argument vector, with argc_
+specifying the number of arguments in the vector, and argv_ passing the
+address of an array of null-terminated C strings which constitute the
+argument vector. An exception is thrown if the requested process module
+does not exist, fails to load, or fails during execution.</small><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantize"></a> <font size="-1">quantize</font></center>
+ </td>
+ <td><font size="-1">bool measureError_ = false</font></td>
+ <td><font size="-1">Quantize image (reduce number of colors). Set
+measureError_ to true in order to calculate error attributes.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="raise"></a> <font size="-1">raise</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "6x6+0+0", bool raisedFlag_ = false</font></td>
+ <td><font size="-1">Raise image (lighten or darken the edges of
+an image to give a 3-D raised or lowered effect)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="8">
+ <center><a name="read"></a> <font size="-1">read</font></center>
+ </td>
+ <td><font size="-1">const string &imageSpec_</font></td>
+ <td><font size="-1">Read image into current object</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&size_, const std::string &imageSpec_</font></td>
+ <td><font size="-1">Read image of specified size into current
+object. This form is useful for images that do not specifiy their size
+or to specify a size hint for decoding an image. For example, when
+reading a Photo CD, JBIG, or JPEG image, a size request causes the
+library to return an image which is the next resolution greater or
+equal to the specified size. This may result in memory and time savings.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a> &blob_</font></td>
+ <td rowspan="5"><font size="-1">Read encoded image of specified
+size from an in-memory <a href="Blob.html">BLOB</a> into current
+object. Depending on the method arguments, the Blob size, depth, and
+format may also be specified. Some image formats require that size be
+specified. The default ImageMagick uses for depth depends on its
+Quantum size (8 or 16). If ImageMagick's Quantum size does not
+match that of the image, the depth may need to be specified.
+ImageMagick can usually automatically detect the image's format. When
+a format can't be automatically detected, the format must be specified.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size_,
+unsigned int depth_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size_,
+unsigned short depth_, const string &magick_ </font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&blob_, const <a href="Geometry.html">Geometry</a> &size_, const
+string &magick_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const unsigned int width_, const unsigned int
+height_, std::string map_, const StorageType type_, const unsigned char* pixels_</font></td>
+ <td><font size="-1">Read image based on an array of image pixels.
+The pixel data must be in scanline order top-to-bottom. The data can be
+character, short int, integer, float, or double. Float and double
+require the pixels to be normalized [0..1]. The other types are
+[0..QuantumRange]. For example, to create a 640x480 image from
+unsigned red-green-blue character data, use</font>
+ <p><font size="-1"> image.read( 640, 480, "RGB", 0,
+pixels );</font> </p>
+ <p><font size="-1">The parameters are as follows:</font> <br>
+
+ <table border="0" width="100%">
+ <tbody>
+ <tr>
+ <td><font size="-1">width_</font></td>
+ <td><font size="-1">Width in pixels of the image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">height_</font></td>
+ <td><font size="-1">Height in pixels of the image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">map_</font></td>
+ <td><font size="-1">This character string can be any
+combination or order of R = red, G = green, B = blue, A = alpha, C =
+cyan, Y = yellow M = magenta, and K = black. The ordering reflects the
+order of the pixels in the supplied pixel array.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">type_</font></td>
+ <td><font size="-1">Pixel storage type (CharPixel,
+ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">pixels_</font></td>
+ <td><font size="-1">This array of values contain the pixel
+components as defined by the map_ and type_ parameters. The length of
+the arrays must equal the area specified by the width_ and height_
+values and type_ parameters.</font></td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="reduceNoise"></a> <font size="-1">reduceNoise</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td rowspan="2"><font size="-1">Reduce noise in image using a
+noise peak elimination filter.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int order_</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="roll"></a> <font size="-1">roll</font></center>
+ </td>
+ <td><font size="-1">int columns_, int rows_</font></td>
+ <td><font size="-1">Roll image (rolls image vertically and
+horizontally) by specified number of columnms and rows)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="rotate"></a> <font size="-1">rotate</font></center>
+ </td>
+ <td><font size="-1">double degrees_</font></td>
+ <td><font size="-1">Rotate image counter-clockwise by specified
+number of degrees.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="sample"></a> <font size="-1">sample</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ </font></td>
+ <td><font size="-1">Resize image by using pixel sampling algorithm</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="scale"></a> <font size="-1">scale</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Resize image by using simple ratio algorithm</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="segment"></a> <font size="-1">segment</font></center>
+ </td>
+ <td><font size="-1">double clusterThreshold_ = 1.0,</font> <br>
+ <font size="-1">double smoothingThreshold_ = 1.5</font></td>
+ <td><font size="-1">Segment (coalesce similar image components)
+by analyzing the histograms of the color components and identifying
+units that are homogeneous with the fuzzy c-means technique. Also uses <i>quantizeColorSpace</i>
+and <i>verbose</i> image attributes. Specify <i> clusterThreshold_</i> ,
+as the number of pixels each cluster must exceed
+the cluster threshold to be considered valid. <i>SmoothingThreshold_</i>
+eliminates noise in the second derivative of the histogram. As the
+value is increased, you can expect a smoother
+second derivative. The default is 1.5.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shade"></a> <font size="-1">shade</font></center>
+ </td>
+ <td><font size="-1">double azimuth_ = 30, double elevation_ = 30,</font> <br>
+ <font size="-1">bool colorShading_ = false</font></td>
+ <td><font size="-1">Shade image using distant light source.
+Specify <i> azimuth_</i> and <i>elevation_</i> as the
+position of the light source. By default, the shading
+results as a grayscale image.. Set c<i>olorShading_</i> to <i>true</i> to
+shade the red, green, and blue components of the image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="sharpen"></a> <font size="-1">sharpen</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Sharpen pixels in image. The <i>radius_</i>
+parameter specifies the radius of the Gaussian, in pixels, not counting
+the center pixel. The <i>sigma_</i> parameter specifies the
+standard deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shave"></a> <font size="-1">shave</font></center>
+ </td>
+ <td><font size="-1">const Geometry &geometry_</font></td>
+ <td><font size="-1">Shave pixels from image edges.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shear"></a> <font size="-1">shear</font></center>
+ </td>
+ <td><font size="-1">double xShearAngle_, double yShearAngle_</font></td>
+ <td><font size="-1">Shear image (create parallelogram by sliding
+image by X or Y axis). Shearing slides one edge of an image along
+the X or Y axis, creating a
+parallelogram. An X direction shear slides an edge along the X
+axis, while a Y direction shear slides
+an edge along the Y axis. The amount of the shear is controlled
+by a shear angle. For X direction shears, x
+degrees is measured relative to the Y axis, and similarly, for Y
+direction shears y degrees is measured relative to the X
+axis. Empty triangles left over from shearing the image are
+filled with the color defined as <i>borderColor</i>. </font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="solarize"></a> <font size="-1">solarize</font></center>
+ </td>
+ <td><font size="-1">double factor_ = 50.0</font></td>
+ <td><font size="-1">Solarize image (similar to effect seen when
+exposing a photographic film to light during the development process)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="spread"></a> <font size="-1">spread</font></center>
+ </td>
+ <td><font size="-1">unsigned int amount_ = 3</font></td>
+ <td><font size="-1">Spread pixels randomly within image by
+specified amount</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="stegano"></a> <font size="-1">stegano</font></center>
+ </td>
+ <td><font size="-1">const Image &watermark_</font></td>
+ <td><font size="-1">Add a digital watermark to the image (based
+on second image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="stereo"></a> <font size="-1">stereo</font></center>
+ </td>
+ <td><font size="-1">const Image &rightImage_</font></td>
+ <td><font size="-1">Create an image which appears in stereo when
+viewed with red-blue glasses (Red image on left, blue on right)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="swirl"></a> <font size="-1">swirl</font></center>
+ </td>
+ <td><font size="-1">double degrees_</font></td>
+ <td><font size="-1">Swirl image (image pixels are rotated by
+degrees)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="texture"></a> <font size="-1">texture</font></center>
+ </td>
+ <td><font size="-1">const Image &texture_</font></td>
+ <td><font size="-1">Layer a texture on pixels matching image
+background color.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="threshold"></a> <font size="-1">threshold</font></center>
+ </td>
+ <td><font size="-1">double threshold_</font></td>
+ <td><font size="-1">Threshold image</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="transform"></a> <font size="-1">transform</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&imageGeometry_</font></td>
+ <td rowspan="2"><font size="-1">Transform image based on image
+and crop geometries. Crop geometry is optional.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&imageGeometry_, const <a href="Geometry.html">Geometry</a>
+&cropGeometry_ </font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="transparent"></a> <font size="-1">transparent</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Add matte image to image, setting pixels
+matching color to transparent.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="trim"></a> <font size="-1">trim</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Trim edges that are the background color from
+the image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="unsharpmask"></a> <font size="-1">unsharpmask</font></center>
+ </td>
+ <td><font size="-1">double radius_, double sigma_, double
+amount_, double threshold_</font></td>
+ <td><font size="-1">Replace image with a sharpened version of the
+original image using the unsharp mask algorithm. The <i>radius</i>_
+parameter specifies the radius of the Gaussian, in pixels, not
+counting the center pixel. The <i>sigma</i>_ parameter specifies the
+standard deviation of the Gaussian, in pixels. The <i>amount</i>_
+parameter specifies the percentage of the difference between the
+original and the blur image that is added back into the original. The <i>threshold</i>_
+parameter specifies the threshold in pixels needed to apply the
+diffence amount.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="wave"></a> <font size="-1">wave</font></center>
+ </td>
+ <td><font size="-1">double amplitude_ = 25.0, double wavelength_
+= 150.0</font></td>
+ <td><font size="-1">Alter an image along a sine wave.</font></td>
+ </tr>
+ <tr>
+ <td rowspan="5">
+ <center><a name="write"></a> <font size="-1">write</font></center>
+ </td>
+ <td><font size="-1">const string &imageSpec_</font></td>
+ <td><font size="-1">Write image to a file using filename i<i>mageSpec_</i>
+.</font> <br>
+ <font size="-1"><b><font color="#ff0000">Caution: </font></b> if
+an image format is selected which is capable of supporting fewer
+colors than the original image or quantization has been requested, the
+original image will be quantized to fewer colors. Use a copy of the
+original if this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1"><a href="Blob.html">Blob</a> *blob_</font></td>
+ <td rowspan="3"><font size="-1">Write image to a in-memory <a
+ href="Blob.html"> BLOB</a> stored in <i>blob_</i>. The <i>magick</i>_
+parameter specifies the image format to write (defaults to <a
+ href="#magick">magick</a> ). The depth_ parameter species the image
+depth (defaults to <a href="#depth"> depth</a> ).</font> <br>
+ <font size="-1"><b><font color="#ff0000">Caution: </font></b> if
+an image format is selected which is capable of supporting fewer
+colors than the original image or quantization has been requested, the
+original image will be quantized to fewer colors. Use a copy of the
+original if this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1"><a href="Blob.html">Blob</a> *blob_,
+std::string &magick_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1"><a href="Blob.html">Blob</a> *blob_,
+std::string &magick_, unsigned int depth_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const int x_, const int y_, const unsigned
+int columns_, const unsigned int rows_, const std::string &map_,
+const StorageType type_, unsigned char* pixels_</font></td>
+ <td><font size="-1">Write pixel data into a buffer you supply.
+The data is saved either as char, short int, integer, float or double
+format in the order specified by the type_ parameter. For example, we
+want to extract scanline 1 of a 640x480 image as character data in
+red-green-blue order:</font>
+ <p><font size="-1"> image.write(0,0,640,1,"RGB",0,pixels);</font> </p>
+ <p><font size="-1">The parameters are as follows:</font> <br>
+
+ <table border="0" width="100%">
+ <tbody>
+ <tr>
+ <td><font size="-1">x_</font></td>
+ <td><font size="-1">Horizontal ordinate of left-most
+coordinate of region to extract.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">y_</font></td>
+ <td><font size="-1">Vertical ordinate of top-most
+coordinate of region to extract.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">columns_</font></td>
+ <td><font size="-1">Width in pixels of the region to
+extract.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">rows_</font></td>
+ <td><font size="-1">Height in pixels of the region to
+extract.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">map_</font></td>
+ <td><font size="-1">This character string can be any
+combination or order of R = red, G = green, B = blue, A = alpha, C =
+cyan, Y = yellow, M = magenta, and K = black. The ordering reflects
+the order of the pixels in the supplied pixel array.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">type_</font></td>
+ <td><font size="-1">Pixel storage type (CharPixel,
+ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">pixels_</font></td>
+ <td><font size="-1">This array of values contain the pixel
+components as defined by the map_ and type_ parameters. The length of
+the arrays must equal the area specified by the width_ and height_
+values and type_ parameters.</font></td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="zoom"></a> <font size="-1">zoom</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Zoom image to specified size.</font></td>
+ </tr>
+ </tbody>
+</table>
+</p>
+<center>
+<h3> <a name="Image Attributes"></a> Image Attributes</h3>
+</center>
+Image attributes are set and obtained via methods in Image. Except for
+methods which accept pointer arguments (e.g. c<tt>hromaBluePrimary)</tt>
+all methods return attributes by value.
+<p>Image attributes are easily used. For example, to set the resolution
+of the TIFF file "file.tiff" to 150 dots-per-inch (DPI) in both the
+horizontal and vertical directions, you can use the following example
+code: </p>
+<blockquote><font color="#663366">string filename("file.tiff");</font> <br>
+ <font color="#663366">Image image;</font> <br>
+ <font color="#663366">image.read(filename);</font> <br>
+ <font color="#663366">image.resolutionUnits(PixelsPerInchResolution);</font> <br>
+ <font color="#663366">image.density(Geometry(150,150));
+// could also use image.density("150x150")</font> <br>
+ <font color="#663366">image.write(filename)</font></blockquote>
+The supported image attributes and the method arguments required to
+obtain them are shown in the following table: <br>
+
+<table border="1">
+ <caption>Image Attributes</caption> <tbody>
+ <tr>
+ <td>
+ <center><b>Function</b></center>
+ </td>
+ <td>
+ <center><b>Type</b></center>
+ </td>
+ <td>
+ <center><b>Get Signature</b></center>
+ </td>
+ <td>
+ <center><b>Set Signature</b></center>
+ </td>
+ <td>
+ <center><b>Description</b></center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="adjoin"></a> <font size="-1">adjoin</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Join images into a single multi-image file.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="antiAlias"></a> <font size="-1">antiAlias</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Control antialiasing of rendered Postscript
+and Postscript or TrueType fonts. Enabled by default.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="animationDelay"></a> <font size="-1">animation-</font> <br>
+ <font size="-1">Delay</font></center>
+ </td>
+ <td><font size="-1">unsigned int (0 to 65535)</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int delay_</font></td>
+ <td><font size="-1">Time in 1/100ths of a second (0 to 65535)
+which must expire before displaying the next image in an animated
+sequence. This option is useful for regulating the animation of a
+sequence of GIF images within Netscape.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="animationIterations"></a> <font size="-1">animation-</font> <br>
+ <font size="-1">Iterations</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int iterations_</font></td>
+ <td><font size="-1">Number of iterations to loop an animation
+(e.g. Netscape loop extension) for.</font></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: middle; text-align: center;"><small><a
+ name="attribute"></a>attribute<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>string<br>
+ </small></td>
+ <td style="vertical-align: top;" valign="top"><small>const
+std::string name_<br>
+ </small></td>
+ <td style="vertical-align: top;" valign="top"><small>const
+std::string name_, const std::string value_</small></td>
+ <td style="vertical-align: middle;"><small>An arbitrary named
+image attribute. Any number of named attributes may be attached to the
+image. For example, the image comment is a named image attribute with
+the name "comment". EXIF tags are attached to the image as named
+attributes. Use the syntax "[EXIF:<tag>]" to request an EXIF tag
+similar to "[EXIF:DateTime]".</small><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="backgroundColor"></a> <font size="-1">background-</font> <br>
+ <font size="-1">Color</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Image background color</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="backgroundTexture"></a> <font size="-1">background-</font> <br>
+ <font size="-1">Texture</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &texture_</font></td>
+ <td><font size="-1">Image file name to use as the background
+texture. Does not modify image pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="baseColumns"></a> <font size="-1">baseColumns</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Base image width (before transformations)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="baseFilename"></a> <font size="-1">baseFilename</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Base image filename (before transformations)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="baseRows"></a> <font size="-1">baseRows</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Base image height (before transformations)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="borderColor"></a> <font size="-1">borderColor</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"> const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Image border color</font></td>
+ </tr>
+ <tr>
+ <td><a name="boundingBox"></a> <font size="-1">boundingBox</font></td>
+ <td><font size="-1">Geometry</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Return smallest bounding box enclosing
+non-border pixels. The current fuzz value is used when discriminating
+between pixels. This is the crop bounding box used by
+crop(Geometry(0,0)).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="boxColor"></a> <font size="-1">boxColor</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&boxColor_</font></td>
+ <td><font size="-1">Base color that annotation text is rendered
+on.</font></td>
+ </tr>
+ <tr>
+ <td><a name="cacheThreshold"></a> <font size="-1">cacheThreshold</font></td>
+ <td><font size="-1">unsigned int</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">const int</font></td>
+ <td><font size="-1">Pixel cache threshold in megabytes. Once this
+threshold is exceeded, all subsequent pixels cache operations are
+to/from disk. This is a static method and the attribute it sets is
+shared by all Image objects.</font></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: middle;" valign="middle"><small><a
+ name="channelDepth"></a>channelDepth<br>
+ </small></td>
+ <td style="vertical-align: middle;" valign="middle"><small>unsigned
+int<br>
+ </small></td>
+ <td style="vertical-align: middle;" valign="middle"><small>const
+ChannelType channel_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const ChannelType
+channel_, const unsigned int depth_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>Channel modulus depth.
+The channel modulus depth represents the minimum number of bits required
+to support the channel without loss. Setting the channel's modulus depth
+modifies the channel (i.e. discards resolution) if the requested modulus
+depth is less than the current modulus depth, otherwise the channel is
+not altered. There is no attribute associated with the modulus depth so
+the current modulus depth is obtained by inspecting the pixels. As a
+result, the depth returned may be less than the most recently set
+channel depth. Subsequent image processing may result in increasing the
+channel depth.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaBluePrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">BluePrimary</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double *x_, double *y_</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity blue primary point (e.g. x=0.15,
+y=0.06)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaGreenPrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">GreenPrimary</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double *x_, double *y_</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity green primary point (e.g. x=0.3,
+y=0.6)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaRedPrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">RedPrimary</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double *x_, double *y_</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity red primary point (e.g. x=0.64,
+y=0.33)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaWhitePoint"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">WhitePoint</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double*x_, double *y_</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity white point (e.g. x=0.3127,
+y=0.329)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="classType"></a> <font size="-1">classType</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ClassType">ClassType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"> <a href="Enumerations.html#ClassType">ClassType</a>
+class_</font></td>
+ <td><font size="-1">Image storage class. Note that
+conversion from a DirectClass image to a PseudoClass image may result
+in a loss of color due to the limited size of the palette (256 or
+65535 colors).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="clipMask"></a> <font size="-1">clipMask</font></center>
+ </td>
+ <td><font size="-1">Image</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Image &clipMask_</font></td>
+ <td><font size="-1">Associate a clip mask image with the current
+image. The clip mask image must have the same dimensions as the current
+image or an exception is thrown. Clipping occurs wherever pixels are
+transparent in the clip mask image. Clipping Pass an invalid image to
+unset an existing clip mask.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="colorFuzz"></a> <font size="-1">colorFuzz</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">double fuzz_</font></td>
+ <td><font size="-1">Colors within this distance are considered
+equal. A number of algorithms search for a target color. By
+default the color must be exact. Use this option to match colors that
+are close to the target color in RGB space.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="colorMap"></a> <font size="-1">colorMap</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">unsigned int index_</font></td>
+ <td><font size="-1">unsigned int index_, const <a
+ href="Color.html"> Color</a> &color_</font></td>
+ <td><font size="-1">Color at colormap index.</font></td>
+ </tr>
+ <tr>
+ <td valign="middle">
+ <div align="center"><a name="colorMapSize"></a> <font size="-1">colorMapSize<br>
+ </font></div>
+ </td>
+ <td valign="middle"><font size="-1">unsigned int<br>
+ </font></td>
+ <td valign="middle"><font size="-1">void<br>
+ </font></td>
+ <td valign="middle"><font size="-1">unsigned int entries_<br>
+ </font></td>
+ <td valign="middle"><font size="-1">Number of entries in the
+colormap. Setting the colormap size may extend or truncate the colormap.
+The maximum number of supported entries is specified by the <i>MaxColormapSize</i>constant,
+and is dependent on the value of QuantumDepth when ImageMagick is
+compiled. An exception is thrown if more entries are requested than may
+be supported. Care should be taken when truncating the colormap to
+ensure that the image colormap indexes reference valid colormap entries.</font><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="colorSpace"></a> <font size="-1">colorSpace</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+colorSpace_</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+colorSpace_</font></td>
+ <td><font size="-1">The colorspace (e.g. CMYK) used to represent
+the image pixel colors. Image pixels are always stored as RGB(A) except
+for the case of CMY(K).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="columns"></a> <font size="-1">columns</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Image width</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="comment"></a> <font size="-1">comment</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Image comment</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="compose"></a> <font size="-1">compose</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#CompositeOperator">CompositeOperator</a> </font></td>
+ <td><small><font size="-1"><small>void</small></font></small></td>
+ <td><small><font size="-1"><small><a
+ href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+compose_</small></font></small></td>
+ <td><font size="-1">Composition operator to be used when
+composition is implicitly used (such as for image flattening).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="compressType"></a> <font size="-1">compress-</font> <br>
+ <font size="-1">Type</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#CompressionType">CompressionType</a> </font></td>
+ <td><small><font size="-1"><small>void</small></font></small></td>
+ <td><small><font size="-1"><small><a
+ href="Enumerations.html#CompressionType">CompressionType</a>
+compressType_</small></font></small></td>
+ <td><font size="-1">Image compresion type. The default is the
+compression type of the specified image file.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="debug"></a> <font size="-1">debug</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><small><font size="-1"><small>void</small></font></small></td>
+ <td><small><font size="-1"><small>bool flag_</small></font></small></td>
+ <td><font size="-1">Enable printing of internal debug messages
+from ImageMagick as it executes.</font></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="defineValue"></a>defineValue<br>
+ </small></td>
+ <td style="vertical-align: middle; text-align: left;"><small>string<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const std::string
+&magick_, const std::string &key_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const std::string
+&magick_, const std::string &key_, const std::string
+&value_<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>Set or obtain a
+definition string to applied when encoding or decoding the specified
+format. The meanings of the definitions are format specific. The format
+is designated by the <span style="font-style: italic;">magick_</span>
+argument, the format-specific key is designated by <span
+ style="font-style: italic;">key_</span>, and the associated value is
+specified by <span style="font-style: italic;">value_</span>. See the
+defineSet() method if the key must be removed entirely.</small><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="defineSet"></a>defineSet<br>
+ </small></td>
+ <td style="vertical-align: middle; text-align: left;"><small>bool<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const std::string
+&magick_, const std::string &key_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const std::string
+&magick_, const std::string &key_, bool flag_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>Set or obtain a
+definition flag to applied when encoding or decoding the specified
+format.</small><small>. Similar to the defineValue() method except that
+passing the <span style="font-style: italic;">flag_</span> value 'true'
+creates a value-less define with that format and key. Passing the <span
+ style="font-style: italic;">f</span><span style="font-style: italic;">lag_</span>
+value 'false' removes any existing matching definition. The method
+returns 'true' if a matching key exists, and 'false' if no matching key
+exists.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="density"></a> <font size="-1">density</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a>
+(default 72x72)</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&density_</font></td>
+ <td><font size="-1">Vertical and horizontal resolution in pixels
+of the image. This option specifies an image density when decoding a
+Postscript or Portable Document page. Often used with <i>psPageSize</i>.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="depth"></a> <font size="-1">depth</font></center>
+ </td>
+ <td><font size="-1"> unsigned int (8, 16, or 32)</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int depth_</font></td>
+ <td><font size="-1">Image depth. Used to specify the bit depth
+when reading or writing raw images or when the output format
+supports multiple depths. Defaults to the quantum depth that
+ImageMagick is compiled with.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="endian"></a> <font size="-1">endian</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a>
+endian_</font></td>
+ <td><font size="-1">Specify (or obtain) endian option for formats
+which support it.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="directory"></a> <font size="-1">directory</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"> </font></td>
+ <td><font size="-1">Tile names from within an image montage</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fileName"></a> <font size="-1">fileName</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &fileName_</font></td>
+ <td><font size="-1">Image file name.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fileSize"></a> <font size="-1">fileSize</font></center>
+ </td>
+ <td><font size="-1">off_t</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Number of bytes of the image on disk</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fillColor"></a> <font size="-1">fillColor</font></center>
+ </td>
+ <td><font size="-1">Color</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Color &fillColor_</font></td>
+ <td><font size="-1">Color to use when filling drawn objects</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fillPattern"></a> <font size="-1">fillPattern</font></center>
+ </td>
+ <td><font size="-1">Image</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Image &fillPattern_</font></td>
+ <td><font size="-1">Pattern image to use when filling drawn
+objects.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fillRule"></a> <font size="-1">fillRule</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#FillRule">FillRule</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Magick::FillRule &fillRule_</font></td>
+ <td><font size="-1">Rule to use when filling drawn objects.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="filterType"></a> <font size="-1">filterType</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a>
+filterType_</font></td>
+ <td><font size="-1">Filter to use when resizing image. The
+reduction filter employed has a sigificant effect on the time required
+to resize an image and the resulting quality. The default filter is <i>Lanczos</i>
+which has been shown to produce high quality results when reducing most
+images.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="font"></a> <font size="-1">font</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &font_</font></td>
+ <td><font size="-1">Text rendering font. If the font is a fully
+qualified X server font name, the font is obtained from an X
+server. To use a TrueType font, precede the TrueType filename with an
+@. Otherwise, specify a Postscript font name (e.g.
+"helvetica").</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fontPointsize"></a> <font size="-1">fontPointsize</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int pointSize_</font></td>
+ <td><font size="-1">Text rendering font point size</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fontTypeMetrics"></a> <font size="-1">fontTypeMetrics</font></center>
+ </td>
+ <td><font size="-1"><a href="TypeMetric.html">TypeMetric</a> </font></td>
+ <td><font size="-1">const std::string &text_, <a
+ href="TypeMetric.html"> TypeMetric</a> *metrics</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Update metrics with font type metrics using
+specified <i>text</i>, and current <a href="#font">font</a> and <a
+ href="#fontPointsize">fontPointSize</a> settings.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="format"></a> <font size="-1">format</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Long form image format description.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="gamma"></a> <font size="-1">gamma</font></center>
+ </td>
+ <td><font size="-1">double (typical range 0.8 to 2.3)</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Gamma level of the image. The same color
+image displayed on two different workstations may
+look different due to differences in the display monitor.
+Use gamma correction to adjust for this
+color difference.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="geometry"></a> <font size="-1">geometry</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Preferred size of the image when encoding.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="gifDisposeMethod"></a> <font size="-1">gifDispose-</font> <br>
+ <font size="-1">Method</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font> <br>
+ <font size="-1">{ 0 = Disposal not specified,</font> <br>
+ <font size="-1">1 = Do not dispose of graphic,</font> <br>
+ <font size="-1">3 = Overwrite graphic with background color,</font> <br>
+ <font size="-1">4 = Overwrite graphic with previous graphic. }</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int disposeMethod_</font></td>
+ <td><font size="-1">GIF disposal method. This option is used to
+control how successive frames are rendered (how the preceding frame is
+disposed of) when creating a GIF animation.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="iccColorProfile"></a> <font size="-1">iccColorProfile</font></center>
+ </td>
+ <td><font size="-1"><a href="Blob.html">Blob</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Blob.html">Blob</a>
+&colorProfile_</font></td>
+ <td><font size="-1">ICC color profile. Supplied via a <a
+ href="Blob.html"> Blob</a> since Magick++/ and ImageMagick do not
+currently support formating this data structure directly.
+Specifications are available from the <a href="http://www.color.org/">
+International Color Consortium</a> for the format of ICC color profiles.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="interlaceType"></a> <font size="-1">interlace-</font> <br>
+ <font size="-1">Type</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a>
+interlace_</font></td>
+ <td><font size="-1">The type of interlacing scheme (default <i>NoInterlace</i>
+). This option is used to specify the type of interlacing
+scheme for raw image formats such as RGB or YUV. <i>NoInterlace</i>
+means do not interlace, <i>LineInterlace</i> uses scanline
+interlacing, and <i>PlaneInterlace</i> uses plane interlacing. <i>
+PartitionInterlace</i> is like <i>PlaneInterlace</i> except the
+different planes are saved to individual files (e.g.
+image.R, image.G, and image.B). Use <i>LineInterlace</i> or <i>
+PlaneInterlace</i> to create an interlaced GIF or progressive JPEG image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="iptcProfile"></a> <font size="-1">iptcProfile</font></center>
+ </td>
+ <td><font size="-1"><a href="Blob.html">Blob</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Blob.html">Blob</a> &
+iptcProfile_</font></td>
+ <td><font size="-1">IPTC profile. Supplied via a <a
+ href="Blob.html"> Blob</a> since Magick++ and ImageMagick do not
+currently support formating this data structure directly.
+Specifications are available from the <a href="http://www.iptc.org/">
+International Press Telecommunications Council</a> for IPTC profiles.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="label"></a> <font size="-1">label</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &label_</font></td>
+ <td><font size="-1">Image label</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="magick"></a> <font size="-1">magick</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"> const string &magick_</font></td>
+ <td><font size="-1">Get image format (e.g. "GIF")</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matte"></a> <font size="-1">matte</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool matteFlag_</font></td>
+ <td><font size="-1">True if the image has transparency. If set
+True, store matte channel if the image has one otherwise create
+an opaque one.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matteColor"></a> <font size="-1">matteColor</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&matteColor_</font></td>
+ <td><font size="-1">Image matte (frame) color</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="meanErrorPerPixel"></a> <font size="-1">meanError-</font> <br>
+ <font size="-1">PerPixel</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The mean error per pixel computed when an
+image is color reduced. This parameter is only valid if verbose is set
+to true and the image has just been quantized.</font></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><font
+ size="-1"><a name="modulusDepth"></a>modulusDepth<br>
+ </font></td>
+ <td style="text-align: left; vertical-align: middle;"><small>unsigned
+int<br>
+ </small></td>
+ <td style="text-align: left; vertical-align: middle;"><small><font
+ size="-1"><small>void<br>
+ </small></font></small></td>
+ <td style="text-align: left; vertical-align: middle;"><small>unsigned
+int depth_<br>
+ </small></td>
+ <td style="text-align: left; vertical-align: middle;"><small>Image
+modulus depth (minimum number of bits required to support
+red/green/blue components without loss of accuracy). The pixel modulus
+depth may be decreased by supplying a value which is less than the
+current value, updating the pixels (reducing accuracy) to the new depth.
+The pixel modulus depth can not be increased over the current value
+using this method.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="monochrome"></a> <font size="-1">monochrome</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Transform the image to black and white</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="montageGeometry"></a> <font size="-1">montage-</font> <br>
+ <font size="-1">Geometry</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Tile size and offset within an image montage.
+Only valid for montage images.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="normalizedMaxError"></a> <font size="-1">normalized-</font> <br>
+ <font size="-1">MaxError</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The normalized max error per pixel computed
+when an image is color reduced. This parameter is only valid if verbose
+is set to true and the image has just been quantized.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="normalizedMeanError"></a> <font size="-1">normalized-</font> <br>
+ <font size="-1">MeanError</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The normalized mean error per pixel computed
+when an image is color reduced. This parameter is only valid if verbose
+is set to true and the image has just been quantized.</font></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="orientation"></a>orientation<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small><a
+ href="Enumerations.html#OrientationType">OrientationType</a></small></td>
+ <td style="vertical-align: top;"><small>void</small><br>
+ </td>
+ <td style="vertical-align: middle;"><small><a
+ href="www/Magick++/Enumerations.html#OrientationType">OrientationType</a>
+orientation_</small></td>
+ <td style="vertical-align: top;"><small>Image orientation.
+ Supported by some file formats such as DPX and TIFF. Useful for
+turning the right way up.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="packets"></a> <font size="-1">packets</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The number of runlength-encoded packets in</font> <br>
+ <font size="-1">the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="packetSize"></a> <font size="-1">packetSize</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The number of bytes in each pixel packet</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="page"></a> <font size="-1">page</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html#PostscriptPageSize">Geometry</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a
+ href="Geometry.html#PostscriptPageSize"> Geometry</a> &pageSize_</font></td>
+ <td><font size="-1">Preferred size and location of an image
+canvas.</font>
+ <p><font size="-1">Use this option to specify the dimensions
+and position of the Postscript page in dots per inch or a TEXT page in
+pixels. This option is typically used in concert with <i><a
+ href="#density"> density</a> </i>.</font> </p>
+ <p><font size="-1">Page may also be used to position a GIF
+image (such as for a scene in an animation)</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="pixelColor"></a> <font size="-1">pixelColor</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">unsigned int x_, unsigned int y_</font></td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &color_</font></td>
+ <td><font size="-1">Get/set pixel color at location x & y.</font></td>
+ </tr>
+ <tr>
+ <td valign="top">
+ <div align="center"><a name="profile"></a> <small>profile</small><br>
+ </div>
+ </td>
+ <td valign="top"><a href="Blob.html"><small> Blob</small><small><br>
+ </small></a> </td>
+ <td valign="top"><small>const std::string name_</small><small><br>
+ </small></td>
+ <td valign="top"><small>const std::string name_, const Blob
+&colorProfile_</small><small><br>
+ </small></td>
+ <td valign="top"><small>Get/set/remove </small><small> a named
+profile</small><small>. Valid names include </small><small>"*",
+"8bim", "icm", "iptc", or a user/format-defined profile name. </small><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quality"></a> <font size="-1">quality</font></center>
+ </td>
+ <td><font size="-1">unsigned int (0 to 100)</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int quality_</font></td>
+ <td><font size="-1">JPEG/MIFF/PNG compression level (default 75).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeColors"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">Colors</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int colors_</font></td>
+ <td><font size="-1">Preferred number of colors in the image. The
+actual number of colors in the image may be less than your request, but
+never more. Images with less unique colors than specified with this
+option will have any duplicate or unused colors removed.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeColorSpace"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">ColorSpace</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+colorSpace_</font></td>
+ <td><font size="-1">Colorspace to quantize colors in (default
+RGB). Empirical evidence suggests that distances in color spaces such
+as YUV or YIQ correspond to perceptual color differences more closely
+than do distances in RGB space. These color spaces may give better
+results when color reducing an image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeDither"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">Dither</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Apply Floyd/Steinberg error diffusion to the
+image. The basic strategy of dithering is to trade intensity
+resolution for spatial resolution by
+averaging the intensities of several
+neighboring pixels. Images which suffer from
+severe contouring when reducing colors can be
+improved with this option. The quantizeColors or monochrome option must
+be set for this option to take effect.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeTreeDepth"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">TreeDepth</font></center>
+ </td>
+ <td><font size="-1">unsigned int </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int treeDepth_</font></td>
+ <td><font size="-1">Depth of the quantization color
+classification tree. Values of 0 or 1 allow selection of the optimal
+tree depth for the color reduction algorithm. Values between 2 and 8
+may be used to manually adjust the tree depth.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="renderingIntent"></a> <font size="-1">rendering-</font> <br>
+ <font size="-1">Intent</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a>
+render_</font></td>
+ <td><font size="-1">The type of rendering intent</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="resolutionUnits"></a> <font size="-1">resolution-</font> <br>
+ <font size="-1">Units</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a>
+units_</font></td>
+ <td><font size="-1">Units of image resolution</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="rows"></a> <font size="-1">rows</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">The number of pixel rows in the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="samplingFactor"></a> <font size="-1">samplingFactor</font></center>
+ </td>
+ <td><font size="-1">string (e.g. "2x1,1x1,1x1")</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &samplingFactor_</font></td>
+ <td><font size="-1">JPEG sampling factors</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="scene"></a> <font size="-1">scene</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int scene_</font></td>
+ <td><font size="-1">Image scene number</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="signature"></a> <font size="-1">signature</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">bool force_ = false</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Image MD5 signature. Set force_ to 'true' to
+force re-computation of signature.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="size"></a> <font size="-1">size</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Width and height of a raw image (an image
+which does not support width and height information). Size may
+also be used to affect the image size read from a multi-resolution
+format (e.g. Photo CD, JBIG, or JPEG.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeAntiAlias"></a> <font size="-1">strokeAntiAlias</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Enable or disable anti-aliasing when drawing
+object outlines.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeColor"></a> <font size="-1">strokeColor</font></center>
+ </td>
+ <td><font size="-1">Color</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Color &strokeColor_</font></td>
+ <td><font size="-1">Color to use when drawing object outlines</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeDashOffset"></a> <font size="-1">strokeDashOffset</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">double strokeDashOffset_</font></td>
+ <td><font size="-1">While drawing using a dash pattern, specify
+distance into the dash pattern to start the dash (default 0).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeDashArray"></a> <font size="-1">strokeDashArray</font></center>
+ </td>
+ <td><font size="-1">const double*</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const double* strokeDashArray_</font></td>
+ <td><font size="-1">Specify the pattern of dashes and gaps used
+to stroke paths. The strokeDashArray represents a zero-terminated
+array of numbers that specify the lengths (in pixels) of alternating
+dashes and gaps in user units. If an odd number of values is provided,
+then the list of values is repeated to yield an even number of
+values. A typical strokeDashArray_ array might contain the
+members 5 3 2 0, where the zero value indicates the end of the pattern
+array.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeLineCap"></a> <font size="-1">strokeLineCap</font></center>
+ </td>
+ <td><font size="-1">LineCap</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">LineCap lineCap_</font></td>
+ <td><font size="-1">Specify the shape to be used at the corners
+of paths (or other vector shapes) when they are stroked. Values of
+LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeLineJoin"></a> <font size="-1">strokeLineJoin</font></center>
+ </td>
+ <td><font size="-1">LineJoin</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">LineJoin lineJoin_</font></td>
+ <td><font size="-1">Specify the shape to be used at the corners
+of paths (or other vector shapes) when they are stroked. Values of
+LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeMiterLimit"></a> <font size="-1">strokeMiterLimit</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int miterLimit_</font></td>
+ <td><font size="-1">Specify miter limit. When two line segments
+meet at a sharp angle and miter joins have been specified for
+'lineJoin', it is possible for the miter to extend far beyond the
+thickness of the line stroking the path. The miterLimit' imposes a
+limit on the ratio of the miter length to the 'lineWidth'. The default
+value of this parameter is 4.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeWidth"></a> <font size="-1">strokeWidth</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">double strokeWidth_</font></td>
+ <td><font size="-1">Stroke width for use when drawing vector
+objects (default one)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokePattern"></a> <font size="-1">strokePattern</font></center>
+ </td>
+ <td><font size="-1">Image</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const Image &strokePattern_</font></td>
+ <td><font size="-1">Pattern image to use while drawing object
+stroke (outlines).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="subImage"></a> <font size="-1">subImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int subImage_</font></td>
+ <td><font size="-1">Subimage of an image sequence</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="subRange"></a> <font size="-1">subRange</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">unsigned int subRange_</font></td>
+ <td><font size="-1">Number of images relative to the base image</font></td>
+ </tr>
+ <tr>
+ <td valign="middle">
+ <div align="center"><a name="textEncoding"></a> <small>textEncoding</small><br>
+ </div>
+ </td>
+ <td valign="middle"><small>string</small><small><br>
+ </small></td>
+ <td valign="middle"><small>void</small><small><br>
+ </small></td>
+ <td valign="middle"><small>const std::string &encoding_</small><small><br>
+ </small></td>
+ <td valign="top"><small>Specify the code set to use for text
+annotations. The only character encoding which may be specified at
+this time is "UTF-8" for representing </small><small><a
+ href="http://www.unicode.org/"> Unicode </a> </small><small>as a
+sequence of bytes. Specify an empty string to use the default ASCII
+encoding. Successful text annotation using Unicode may require fonts
+designed to support Unicode.</small><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="tileName"></a> <font size="-1">tileName</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &tileName_</font></td>
+ <td><font size="-1">Tile name</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="totalColors"></a> <font size="-1">totalColors</font></center>
+ </td>
+ <td><font size="-1">unsigned long</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">Number of colors in the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="type"></a> <font size="-1">type</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ImageType">ImageType</a> </font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#ffffff"><font size="-1"><a
+ href="Enumerations.html#ImageType"> ImageType</a> </font></td>
+ <td><font size="-1">Image type.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="verbose"></a> <font size="-1">verbose</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">bool verboseFlag_</font></td>
+ <td><font size="-1">Print detailed information about the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="view"></a> <font size="-1">view</font></center>
+ </td>
+ <td><font size="-1">string</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &view_</font></td>
+ <td><font size="-1">FlashPix viewing parameters.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="x11Display"></a> <font size="-1">x11Display</font></center>
+ </td>
+ <td><font size="-1">string (e.g. "hostname:0.0")</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">const string &display_</font></td>
+ <td><font size="-1">X11 display to display to, obtain fonts from,
+or to capture image from</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="xResolution"></a> <font size="-1">xResolution</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">x resolution of the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="yResolution"></a> <font size="-1">yResolution</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">void</font></td>
+ <td bgcolor="#666666"><font size="-1"> </font></td>
+ <td><font size="-1">y resolution of the image</font></td>
+ </tr>
+ </tbody>
+</table>
+<center>
+<h3> <a name="Raw Image Pixel Access"></a> Low-Level Image Pixel Access</h3>
+</center>
+Image pixels (of type <i><a href="PixelPacket.html">PixelPacket</a> </i>)
+may be accessed directly via the <i>Image Pixel Cache</i> . The
+image pixel cache is a rectangular window into the actual image pixels
+(which may be in memory, memory-mapped from a disk file, or entirely on
+disk). Two interfaces exist to access the <i>Image Pixel Cache.</i> The
+interface described here (part of the <i>Image</i> class) supports only
+one view at a time. See the <i><a href="Pixels.html">Pixels</a> </i>
+class for a more abstract interface which supports simultaneous pixel
+views (up to the number of rows). As an analogy, the interface described
+here relates to the <i><a href="Pixels.html">Pixels</a> </i> class as
+stdio's gets() relates to fgets(). The <i><a href="Pixels.html"> Pixels</a> </i>
+class provides the more general form of the interface.
+<p>Obtain existing image pixels via <i>getPixels()</i>. Create a new
+pixel region using <i>setPixels().</i></p>
+<p>In order to ensure that only the current generation of the image is
+modified, the Image's <a href="#modifyImage">modifyImage()</a> method
+should be invoked to reduce the reference count on the underlying image
+to one. If this is not done, then it is possible for a previous
+generation of the image to be modified due to the use of reference
+counting when copying or constructing an Image.<br>
+</p>
+<p>Depending on the capabilities of the operating system, and the
+relationship of the window to the image, the pixel cache may be a copy
+of the pixels in the selected window, or it may be the actual image
+pixels. In any case calling <i>syncPixels()</i> insures that the base
+image is updated with the contents of the modified pixel cache. The
+method <i> readPixels()</i> supports copying foreign pixel data formats
+into the pixel cache according to the <i>QuantumTypes</i>. The method <i>writePixels()</i>
+supports copying the pixels in the cache to a foreign pixel
+representation according to the format specified by <i>QuantumTypes</i>.</p>
+<p>The pixel region is effectively a small image in which the pixels
+may be accessed, addressed, and updated, as shown in the following
+example:
+<table border="0" width="100%">
+ <tbody>
+ <tr>
+ <td><font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> Image image("cow.png");</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#ff0000"><font
+ size="-1"> // Ensure that there are no other references to this image.</font></font></font><br>
+ <font size="-1"><span
+ style="color: rgb(0, 0, 153); font-family: courier new,courier,monospace;">image.modifyImage();<br>
+ </span></font><font face="Courier New,Courier"><font
+ color="#ff0000"><font size="-1"> // Set the image type to TrueColor
+DirectClass representation.</font></font></font><br>
+ <font size="-1"><span
+ style="color: rgb(0, 0, 153); font-family: courier new,courier,monospace;">image.type(TrueColorType</span></font><font
+ size="-1"><span
+ style="color: rgb(0, 0, 153); font-family: courier new,courier,monospace;">);</span></font><br>
+ <font face="Courier New,Courier"><font color="#ff0000"><font
+ size="-1"> // Request pixel region with size 60x40, and top origin at
+20x30</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> int columns = 60;</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> PixelPacket *pixel_cache = image.getPixels(20,30,columns,40);</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#ff0000"><font
+ size="-1"> // Set pixel at column 5, and row 10 in the pixel cache to
+red.</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> int column = 5;</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> int row = 10;</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> PixelPacket *pixel = pixel_cache+row*columns+column;</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> *pixel = Color("red");</font></font></font> <br>
+ <font face="Courier New,Courier"><font color="#ff0000"><font
+ size="-1"> // Save changes to underlying image</font></font></font> .<br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> image.syncPixels();<br>
+ </font></font></font> <font face="Courier New,Courier"><font
+ color="#ff0000"><font size="-1"> // Save updated image to file.</font></font></font><br>
+ <font face="Courier New,Courier"><font color="#000099"><font
+ size="-1"> image.write("horse.png");</font></font></font></td>
+ <td><img src="Cache.png" height="218" width="254"> </td>
+ </tr>
+ </tbody>
+</table>
+</p>
+<p>The image cache supports the following methods: <br>
+
+<table border="1" width="100%">
+ <caption>Image Cache Methods</caption> <tbody>
+ <tr>
+ <td>
+ <center><b>Method</b></center>
+ </td>
+ <td>
+ <center><b>Returns</b></center>
+ </td>
+ <td>
+ <center><b>Signature</b></center>
+ </td>
+ <td>
+ <center><b>Description</b></center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="getConstPixels"></a> <font size="-1">getConstPixels</font></center>
+ </td>
+ <td><font size="-1">const <a href="PixelPacket.html">PixelPacket</a>
+*</font></td>
+ <td><font size="-1">const int x_, const int y_, const unsigned
+int columns_, const unsigned int rows_</font></td>
+ <td><font size="-1">Transfers pixels from the image to the pixel
+cache as defined by the specified rectangular region. </font><font
+ size="-1">The returned pointer remains valid until the next getPixel,
+getConstPixels, or setPixels call and should never be deallocated by the
+user.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="getConstIndexes"></a> <font size="-1">getConstIndexes</font></center>
+ </td>
+ <td><font size="-1">const IndexPacket*</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Returns a pointer to the Image pixel indexes
+corresponding to a previous </font><font size="-1">getPixel,
+getConstPixels, or setPixels call. </font><font size="-1">The
+returned pointer remains valid until the next getPixel, getConstPixels,
+or setPixels call and should never be deallocated by the user.</font><font
+ size="-1"> Only valid for PseudoClass images or CMYKA images. The
+pixel indexes represent an array of type IndexPacket, with each entry
+corresponding to an x,y pixel position. For PseudoClass images, the
+entry's value is the offset into the colormap (see <a href="#colorMap">colorMap</a>
+) for that pixel. For CMYKA images, the indexes are used to contain the
+alpha channel.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="getIndexes"></a> <font size="-1">getIndexes</font></center>
+ </td>
+ <td><font size="-1">IndexPacket*</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Returns a pointer to the Image pixel indexes
+corresponding to the pixel region requested by the last <a
+ href="#getConstPixels">getConstPixels</a> , <a href="#getPixels">getPixels</a>
+, or <a href="#setPixels">setPixels</a> call. </font><font size="-1">The
+returned pointer remains valid until the next getPixel, getConstPixels,
+or setPixels call and should never be deallocated by the user.</font><font
+ size="-1"> </font><font size="-1">Only valid for PseudoClass images or
+CMYKA images. The pixel indexes represent an array of type
+IndexPacket, with each entry corresponding to a pixel x,y position. For
+PseudoClass images, the entry's value is the offset into the colormap
+(see <a href="#colorMap">colorMap</a> ) for that pixel. For CMYKA
+images, the indexes are used to contain the alpha channel.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="getPixels"></a> <font size="-1">getPixels</font></center>
+ </td>
+ <td><font size="-1"><a href="PixelPacket.html">PixelPacket</a> *</font></td>
+ <td><font size="-1">const int x_, const int y_, const unsigned
+int columns_, const unsigned int rows_</font></td>
+ <td><font size="-1">Transfers pixels from the image to the pixel
+cache as defined by the specified rectangular region. Modified pixels
+may be subsequently transferred back to the image via syncPixels. </font><font
+ size="-1">The returned pointer remains valid until the next getPixel,
+getConstPixels, or setPixels call and should never be deallocated by the
+user.</font><font size="-1"></font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="setPixels"></a> <font size="-1">setPixels</font></center>
+ </td>
+ <td><font size="-1"><a href="PixelPacket.html">PixelPacket</a> *</font></td>
+ <td><font size="-1">const int x_, const int y_, const unsigned
+int columns_, const unsigned int rows_</font></td>
+ <td><font size="-1">Allocates a pixel cache region to store image
+pixels as defined by the region rectangle. This area is
+subsequently transferred from the pixel cache to the image via
+syncPixels. </font><font size="-1">The returned pointer remains
+valid until the next getPixel, getConstPixels, or setPixels call and
+should never be deallocated by the user.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="syncPixels"></a> <font size="-1">syncPixels</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Transfers the image cache pixels to the image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="readPixels"></a> <font size="-1">readPixels</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#QuantumTypes">QuantumTypes</a>
+quantum_, unsigned char *source_,</font></td>
+ <td><font size="-1">Transfers one or more pixel components from a
+buffer or file into the image pixel cache of an image. ReadPixels is
+typically used to support image decoders. The region transferred
+corresponds to the region set by a preceding setPixels call.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="writePixels"></a> <font size="-1">writePixels</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1"><a href="Enumerations.html#QuantumTypes">QuantumTypes</a>
+quantum_, unsigned char *destination_</font></td>
+ <td><font size="-1">Transfers one or more pixel components from
+the image pixel cache to a buffer or file. WritePixels is typically
+used to support image encoders. The region transferred corresponds to
+the region set by a preceding getPixels or getConstPixels call.</font></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+ </p>
+</body>
+</html>
diff --git a/www/Magick++/Image.png b/www/Magick++/Image.png
new file mode 100644
index 0000000..35a85ee
--- /dev/null
+++ b/www/Magick++/Image.png
Binary files differ
diff --git a/www/Magick++/ImageDesign.html b/www/Magick++/ImageDesign.html
new file mode 100644
index 0000000..4e26f93
--- /dev/null
+++ b/www/Magick++/ImageDesign.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="Author" content="Bob Friesenhahn">
+<meta name="Description" content="Description of Magick::Image object composition.">
+<title>Magick::Image Data Structures</title>
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body text="#ffffff" bgcolor="#fbc713" link="#0000EE" vlink="#551A8B" alink="#FF0000">
+<center>
+<h1>Magick::Image Data Structures</h1></center>
+The class Magick::Image is a simple handle which points to a reference-counted image representation. This allows multiple Magick::Image instances to share the same image and attributes. At the point in time that the image data, or image attributes are modified and the current reference count is greater than one, the image data and attributes are copied to create a new image with a reference count of one and the reference count on the old image is decremented. If the reference count on the old image becomes zero, then the associated reference and data are deleted. This strategy represents a simple (but effective) form of garbage collection
+<p><img src="Image.png" height="490" width="910"></p>
+</body>
+</html>
diff --git a/www/Magick++/ImageMagick.png b/www/Magick++/ImageMagick.png
new file mode 100644
index 0000000..2c45b08
--- /dev/null
+++ b/www/Magick++/ImageMagick.png
Binary files differ
diff --git a/www/Magick++/Install.html b/www/Magick++/Install.html
new file mode 100644
index 0000000..cec44ff
--- /dev/null
+++ b/www/Magick++/Install.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;17455123">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;17485600">
+<meta name="DESCRIPTION" content="C++ API for ImageMagick">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1 align="center">Installing Magick++</h1>
+<h3>General</h3>
+<p>In order to compile Magick++ you must have access to a standard C++ implementation. The author uses <a href="http://gcc.gnu.org/index.html">gcc 3.1 (GNU C++)</a> which is available under UNIX and under the <a href="http://www.cygwin.com/">Cygwin UNIX-emulation environment</a> for Windows. Standards compliant commercial C++ compilers should also work fine. Most modern C++ compilers for Microsoft Windows or the Mac should work (project files are provided for Microsoft Visual C++ 6.0).</p>
+<p>It was decided that Magick++ will be around for the long-haul, so its API definition depends on valuable C++ features which should be common in all current and future C++ compilers. The compiler must support the following C++ standard features:</p>
+<ul>
+<li>
+<p style="margin-bottom: 0cm">templates</p></li>
+<li>
+<p style="margin-bottom: 0cm">static constructors</p></li>
+<li>
+<p style="margin-bottom: 0cm">C++-style casts (e.g. static_cast)</p></li>
+<li>
+<p style="margin-bottom: 0cm">bool type</p></li>
+<li>
+<p style="margin-bottom: 0cm">string class (<tt><string></tt>)</p></li>
+<li>
+<p style="margin-bottom: 0cm">exceptions (<tt><exception></tt>)</p></li>
+<li>
+<p style="margin-bottom: 0cm">namespaces</p></li>
+<li>
+<p>Standard Template Library (STL) (e.g. <tt><list></tt>, <tt><vector></tt>)</p></li></ul>
+<p style="margin-bottom: 0cm">The author has personally verified that Magick++ compiles and runs using the following compiler/platform combinations:</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Tested Configurations</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<tr>
+<td>
+<p align="center"><b>Operating System</b></p></td>
+<td>
+<p align="center"><b>Architecture</b></p></td>
+<td>
+<p align="center"><b>Compiler</b></p></td></tr>
+<tr>
+<td>
+<p><font size="2">SunOS 5.6, 5.7, 5.8 ("Solaris 2.6, 7, & 8)</font></p></td>
+<td>
+<p><font size="2">SPARC</font></p></td>
+<td>
+<p><font size="2">GCC 3.0.4</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">SunOS 5.7 ("Solaris 7")</font></p></td>
+<td>
+<p><font size="2">SPARC</font></p></td>
+<td>
+<p><font size="2">Sun Workshop 5.0 C++</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">SunOS 5.8 ("Solaris 8")</font></p></td>
+<td>
+<p><font size="2">SPARC</font></p></td>
+<td>
+<p><font size="2">Sun WorkShop 6 update 2 C++ 5.3</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">FreeBSD 4.0</font></p></td>
+<td>
+<p><font size="2">Intel Pentium II</font></p></td>
+<td>
+<p><font size="2">GCC 2.95</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Windows NT 4.0 SP6a</font></p></td>
+<td>
+<p><font size="2">Intel Pentium II</font></p></td>
+<td>
+<p><font size="2">Visual C++ 6.0 Standard Edition</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Windows XP</font></p></td>
+<td>
+<p><font size="2">Intel Pentium IV</font></p></td>
+<td>
+<p><font size="2">Visual C++ 6.0 Standard Edition Service Pack 5</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Windows '98 + <a href="http://www.cygwin.com/">Cygwin</a> 1.3.10</font></p></td>
+<td>
+<p><font size="2">Intel Pentium III</font></p></td>
+<td>
+<p><font size="2">GCC 2.95.3-5</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Windows NT 4.0 SP6a</font></p></td>
+<td>
+<p><font size="2">Intel Pentium II</font></p></td>
+<td>
+<p><font size="2">GCC 2.95.3-5</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Windows XP + <a href="http://www.cygwin.com/">Cygwin</a> 1.3.10</font></p></td>
+<td>
+<p><font size="2">Intel Pentium IV</font></p></td>
+<td>
+<p><font size="2">GCC 2.95.3-5</font></p></td></tr></table>
+<p style="margin-bottom: 0cm">Users of Magick++ have reported that the following configurations work with Magick++:</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Other Known Working Configurations</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Operating System</b></p></td>
+<td>
+<p align="center"><b>Architecture</b></p></td>
+<td>
+<p align="center"><b>Compiler</b></p></td>
+<td>
+<p><b>Reported By</b></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">Red Hat Linux 6.0</font></p></td>
+<td>
+<p><font size="2">i386 & alpha</font></p></td>
+<td>
+<p><font size="2">EGCS 1.1.2</font></p></td>
+<td>
+<p><font size="2">Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de></font></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">Red Hat Linux 7.0</font></p></td>
+<td>
+<p><font size="2">i386</font></p></td>
+<td>
+<p><font size="2">GCC 2.95.2</font></p></td>
+<td>
+<p><font size="2">Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de></font></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">Red Hat Linux 7.0</font></p></td>
+<td>
+<p><font size="2">i386</font></p></td>
+<td>
+<p><font size="2">GCC "2.96" snapshot</font></p></td>
+<td>
+<p><font size="2">???</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Red Hat Linux 7.X</font></p></td>
+<td>
+<p><font size="2">i386 & alpha</font></p></td>
+<td>
+<p><font size="2">GCC 3.0</font></p></td>
+<td>
+<p><font size="2">Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de></font></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">SGI IRIX 6.2, 6.5</font></p></td>
+<td>
+<p><font size="2">MIPS</font></p></td>
+<td>
+<p><font size="2">IRIX C++ 7.3.1.2m</font></p></td>
+<td>
+<p><font size="2">Albert Chin-A-Young <china@thewrittenword.com></font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">SunOS 5.5.1</font></p></td>
+<td>
+<p><font size="2">SPARC</font></p></td>
+<td>
+<p><font size="2">Sun WorkShop CC 5.0</font></p></td>
+<td>
+<p><font size="2">Albert Chin-A-Young <china@thewrittenword.com></font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">SunOS 5.6, 5.7, 5.8</font></p></td>
+<td>
+<p><font size="2">SPARC</font></p></td>
+<td>
+<p><font size="2">Sun Forte CC 5.3</font></p></td>
+<td>
+<p><font size="2">Albert Chin-A-Young <china@thewrittenword.com></font></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">HP-UX 11.00</font></p></td>
+<td>
+<p><font size="2">PA-RISC</font></p></td>
+<td>
+<p><font size="2">HP-UX aCC A.03.30</font></p></td>
+<td>
+<p><font size="2">Albert Chin-A-Young <china@thewrittenword.com></font></p></td></tr>
+<tr valign="top">
+<td>
+<p><font size="2">Mac OS 9</font></p></td>
+<td>
+<p><font size="2">PowerPC</font></p></td>
+<td>
+<p><font size="2">CodeWarrior Professional Release 6</font></p></td>
+<td>
+<p><font size="2">Leonard Rosenthol <leonardr@digapp.com></font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">Mac OS X 10.1 "Darwin"</font></p></td>
+<td>
+<p><font size="2">PowerPC</font></p></td>
+<td>
+<p><font size="2">GCC 2.95.2 (apple gcc -926)</font></p></td>
+<td>
+<p><font size="2">John Cristy</font></p></td></tr></table>
+<p>Please let me know if you have successfully built and executed Magick++ using a different configuration so that I can add to the table of verified configurations.</p>
+<hr>
+<h3 align="center">Unix/Linux</h3>
+<h4>Building From Source</h4>
+<p>Magick++ is now built using the ImageMagick configure script and Makefiles. Please follow the installation instructions provided by its README.txt file. The following instructions pertain to the Magick++ specific configuration and build options.</p>
+<p>To install ImageMagick plus Magick++ under Unix, installation should be similar to</p>
+<p><tt>./configure [ --prefix=/prefix ]</tt><br>
+<tt>make</tt><br>
+<tt>make install</tt></p>
+<p>The library is currently named similar to 'libMagick++.a' (and/or libMagick++.so.5.0.39) and is installed under prefix/lib while the headers are installed with Magick++.h being installed in prefix/include and the remaining headers in prefix/include/Magick++.</p>
+<p>To influence the options the configure script chooses, you may specify 'make' option variables when running the configure script. For example, the command</p>
+<blockquote><tt>./configure CXX=CC CXXFLAGS=-O2 LIBS=-lposix</tt></blockquote>
+<p style="margin-bottom: 0cm"><br>
+specifies additional options to the configure script. The following table shows the available options.</p>
+<br>
+<p align="center" style="margin-bottom: 0cm">Environment Variables That Effect Configure</p>
+<table width="100%" border="1" cellpadding="2" cellspacing="3">
+<col width="40*">
+<col width="216*">
+<tr>
+<td width="16%">
+<p align="center"><b>Make Option Variable</b></p></td>
+<td width="84%">
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td width="16%">
+<p align="center">CXX</p></td>
+<td width="84%">
+<p>Name of C++ compiler (e.g. 'CC -Xa') to use compiler 'CC -Xa'</p></td></tr>
+<tr>
+<td width="16%">
+<p align="center">CXXFLAGS</p></td>
+<td width="84%">
+<p>Compiler flags (e.g. '-g -O2') to compile with</p></td></tr>
+<tr>
+<td width="16%">
+<p align="center">CPPFLAGS</p></td>
+<td width="84%">
+<p>Include paths (-I/somedir) to look for header files</p></td></tr>
+<tr>
+<td width="16%">
+<p align="center">LDFLAGS</p></td>
+<td width="84%">
+<p>Library paths (-L/somedir) to look for libraries. Systems that support the notion of a library run-path may additionally require -R/somedir or '-rpath /somedir' in order to find shared libraries at run time.</p></td></tr>
+<tr>
+<td width="16%">
+<p align="center">LIBS</p></td>
+<td width="84%">
+<p>Extra libraries (-lsomelib) required to link</p></td></tr></table>
+<h4>Installing Linux RPMs</h4>
+<p style="margin-bottom: 0cm"><a href="mailto:Alexander.Zimmermann@FMI.Uni-Passau.De">Dr. Alexander Zimmermann</a> maintains Linux RPMs of ImageMagick and Magick++. These may be downloaded from <a href="ftp://ftp.forwiss.uni-passau.de/pub/linux/local/ImageMagick/">ftp://ftp.forwiss.uni-passau.de/pub/linux/local/ImageMagick/</a>. This site is mirrored periodically to the <a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/">ImageMagick linux directory</a> and from there to the many ImageMagick and Linux mirror sites. Please note that the default version of the C++ compiler delivered with the system may not be sufficient to support Magick++. Use of GCC 2.95 or later is strongly recommended under Linux.</p>
+<hr>
+<h3 align="center">Windows '9X, NT, 2000, ME, & XP</h3>
+<h4>Visual C++</h4>
+<p>Windows '95 through Windows XP are supported by the ImageMagick source package for NT available in the 'win2k' subdirectory of the ImageMagick ftp site (and mirrors). The ImageMagick source package for NT provides sources to ImageMagick, Magick++, add-on libraries (e.g. JPEG), and a ready-made Visual C++ 6.0 build environment. Please read the configuration and build instructions in README.txt (under the heading "Windows Win2K/95 VISUAL C++ 6.0 COMPILATION") in order to build Magick++.</p>
+<h4>Cygwin & GCC</h4>
+<p>It is possible to build both ImageMagick and Magick++ under the Cygwin Unix-emulation environment for Windows NT. Obtain and install Cgywin from <a href="http://www.cygwin.com/">http://www.cygwin.com/</a> . An X11R6 environment for Cygwin is available from <a href="http://www.cygwin.com/xfree/">http://www.cygwin.com/xfree/</a> .To build using Cygwin and GCC, follow the instructions for building under Unix.</p>
+</body>
+</html>
diff --git a/www/Magick++/Magick++.png b/www/Magick++/Magick++.png
new file mode 100644
index 0000000..849ece7
--- /dev/null
+++ b/www/Magick++/Magick++.png
Binary files differ
diff --git a/www/Magick++/Montage.html b/www/Magick++/Montage.html
new file mode 100644
index 0000000..a9c8dc2
--- /dev/null
+++ b/www/Magick++/Montage.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;15244548">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;15294647">
+<meta name="DESCRIPTION" content="Documentation for Magick++'s montage options class.">
+<meta name="KEYWORDS" content="Magick++,montage,ImageMagick">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000ff" vlink="#ff0000" bgcolor="#fbc713">
+<h1 align="center">Magick::Montage Class</h1>
+<p>A montage is a single image which is composed of thumbnail images composed in a uniform grid. The size of the montage image is determined by the size of the individual thumbnails and the number of rows and columns in the grid.</p>
+<p>The following illustration shows a montage consisting of three columns and two rows of thumbnails rendered on a gray background:</p>
+<p align="center"><img src="montage-sample-framed.jpg" name="Graphic1" align="bottom" width="378" height="238" border="0"></p>
+<p>Montages may be either "plain" (undecorated thumbnails) or "framed" (decorated thumbnails). In order to more easily understand the options supplied to <a href="STL.html#montageImages"><i>MontageImages()</i></a>, montage options are supplied by two different classes: <a href="#Magick::Montage"><i>Magick::Montage</i></a> and <a href="#Magick::MontageFramed"><i>Magick::MontageFramed</i></a>.</p>
+<h3 align="center"><a name="PlainMontages"></a>Plain Montages</h3>
+<p><a name="Magick::Montage"></a><i>Magick::Montage</i> is the base class to provide montage options and provides methods to set all options required to render simple (unframed) montages. See <a href="#Magick::MontageFramed"><i>Magick::MontageFramed</i></a>if you would like to create a framed montage.</p>
+<p>Unframed thumbnails consist of four components: the thumbnail image, the thumbnail border, an optional thumbnail shadow, and an optional thumbnail label area.</p>
+<p align="center"><img src="thumbnail-anatomy-plain.jpg" name="Graphic2" align="middle" width="309" height="327" border="0"></p>
+<p style="margin-bottom: 0cm"> </p>
+<p align="center" style="margin-bottom: 0cm"><b>Montage Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Method</b></p></td>
+<td>
+<p align="center"><b>Return Type</b></p></td>
+<td>
+<p align="center"><b>Signature(s)</b></p></td>
+<td>
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td>
+<p align="center"><font size="2">Montage</font></p></td>
+<td bgcolor="#666666"></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Default constructor</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="backgroundColor"></a><font size="2">backgroundColor</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &backgroundColor_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the background color that thumbnails are imaged upon.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="compose"></a><font size="2">compose</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2"><a href="Enumerations.html#CompositeOperator">CompositeOperator</a> compose_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the image composition algorithm for thumbnails. This controls the algorithm by which the thumbnail image is placed on the background. Use of OverCompositeOp is recommended for use with images that have transparency. This option may have negative side-effects for images without transparency.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Enumerations.html#CompositeOperator"><font size="2">CompositeOperator</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="fileName"></a><font size="2">fileName</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">std::string fileName_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the image filename to be used for the generated montage images. To handle the case were multiple montage images are generated, a <span lang="en-US">printf</span>-style format may be embedded within the filename. For example, a filename specification of image%02d.miff names the montage images as image00.miff, image01.miff, etc.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="fill"></a>fill</p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &pen_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the fill color to use for the label text.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="font"></a><font size="2">font</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">std::string font_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the thumbnail label font.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="geometry"></a><font size="2">geometry</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Geometry.html">Geometry</a> &geometry_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the size of the generated thumbnail.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Geometry.html"><font size="2">Geometry</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="gravity"></a><font size="2">gravity</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2"><a href="Enumerations.html#GravityType">GravityType</a> gravity_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the thumbnail positioning within the specified geometry area. If the thumbnail is smaller in any dimension than the geometry, then it is placed according to this specification.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Enumerations.html"><font size="2">GravityType</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="label"></a><font size="2">label</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">std::string label_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the format used for the image label. Special <a href="FormatCharacters.html">format characters</a> may be embedded in the format string to include information about the image.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="penColor"></a><font size="2">penColor</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &pen_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the pen color to use for the label text (same as <i>fill</i>).</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="pointSize"></a><font size="2">pointSize</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">unsigned int pointSize_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the thumbnail label font size.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">unsigned int</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="shadow"></a><font size="2">shadow</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">bool shadow_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Enable/disable drop-shadow on thumbnails.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">bool</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="stroke"></a><font size="2">stroke</font></p></td>
+<td>
+<p>void</p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &pen_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the stroke color to use for the label text .</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="texture"></a><font size="2">texture</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">std::string texture_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies a texture image to use as montage background. The built-in textures "<tt>granite:</tt>" and "<tt>plasma:</tt>" are available. A texture is the same as a background image.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">std::string</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="tile"></a><font size="2">tile</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Geometry.html">Geometry</a> &tile_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the maximum number of montage columns and rows in the montage. The montage is built by filling out all cells in a row before advancing to the next row. Once the montage has reached the maximum number of columns and rows, a new montage image is started.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Geometry.html"><font size="2">Geometry</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="transparentColor"></a><font size="2">transparentColor</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &transparentColor_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies a montage color to set transparent. This option can be set the same as the background color in order for the thumbnails to appear without a background when rendered on an HTML page. For best effect, ensure that the transparent color selected does not occur in the rendered thumbnail colors.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr></table>
+<h3 align="center"><a name="FramedMontages"></a>Framed Montages</h3>
+<p><a name="Magick::MontageFramed"></a><i>Magick::MontageFramed</i> provides the means to specify montage options when it is desired to have decorative frames around the image thumbnails. <i>MontageFramed</i> inherits from <i>Montage</i> and therefore provides all the methods of <i>Montage</i> as well as those shown in the table "MontageFramed Methods".</p>
+<p>Framed thumbnails consist of four components: the thumbnail image, the thumbnail frame, the thumbnail border, an optional thumbnail shadow, and an optional thumbnail label area.</p>
+<p align="center"><img src="thumbnail-anatomy-framed.jpg" name="Graphic3" align="middle" width="350" height="345" border="0"></p>
+<p style="margin-bottom: 0cm"> </p>
+<p align="center" style="margin-bottom: 0cm"><b>MontageFramed Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Method</b></p></td>
+<td>
+<p align="center"><b>Return Type</b></p></td>
+<td>
+<p align="center"><b>Signature(s)</b></p></td>
+<td>
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td>
+<p align="center"><font size="2">MontageFramed</font></p></td>
+<td bgcolor="#666666"></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Default constructor (enable frame via <i>frameGeometry</i>).</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="borderColor"></a><font size="2">borderColor</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &borderColor_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the background color within the thumbnail frame.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="borderWidth"></a><font size="2">borderWidth</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">unsigned int borderWidth_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the border (in pixels) to place between a thumbnail and its surrounding frame. This option only takes effect if thumbnail frames are enabled (via <i>frameGeometry</i>) and the thumbnail geometry specification doesn't also specify the thumbnail border width.</font></p></td></tr>
+<tr>
+<td>
+<p><font size="2">unsigned int</font></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="frameGeometry"></a><font size="2">frameGeometry</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Geometry.html">Geometry</a> &frame_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the geometry specification for frame to place around thumbnail. If this parameter is not specified, then the montage is unframed.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Geometry.html"><font size="2">Geometry</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr>
+<tr>
+<td rowspan="2">
+<p align="center"><a name="matteColor"></a><font size="2">matteColor</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">const <a href="Color.html">Color</a> &matteColor_</font></p></td>
+<td rowspan="2">
+<p><font size="2">Specifies the thumbnail frame color.</font></p></td></tr>
+<tr>
+<td>
+<p><a href="Color.html"><font size="2">Color</font></a></p></td>
+<td>
+<p><font size="2">void</font></p></td></tr></table>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/NEWS.html b/www/Magick++/NEWS.html
new file mode 100644
index 0000000..2685910
--- /dev/null
+++ b/www/Magick++/NEWS.html
@@ -0,0 +1,64 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="Description" content="ImageMagick - a robust collection of tools and libraries to read, write and manipulate an image in any of the popular image formats. ImageMagick allows dynamic creation of GIFs, making it suitable for Web applications.">
+<meta name="Keywords" content="ImageMagick,Image Magick,Image Magic,PerlMagick,Perl Magick,Perl Magic,WebMagick,Web Magic,image processing,software development,simulation,image software,AniMagick,Animagic,Magick++">
+<meta name="Resource-type" content="document">
+<meta name="Robots" content="ALL">
+<link rel="stylesheet" type="text/css" href="../www/magick.css">
+</head>
+
+<body marginheight=1 marginwidth=1 topmargin=1 leftmargin=1>
+<a name="top"></a>
+<table border="0" cellpadding="0" cellspacing="0" summary="Masthead" width="100%">
+<tbody>
+<tr>
+<td bgcolor="#003399" width="25%" height="118" background="../images/background.gif"><a href="http://www.imagemagick.org/"><img src="../images/script.gif" width="278" height="118" border="0" alt="" /></a></td>
+<td bgcolor="#003399" width="60%" height="118" background="../images/background.gif"><a href="http://www.networkeleven.com/direct.php?magick_all"><img src="../images/promote.png" border="0" width="186" height="52" vspace="29" alt="Powered by NetworkEleven" /></a></td>
+<td bgcolor="#003399" width="114" height="118" align="right"><img src="../images/sprite.png" width="114" height="118" alt="" /></td>
+<td bgcolor="#003399" width="114" height="118" align="right"><a href="http://www.imagemagick.net"><img src="../images/logo.png" width="114" height="118" border="0" alt="ImageMagick logo" /></a></td>
+</tr></tbody></table>
+</table><table align="left" border=0 cellpadding=2 cellspacing=2 summary="Navigation buttons" width="20%">
+ <tr>
+ <td>
+ <form target="_self" action="../index.html"><input type="submit" title="ImageMagick Home" value=" Home " style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td><td>
+ <form target="_self" action="../www/apis.html"><input type="submit" title="ImageMagick API" value=" API " style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td><td>
+ <form target="_self" action="../www/archives.html"><input type="submit" title="ImageMagick Download" value="Download" style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold"></form>
+ </td>
+ </tr>
+</table>
+<div align="right" style="margin-top:3px; padding-right:4px">
+ <form action="http://studio.imagemagick.org/Sage/scripts/Sage.cgi">
+ <input type="TEXT" name="query" size=32 maxlength=255>
+ <input type="SUBMIT" name="sa" value="Search" style="background-image:url('../images/background.gif'); bgcolor:#003399; color:#fbc713; font-weight:bold">
+ </form><br>
+</div>
+<table align="left" border=0 cellpadding=10 cellspacing=0 style="margin-top:-17px" width="100%"><tr><td>
+
+<br> <br>
+
+<HTML>
+<HEAD>
+<TITLE>Magick++ News</TITLE>
+</HEAD>
+<body text="#000000" bgcolor="#fbc713" link="#1F00FF" vlink="#9900DD" alink="#FF0000">
+<h3>Magick++ News</h3>
+<p>
+No news is good news.
+
+<hr>
+
+<a href="#top"><img src="../images/top.gif" border=0 width="35" height="46" align="right" alt="Top of page"></a>
+<form action="http://studio.imagemagick.org/magick/" style="margin-top:5px">
+ <input type="submit" title="Help!" value="Help!" style="background-image:url('../images/background.gif'); color:#fbc713; font-weight:bold">
+ <small>"Image manipulation software that works like magick"</small>
+ </form></td>
+ </tr></table>
+
+</BODY>
+</HTML>
diff --git a/www/Magick++/PixelPacket.html b/www/Magick++/PixelPacket.html
new file mode 100644
index 0000000..88f28cf
--- /dev/null
+++ b/www/Magick++/PixelPacket.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;18015392">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;18024233">
+<meta name="DESCRIPTION" content="Description of PixelPacket structure members.">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#1F00FF" vlink="#9900DD" bgcolor="#fbc713">
+<h1 align="center">PixelPacket Structure</h1>
+<p style="margin-bottom: 0cm">The <i>PixelPacket</i> structure is used to represent pixels in ImageMagick. ImageMagick may be compiled to support 32 or 64 bit pixels. The size of PixelPacket is controlled by the value of the <i>QuantumDepth</i> define. The default is 64 bit pixels, which provide the best accuracy. If memory consumption must be minimized, or processing time must be minimized, then ImageMagick may be compiled with QuantumDepth=8. The following table shows the relationship between <i>QuantumDepth</i>, the type of <i>Quantum</i>, and the overall <i>PixelPacket</i> size.</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>Effect Of QuantumDepth Values</b></p>
+<center>
+<table width="336" border="1" cellpadding="2" cellspacing="3" bgcolor="#CCCCCC">
+<col width="101">
+<col width="99">
+<col width="110">
+<tr>
+<td width="101">
+<p align="center"><b>QuantumDepth</b></p></td>
+<td width="99">
+<p align="center"><b>Quantum Type</b></p></td>
+<td width="110">
+<p align="center"><b>PixelPacket Size</b></p></td></tr>
+<tr>
+<td width="101">
+<p align="center">8</p></td>
+<td width="99">
+<p align="center">unsigned char</p></td>
+<td width="110">
+<p align="center">32 bits</p></td></tr>
+<tr>
+<td width="101">
+<p align="center">16</p></td>
+<td width="99">
+<p align="center">unsigned short</p></td>
+<td width="110">
+<p align="center">64 bits</p></td></tr></table></center>
+<p style="margin-bottom: 0cm">The members of the <i>PixelPacket</i> structure, and their interpretation, are shown in the following table:</p>
+<br>
+<p align="center" style="margin-bottom: 0cm"><b>PixelPacket Structure Members</b></p>
+<center>
+<table width="523" border="1" cellpadding="2" cellspacing="3" bgcolor="#CCCCCC">
+<col width="58">
+<col width="50">
+<col width="102">
+<col width="152">
+<col width="119">
+<tr>
+<td rowspan="2" width="58">
+<p align="center"><b>Member</b></p></td>
+<td rowspan="2" width="50">
+<p align="center"><b>Type</b></p></td>
+<td colspan="3" width="388">
+<p align="center"><b>Interpretation</b></p></td></tr>
+<tr>
+<td width="102">
+<p align="center"><a href="Enumerations.html#ColorspaceType">RGBColorspace</a></p></td>
+<td width="152">
+<p align="center"><a href="Enumerations.html#ColorspaceType">RGBColorspace</a> + <a href="Image.html#matte">matte</a></p></td>
+<td width="119">
+<p align="center"><a href="Enumerations.html#ColorspaceType">CMYKColorspace</a></p></td></tr>
+<tr>
+<td width="58">
+<p><font size="2">red</font></p></td>
+<td width="50">
+<p><font size="2">Quantum</font></p></td>
+<td width="102">
+<p><font size="2">Red</font></p></td>
+<td width="152">
+<p><font size="2">Red</font></p></td>
+<td width="119">
+<p><font size="2">Cyan</font></p></td></tr>
+<tr>
+<td width="58">
+<p><font size="2">green</font></p></td>
+<td width="50">
+<p><font size="2">Quantum</font></p></td>
+<td width="102">
+<p><font size="2">Green</font></p></td>
+<td width="152">
+<p><font size="2">Green</font></p></td>
+<td width="119">
+<p><font size="2">Magenta</font></p></td></tr>
+<tr>
+<td width="58">
+<p><font size="2">blue</font></p></td>
+<td width="50">
+<p><font size="2">Quantum</font></p></td>
+<td width="102">
+<p><font size="2">Blue</font></p></td>
+<td width="152">
+<p><font size="2">Blue</font></p></td>
+<td width="119">
+<p><font size="2">Yellow</font></p></td></tr>
+<tr>
+<td width="58">
+<p><font size="2">opacity</font></p></td>
+<td width="50">
+<p><font size="2">Quantum</font></p></td>
+<td width="102">
+<p><font size="2">Ignored</font></p></td>
+<td width="152">
+<p><font size="2">Opacity</font></p></td>
+<td width="119">
+<p><font size="2">Black</font></p></td></tr></table></center>
+<br>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/Pixels.html b/www/Magick++/Pixels.html
new file mode 100644
index 0000000..66070b0
--- /dev/null
+++ b/www/Magick++/Pixels.html
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<html>
+<head>
+
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=ibm437">
+ <title>Magick::Pixels Class</title>
+
+ <meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+
+ <meta name="AUTHOR" content="Bob Friesenhahn">
+
+ <meta name="CREATED" content="20020805;15302080">
+
+ <meta name="CHANGEDBY" content="Bob Friesenhahn">
+
+ <meta name="CHANGED" content="20020805;15341200">
+
+ <meta name="DESCRIPTION" content="Class to access raw image pixels.">
+
+ <meta name="KEYWORDS" content="ImageMagick,Pixel,Magick++">
+
+ <style>
+ <!--
+ TD P { color: #000000 }
+ H1 { color: #000000 }
+ P { color: #000000 }
+ A:link { color: #0000ff }
+ A:visited { color: #ff0000 }
+ -->
+ </style>
+</head>
+<body lang="en-US" text="#000000" link="#0000ff" vlink="#ff0000"
+ bgcolor="#ffffff">
+<h1 align="center">Magick::Pixels</h1>
+<p>The <i>Pixels</i> class provides efficient access to raw image
+pixels. Image pixels (of type <a href="PixelPacket.html"><i>PixelPacket</i></a>)
+may be accessed directly via the <i>Image Pixel Cache</i>. The image
+pixel cache is a rectangular window (a view) into the actual image
+pixels (which may be in memory, memory-mapped from a disk file, or
+entirely on disk). Obtain existing image pixels via <i>get()</i>.
+Create a new pixel region using <i>set().</i> </p>
+<p>Depending on the capabilities of the operating system, and the
+relationship of the window to the image, the pixel cache may be a copy
+of the pixels in the selected window, or it may be the actual image
+pixels. In any case calling <i>sync()</i> insures that the base image
+is updated with the contents of the modified pixel cache. The method <i>decode()</i>supports
+copying foreign pixel data formats into the pixel cache according to
+the <i>QuantumTypes</i>. The method <i>encode()</i> supports copying
+the pixels in the cache to a foreign pixel representation according to
+the format specified by <i>QuantumTypes</i>. </p>
+<p>Setting a view using the Pixels class does not cause the number of
+references to the underlying image to be reduced to one. Therefore, in
+order to ensure that only the current generation of the image is
+modified, the Image's <a href="Image.html#modifyImage">modifyImage()</a>
+method should be invoked to reduce the reference count on the underlying
+image to one. If this is not done, then it is possible for a previous
+generation of the image to be modified due to the use of reference
+counting when copying or constructing an Image. </p>
+<p>The <i>PixelPacket</i>* returned by the <i>set</i> and <i>get</i>
+methods, and the <i>IndexPacket</i>* returned by the <i>indexes</i>
+method point to pixel data managed by the <i>Pixels</i> class. The <i>Pixels</i>
+class is responsible for releasing resources associated with the pixel
+view. This means that the pointer should never be passed to delete() or
+free(). </p>
+<p style="margin-bottom: 0cm;">The pixel view is a small image in which
+the pixels may be accessed, addressed, and updated, as shown in the
+following example, which produces an image similar to the one on the
+right (minus lines and text): <br>
+<br>
+</p>
+<table width="100%" border="0" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td>
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000">// Create base image</font></font></font>
+ <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> Image image(Geometry(254,218), "white");</font></font></font>
+ </p>
+
+ <p><font size="2"></font></p>
+ <p> <font face="Courier New,Courier"><font color="#ff0000"><font
+ size="-1"> // Set the image type to TrueColor DirectClass
+representation.</font></font></font><br>
+ <font size="-1"><span
+ style="color: rgb(0, 0, 153); font-family: courier new,courier,monospace;">
+ image.type(TrueColorType</span></font><font size="-1"><span
+ style="color: rgb(0, 0, 153); font-family: courier new,courier,monospace;">);</span></font><br>
+ </p>
+
+ <p><font size="2"><font face="Courier New, Courier"> <font
+ color="#ff0000">// Ensure that there is only one reference to
+underlying image</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#ff0000"> // If this is not done, then image pixels will
+not be modified.</font></font></font><br>
+ <font size="2"><font face="Courier New, Courier"> <font
+ color="#000099">image.modifyImage();<br>
+ </font></font></font></p>
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Allocate pixel
+view</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> Pixels view(image);</font></font></font> </p>
+
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Set all pixels
+in region anchored at 38x36, with size 160x230 to green.</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> unsigned int columns = 196; unsigned int rows =
+162;</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> Color green("green");</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> PixelPacket *pixels =
+view.get(38,36,columns,rows);</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> for ( int row = 0; row < rows ; ++row )</font></font></font>
+ <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> for ( int column = 0; column < columns ;
+++column )</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> *pixels++=green;</font></font></font> </p>
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Save changes to
+image.<br>
+ </font></font></font><font size="2"></font><font size="2"><font
+ face="Courier New, Courier"><font color="#000099"> view.sync();</font></font></font>
+ </p>
+
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Set all pixels
+in region anchored at 86x72, with size 108x67 to yellow.</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> columns = 108; rows = 67;</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> Color yellow("yellow");</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> pixels = view.get(86,72,columns,rows);</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> for ( int row = 0; row < rows ; ++row )</font></font></font>
+ <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> for ( int column = 0; column < columns ;
+++column )</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> *pixels++=yellow;</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> view.sync();</font></font></font> </p>
+
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Set pixel at
+position 108,94 to red</font></font></font> <br>
+ <font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> *(view.get(108,94,1,1)) = Color("red");</font></font></font> </p>
+ <p><font size="2"><font face="Courier New, Courier"><font
+ color="#000099"> </font><font color="#ff0000"> // Save changes to
+image.<br>
+ </font></font></font><font size="2"><font
+ face="Courier New, Courier"><font color="#000099"> view.sync();<br>
+ <br>
+ </font></font></font></p>
+ </td>
+ <td>
+ <p><img src="Cache.png" name="Graphic1" align="bottom" width="254"
+ height="218" border="0"></p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p style="margin-bottom: 0cm;"><i>Pixels</i> supports the following
+methods: <br>
+<br>
+</p>
+<p align="center" style="margin-bottom: 0cm;"><b>Pixel Cache Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td>
+ <p align="center"><b>Method</b></p>
+ </td>
+ <td>
+ <p align="center"><b>Returns</b></p>
+ </td>
+ <td>
+ <p align="center"><b>Signature</b></p>
+ </td>
+ <td>
+ <p align="center"><b>Description</b></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="get"></a><font size="2">get</font></p>
+ </td>
+ <td>
+ <p><font size="2"><a href="PixelPacket.html">PixelPacket</a>*</font></p>
+ </td>
+ <td>
+ <p><font size="2">const int x_, const int y_, const unsigned
+const int columns_, const unsigned int rows_</font></p>
+ </td>
+ <td>
+ <p><font size="2">Transfers read-write pixels from the image to
+the pixel cache as defined by the specified rectangular region.
+ Modified pixels may be subsequently transferred back to the image
+ via <i>sync</i>. The value returned is intended for pixel access
+ only. It should never be deallocated.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="getConst"></a><font size="2">getConst</font></p>
+ </td>
+ <td>
+ <p><font size="2">const <a href="PixelPacket.html">PixelPacket</a>*</font></p>
+ </td>
+ <td>
+ <p><font size="2">const int x_, const int y_, const unsigned int
+ columns_, const unsigned int rows_</font></p>
+ </td>
+ <td>
+ <p><font size="2">Transfers read-only pixels from the image to
+the pixel cache as defined by the specified rectangular region.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="set"></a><font size="2">set</font></p>
+ </td>
+ <td>
+ <p><font size="2"><a href="PixelPacket.html">PixelPacket</a>*</font></p>
+ </td>
+ <td>
+ <p><font size="2">const int x_, const int y_, const unsigned int
+ columns_, const unsigned int rows_</font></p>
+ </td>
+ <td>
+ <p><font size="2">Allocates a pixel cache region to store image
+ pixels as defined by the region rectangle. This area is
+ subsequently transferred from the pixel cache to the image via <i>sync</i>.
+The value returned is intended for pixel access only. It should
+never be deallocated.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="sync"></a><font size="2">sync</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Transfers the image cache pixels to the image.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="indexes"></a><font size="2">indexes</font></p>
+ </td>
+ <td>
+ <p><font size="2">IndexPacket*</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Returns the PsuedoColor pixel indexes
+ corresponding to the pixel region defined by the last <a href="#get">get</a>
+ , <a href="#getConst">getConst</a>, or <a href="#set">set</a>
+ call. Only valid for PseudoColor and CMYKA images. The pixel
+ indexes (an array of type <i>IndexPacket</i>, which is typedef <i>Quantum</i>,
+which is itself typedef <i>unsigned char</i>, or <i>unsigned short</i>,
+depending on the value of the <i>QuantumDepth </i>define) provide
+the <span lang="en-US">colormap</span> index (see <a
+ href="Image.html#colorMap">colorMap</a>) for each pixel in the
+image. For CMYKA images, the indexes represent the black
+channel. The value returned is intended for pixel access only. It
+should never be deallocated.</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="x"></a><font size="2">x</font></p>
+ </td>
+ <td>
+ <p><font size="2">int</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Left ordinate of view</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="y"></a><font size="2">y</font></p>
+ </td>
+ <td>
+ <p><font size="2">int</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Top ordinate of view</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="columns"></a><font size="2">columns</font></p>
+ </td>
+ <td>
+ <p><font size="2">unsigned int</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Width of view</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center"><a name="rows"></a><font size="2">rows</font></p>
+ </td>
+ <td>
+ <p><font size="2">unsigned int</font></p>
+ </td>
+ <td>
+ <p><font size="2">void</font></p>
+ </td>
+ <td>
+ <p><font size="2">Height of view</font></p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p><br>
+<br>
+</p>
+</body>
+</html>
diff --git a/www/Magick++/README.txt b/www/Magick++/README.txt
new file mode 100644
index 0000000..c4cb380
--- /dev/null
+++ b/www/Magick++/README.txt
@@ -0,0 +1,5 @@
+This directory contains the Magick++ documentation.
+
+The file NEWS.html is generated from Magick++ source directory via
+ txt2html -t 'Magick++ News' < NEWS > ../www/Magick++/NEWS.html
+using Seth Golub's fantastic txt2html translator.
diff --git a/www/Magick++/STL.html b/www/Magick++/STL.html
new file mode 100644
index 0000000..de0aab8
--- /dev/null
+++ b/www/Magick++/STL.html
@@ -0,0 +1,1964 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR"
+ content="Mozilla/4.78 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
+ <meta name="Author" content="Bob Friesenhahn">
+ <meta name="Description"
+ content="Documentation on Magick++'s STL support templates.">
+ <meta name="Keywords" content="STL,Magick++,ImageMagick">
+ <title>Magick++ STL Support</title>
+</head>
+<body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#ff0000"
+ alink="#000088">
+<center>
+<h1> Magick++ STL Support</h1>
+</center>
+Magick++ provides a set of <a href="http://www.sgi.com/tech/stl/">Standard
+Template Libary</a> (<a href="http://www.sgi.com/tech/stl/">STL</a> )
+algorithms for operating across ranges of image frames in a container.
+It also provides a set of STL unary function objects to apply an
+operation on image frames in a container via an algorithm which uses
+unary function objects. A good example of a standard algorithm which is
+useful for processing containers of image frames is the STL <i><a
+ href="http://www.sgi.com/tech/stl/for_each.html"> for_each</a> </i>
+algorithm which invokes a unary function object on a range of container
+elements.
+<p>Magick++ uses a limited set of template argument types. The current
+template argument types are: </p>
+<blockquote><a href="http://www.sgi.com/tech/stl/Container.html">Container</a>
+ <blockquote>A container having the properties of a <a
+ href="http://www.sgi.com/tech/stl/BackInsertionSequence.html"> Back
+Insertion Sequence</a> . Sequences support forward iterators and Back
+Insertion Sequences support the additional abilty to append an element
+via push_back(). Common compatable container types are the STL <<a
+ href="http://www.sgi.com/tech/stl/Vector.html"> vector</a> > and <<a
+ href="http://www.sgi.com/tech/stl/List.html">list</a> > template
+containers. This template argument is usually used to represent an
+output container in which one or more image frames may be appended.
+Containers like STL <<a href="http://www.sgi.com/tech/stl/Vector.html">vector</a>
+> which have a given default <i>capacity</i> may need to have their <i>
+capacity</i> adjusted via r<i>eserve() </i>to a larger <i>capacity</i>
+in order to support the expected final <i>size</i> . Since Magick++
+images are very small, it is likely that the default capacity of STL <<a
+ href="http://www.sgi.com/tech/stl/Vector.html"> vector</a> > is
+sufficient for most situations.</blockquote>
+ <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+ <blockquote>An input iterator used to express a position in a
+container. These template arguments are typically used to represent a
+range of elements with f<i>irst_</i> representing the first element to
+be processed and <i> last_</i> representing the element to stop at. When
+processing the entire contents of a container, it is handy to know that
+STL containers usually provide the begin() and end() methods to return
+input interators which correspond with the first and last elements,
+respectively.</blockquote>
+</blockquote>
+The following is an example of how frames from a GIF animation <font
+ color="#000000"> "test_image_anim.gif" may be appended horizontally
+with the resulting image written to the file "appended_image.miff":</font>
+<p><tt><font color="#000066">#include <list></font></tt> <br>
+<tt><font color="#000066">#include <Magick++.h></font></tt> <br>
+<tt><font color="#000066">using namespace std;</font></tt> <br>
+<tt><font color="#000066">using namespace Magick;</font></tt> </p>
+<p><tt><font color="#000066">int main(int /*argc*/,char **/*argv*/)</font></tt> <br>
+<tt><font color="#000066">{</font></tt> <br>
+<tt><font color="#000066"> list<Image> imageList;</font></tt> <br>
+<tt><font color="#000066"> readImages( &imageList,
+"test_image_anim.gif" );</font></tt> </p>
+<p><tt><font color="#000066"> Image appended;</font></tt> <br>
+<tt><font color="#000066"> appendImages( &appended,
+imageList.begin(), imageList.end() );</font></tt> <br>
+<tt><font color="#000066"> appended.write(
+"appended_image.miff" );</font></tt> <br>
+<tt><font color="#000066"> return 0;</font></tt> <br>
+<tt><font color="#000066">}</font></tt> </p>
+<p>The available Magick++ specific STL algorithms for operating on
+sequences of image frames are shown in the following table: <br>
+
+<table border="1" width="100%">
+ <caption><b>Magick++ STL Algorithms For Image Sequences</b></caption> <tbody>
+ <tr>
+ <td>
+ <center><b>Algorithm</b></center>
+ </td>
+ <td>
+ <center><b>Signature</b></center>
+ </td>
+ <td>
+ <center><b>Description</b></center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="animateImages"></a> <font size="-1">animateImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Animate a sequence of image frames. Image
+frames are displayed in succession, creating an animated effect. The
+animation options are taken from the first image frame. This feature is
+only supported under X11 at the moment.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="appendImages"></a> <font size="-1">appendImages</font></center>
+ </td>
+ <td><font size="-1"><a href="Image.html">Image</a>
+*appendedImage_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, bool stack_ = false</font></td>
+ <td><font size="-1">Append a sequence of image frames, writing
+the result to <i>appendedImage_.</i> All the input image frames must
+have the same width or height. Image frames of the same width are
+stacked top-to-bottom. Image frames of the same height are stacked
+left-to-right. If the <i>stack_</i> parameter is false, rectangular
+image frames are stacked left-to-right otherwise top-to-bottom.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="averageImages"></a> <font size="-1">averageImages</font></center>
+ </td>
+ <td><font size="-1"><a href="Image.html">Image</a>
+*averagedImage_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Average a sequence of image frames, writing
+the result to <i>averagedImage_</i>. All the input image frames must
+be the same size in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="coalesceImages"></a> <font size="-1">coalesceImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*coalescedImages_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font><br>
+ </td>
+ <td><font size="-1">Create a coalesced image sequence obtained by
+"playing" the image sequence (observing page offsets and disposal
+methods) to create a new image sequence in which all frames are full
+size and completely rendered. Note that if the original image sequence
+relied on page offsets and disposal methods that the resulting sequence
+will be larger (perhaps much larger) then the original. This is useful
+for GIF animation sequences that have page offsets and disposal methods.
+The resuting image sequence is returned via <i>coalescedImages_.</i></font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="deconstructImages"></a> <font size="-1">deconstructImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*deconstructedImages_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Break down an image sequence into constituent
+parts. This is useful for creating GIF or MNG animation sequences.
+The input sequence is specified by <i>first_</i> and <i>last_</i>, and
+the deconstruted images are returned via <i>deconstructedImages_</i>.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="displayImages"></a> <font size="-1">displayImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Display a sequence of image frames. Through
+use of a pop-up menu, image frames may be selected in succession. This
+feature is fully supported under X11 but may have only limited support
+in other environments.</font> <br>
+ <font size="-1"><b><font color="#ff0000">Caution: </font></b> if
+an image format is not compatable with the display visual (e.g. JPEG
+on a colormapped display) then the original image will be altered. Use a
+copy of the original if this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="flattenImages"></a> <font size="-1">flattenImages</font></center>
+ </td>
+ <td><font size="-1"><a href="Image.html">Image</a>
+*flattendImage_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Merge a sequence of image frames which
+represent image layers into a single composited representation. The <i>flattendImage_</i>
+parameter points to an existing Image to update with the flattened
+image. This function is useful for combining Photoshop layers into a
+single image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="mapImages"></a> <font size="-1">mapImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, const <a href="Image.html">Image</a> & mapImage_, bool
+dither_, bool measureError_ = false</font></td>
+ <td><font size="-1">Replace the colors of a sequence of images
+with the closest color from a reference image. Set <i>dither_</i> to <i>true</i>
+to enable dithering. Set <i>measureError_</i> to <i>true</i> in
+order to evaluate quantization error.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="montageImages"></a> <font size="-1">montageImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*montageImages_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, const <a href="Montage.html">Montage</a> &montageOpts_</font></td>
+ <td><font size="-1">Create a composite image by combining several
+separate image frames. Multiple frames may be generated in the output
+container <i> montageImages_ </i>depending on the tile setting and the
+number of image frames montaged. Montage options are provided via the
+parameter <i>montageOpts_</i> . Options set in the first image frame (<a
+ href="Image.html#backgroundColor"> backgroundColor,</a> <a
+ href="Image.html#borderColor">borderColor</a> , <a
+ href="Image.html#matteColor">matteColor</a> , <a
+ href="Image.html#penColor">penColor,</a> <a href="Image.html#font">font,</a>
+and <a href="Image.html#fontPointsize">fontPointsize</a> ) are also used
+as options by <i>montageImages().</i></font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="morphImages"></a> <font size="-1">morphImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*morphedImages_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, unsigned int frames_</font></td>
+ <td><font size="-1">Morph a seqence of image frames. This
+algorithm expands the number of image frames (output to the
+container <i>morphedImages_)</i> by adding the number of intervening
+frames specified by <i>frames_</i> such that the original frames morph
+(blend) into each other when played as an animation.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="mosaicImages"></a> <font size="-1">mosaicImages</font></center>
+ </td>
+ <td><font size="-1"><a href="Image.html">Image</a> *mosaicImage_, <a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_</font></td>
+ <td><font size="-1">Inlay a number of images to form a single
+coherent picture. The <i>mosicImage_</i> argument is updated with a
+mosaic constructed from the image sequence represented by <i>first_</i>
+through <i>last_</i> .</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="readImages"></a> <font size="-1">readImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*sequence_, const std::string &imageSpec_</font></td>
+ <td><font size="-1">Read a sequence of image frames into existing
+container (appending to container <i>sequence_</i>) with image names
+specified in the string <i>imageSpec_</i>.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/Container.html"> Container</a>
+*sequence_, const <a href="Blob.html">Blob</a> &blob_</font></td>
+ <td><font size="-1">Read a sequence of image frames into existing
+container (appending to container sequence_) from <a href="Blob.html">Blob</a>
+blob_.</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="writeImages"></a> <font size="-1">writeImages</font></center>
+ </td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, const std::string &imageSpec_, bool adjoin_ = true</font></td>
+ <td><font size="-1">Write images in container to file specified
+by string <i>imageSpec_</i>. Set <i>adjoin_ </i>to false to write a
+set of image frames via a wildcard <i>imageSpec_ </i>(e.g.
+image%02d.miff).</font> <br>
+The wildcard must be one of <tt>%0Nd, %0No, or %0Nx</tt>. <br>
+ <font size="-1"><b><font color="#ff0000">Caution: </font></b> if
+an image format is selected which is capable of supporting fewer colors
+than the original image or quantization has been requested, the original
+image will be quantized to fewer colors. Use a copy of the original if
+this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, <a href="Blob.html">Blob</a> *blob_, bool adjoin_ = true</font></td>
+ <td><font size="-1">Write images in container to in-memory BLOB
+specified by <a href="Blob.html">Blob</a> blob_. Set adjoin_ to false to
+write a set of image frames via a wildcard imageSpec_ (e.g.
+image%02d.miff).</font> <br>
+ <font size="-1"><b><font color="#ff0000">Caution:</font></b> if an
+image format is selected which is capable of supporting fewer colors
+than the original image or quantization has been requested, the original
+image will be quantized to fewer colors. Use a copy of the original if
+this is a problem.</font></td>
+ </tr>
+ <tr>
+ <td><a name="quantizeImages"></a> <font size="-1">quantizeImages</font></td>
+ <td><font size="-1"><a
+ href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
+first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
+last_, bool measureError_ = false</font></td>
+ <td><font size="-1">Quantize colors in images using current
+quantization settings. Set <i>measureError_</i> to <i>true</i> in order
+to measure quantization error.</font></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+ </p>
+<center>
+<h3> Magick++ Unary Function Objects</h3>
+</center>
+Magick++ unary function objects inherit from the STL unary_function
+template class . The STL unary_function template class is of the form
+<blockquote><tt><font color="#000099">unary_function<Arg, Result></font></tt></blockquote>
+and expects that derived classes implement a method of the form:
+<blockquote><tt><font color="#000099">Result operator()( Arg argument_
+);</font></tt></blockquote>
+which is invoked by algorithms using the function object. In the case
+of unary function objects defined by Magick++, the invoked function
+looks like:
+<blockquote><tt><font color="#000099">void operator()( Image
+&image_);</font></tt></blockquote>
+with a typical implementation looking similar to:
+<blockquote><tt><font color="#000099">void operator()( Image
+&image_ )</font></tt> <br>
+ <tt><font color="#000099"> {</font></tt> <br>
+ <tt><font color="#000099"> image_.contrast(
+_sharpen );</font></tt> <br>
+ <tt><font color="#000099"> }</font></tt></blockquote>
+where <i>contrast</i> is an Image method and <i>_sharpen </i>is an
+argument stored within the function object by its contructor. Since
+constructors may be polymorphic, a given function object may have
+several constructors and selects the appropriate Image method based on
+the arguments supplied.
+<p>In essence, unary function objects (as provided by Magick++) simply
+provide the means to construct an object which caches arguments for
+later use by an algorithm designed for use with unary function objects.
+There is a unary function object corresponding each algorithm provided
+by the <a href="Image.html"> Image</a> class and there is a contructor
+available compatable with each synonymous method in the Image class. </p>
+<p>The unary function objects that Magick++ provides to support
+manipulating images are shown in the following table: <br>
+
+<table border="1">
+ <caption><b>Magick++ Unary Function Objects For Image Manipulation</b></caption> <tbody>
+ <tr align="center">
+ <td><b>Function Object</b></td>
+ <td><b>Constructor Signatures(s)</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td valign="middle">
+ <div align="center"><a name="adaptiveThresholdImage"></a> <font
+ size="-1">adaptiveThresholdImage</font><br>
+ </div>
+ </td>
+ <td valign="middle"><font size="-1">unsigned int width, unsigned
+int height, unsigned offset = 0</font><br>
+ </td>
+ <td valign="top"><font size="-1">Apply adaptive thresholding to
+the image. Adaptive thresholding is useful if the ideal threshold level
+is not known in advance, or if the illumination gradient is not constant
+across the image. Adaptive thresholding works by evaulating the mean
+(average) of a pixel region (size specified by <i>width</i> and <i>height</i>)
+and using the mean as the thresholding value. In order to remove
+residual noise from the background, the threshold may be adjusted by
+subtracting a constant <i>offset</i> (default zero) from the mean to
+compute the threshold.</font><br>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="addNoiseImage"></a> <font size="-1">addNoiseImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#NoiseType">NoiseType</a>
+noiseType_</font></td>
+ <td><font size="-1">Add noise to image with specified noise type.</font></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: middle;"><small><a
+ name="affineTransformImage"></a>affineTransformImage<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>const DrawableAffine
+&affine_<br>
+ </small></td>
+ <td style="vertical-align: middle;"><small>Transform image by
+specified affine (or free transform) matrix.<br>
+ </small></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="annotateImage"></a> <font size="-1">annotateImage</font></center>
+ </td>
+ <td><font size="-1">const std::string &text_, const <a
+ href="Geometry.html"> Geometry</a> &location_</font></td>
+ <td><font size="-1">Annotate with text using specified text,
+bounding area, placement gravity, and rotation. If <i>boundingArea_</i>
+is invalid, then bounding area is entire image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">std::string text_, const <a
+ href="Geometry.html">Geometry</a> &boundingArea_, <a
+ href="Enumerations.html#GravityType">GravityType</a> gravity_</font></td>
+ <td><font size="-1">Annotate using specified text, bounding area,
+and placement gravity. If <i>boundingArea_</i> is invalid, then
+bounding area is entire image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::string &text_, const <a
+ href="Geometry.html"> Geometry</a> &boundingArea_, <a
+ href="Enumerations.html#GravityType">GravityType</a> gravity_, double
+degrees_, </font></td>
+ <td><font size="-1">Annotate with text using specified text,
+bounding area, placement gravity, and rotation. If <i>boundingArea_</i>
+is invalid, then bounding area is entire image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::string &text_, <a
+ href="Enumerations.html#GravityType"> GravityType</a> gravity_</font></td>
+ <td><font size="-1">Annotate with text (bounding area is entire
+image) and placement gravity.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="blurImage"></a> <font size="-1">blurImage</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Blur image. The radius_ parameter specifies
+the radius of the Gaussian, in pixels, not counting the center
+pixel. The sigma_ parameter specifies the standard deviation of
+the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="borderImage"></a> <font size="-1">borderImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "6x6+0+0"</font></td>
+ <td><font size="-1">Border image (add border to image). The
+color of the border is specified by the <i>borderColor</i> attribute.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="charcoalImage"></a> <font size="-1">charcoalImage</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Charcoal effect image (looks like charcoal
+sketch). The radius_ parameter specifies the radius of the Gaussian, in
+pixels, not counting the center pixel. The sigma_ parameter
+specifies the standard deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chopImage"></a> <font size="-1">chopImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Chop image (remove vertical or horizontal
+subregion of image)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="colorizeImage"></a> <font size="-1">colorizeImage</font></center>
+ </td>
+ <td><font size="-1">const unsigned int opacityRed_, const
+unsigned int opacityGreen_, const unsigned int opacityBlue_, const Color
+&penColor_</font></td>
+ <td><font size="-1">Colorize image with pen color, using
+specified percent opacity for red, green, and blue quantums.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const unsigned int opacity_, const <a
+ href="Color.html"> Color</a> &penColor_</font></td>
+ <td><font size="-1">Colorize image with pen color, using
+specified percent opacity.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="commentImage"></a> <font size="-1">commentImage</font></center>
+ </td>
+ <td><font size="-1">const std::string &comment_</font></td>
+ <td><font size="-1">Comment image (add comment string to
+image). By default, each image is commented with its file name.
+Use this method to assign a specific comment to the
+image. Optionally you can include the image filename, type, width,
+height, or other image attributes by embedding <a
+ href="FormatCharacters.html">special format characters.</a> </font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="compositeImage"></a> <font size="-1">compositeImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&compositeImage_, int xOffset_, int yOffset_, <a
+ href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
+compose_ = <i>InCompositeOp</i></font></td>
+ <td rowspan="2"><font size="-1">Compose an image onto another at
+specified offset and using specified algorithm</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&compositeImage_, const Geometry &offset_, <a
+ href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
+compose_ = <i>InCompositeOp</i></font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="condenseImage"></a> <font size="-1">condenseImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Condense image (Re-run-length encode image in
+memory).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="contrastImage"></a> <font size="-1">contrastImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int sharpen_</font></td>
+ <td><font size="-1">Contrast image (enhance intensity differences
+in image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="cropImage"></a> <font size="-1">cropImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Crop image (subregion of original image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="cycleColormapImage"></a> <font size="-1">cycleColormap-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1">int amount_</font></td>
+ <td><font size="-1">Cycle image colormap</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="despeckleImage"></a> <font size="-1">despeckleImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Despeckle image (reduce speckle noise)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="drawImage"></a> <font size="-1">drawImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Drawable.html">Drawable</a>
+&drawable_</font></td>
+ <td><font size="-1">Draw shape or text on image.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const std::list<<a href="Drawable.html">Drawable</a>
+> &drawable_</font></td>
+ <td><font size="-1">Draw shapes or text on image using a set of
+Drawable objects contained in an STL list. Use of this method improves
+drawing performance and allows batching draw objects together in a list
+for repeated use.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="edgeImage"></a> <font size="-1">edgeImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int radius_ = 0.0</font></td>
+ <td><font size="-1">Edge image (hilight edges in image).
+The radius is the radius of the pixel neighborhood.. Specify a radius
+of zero for automatic radius selection.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="embossImage"></a> <font size="-1">embossImage</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Emboss image (hilight edges with 3D effect).
+The radius_ parameter specifies the radius of the Gaussian, in pixels,
+not counting the center pixel. The sigma_ parameter specifies the
+standard deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="enhanceImage"></a> <font size="-1">enhanceImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Enhance image (minimize noise)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="equalizeImage"></a> <font size="-1">equalizeImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Equalize image (histogram equalization)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="flipImage"></a> <font size="-1">flipImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Flip image (reflect each scanline in the
+vertical direction)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="floodFillColorImage"></a> <font size="-1">floodFill-</font> <br>
+ <font size="-1">ColorImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &fillColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill color across pixels
+that match the color of the target pixel and are neighbors of the
+target pixel. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const <a href="Color.html">Color</a> &fillColor_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &fillColor_, const <a href="Color.html">Color</a>
+&borderColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill color across pixels
+starting at target-pixel and stopping at pixels matching specified
+border color. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const <a href="Color.html">Color</a> &fillColor_, const <a
+ href="Color.html">Color</a> &borderColor_</font></td>
+ </tr>
+ <tr>
+ <td rowspan="4">
+ <center><a name="floodFillTextureImage"></a> <font size="-1">floodFill-</font> <br>
+ <font size="-1">TextureImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Image.html"> Image</a> &texture_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill texture across pixels
+that match the color of the target pixel and are neighbors of the
+target pixel. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const Image &texture_</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const Image
+&texture_, const <a href="Color.html">Color</a> &borderColor_</font></td>
+ <td rowspan="2"><font size="-1">Flood-fill texture across pixels
+starting at target-pixel and stopping at pixels matching specified
+border color. Uses current fuzz setting when determining color match.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&point_, const Image &texture_, const <a href="Color.html">Color</a>
+&borderColor_</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="flopImage"></a> <font size="-1">flopImage</font></center>
+ </td>
+ <td><font size="-1">void </font></td>
+ <td><font size="-1">Flop image (reflect each scanline in the
+horizontal direction)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="frameImage"></a> <font size="-1">frameImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "25x25+6+6"</font></td>
+ <td rowspan="2"><font size="-1">Add decorative frame around image</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int width_, unsigned int height_,
+int x_, int y_, int innerBevel_ = 0, int outerBevel_ = 0</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="gammaImage"></a> <font size="-1">gammaImage</font></center>
+ </td>
+ <td><font size="-1">double gamma_</font></td>
+ <td><font size="-1">Gamma correct image (uniform red, green, and
+blue correction).</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">double gammaRed_, double gammaGreen_, double
+gammaBlue_</font></td>
+ <td><font size="-1">Gamma correct red, green, and blue channels
+of image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="gaussianBlur"></a> <font size="-1">gaussianBlurImage</font></center>
+ </td>
+ <td><font size="-1">double width_, double sigma_</font></td>
+ <td><font size="-1">Gaussian blur image. The number of neighbor
+pixels to be included in the convolution mask is specified by
+'width_'. For example, a width of one gives a (standard) 3x3
+convolution mask. The standard deviation of the gaussian bell curve is
+specified by 'sigma_'.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="implodeImage"></a> <font size="-1">implodeImage</font></center>
+ </td>
+ <td><font size="-1">double factor_</font></td>
+ <td><font size="-1">Implode image (special effect)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="labelImage"></a> <font size="-1">labelImage</font></center>
+ </td>
+ <td><font size="-1">const string &label_</font></td>
+ <td><font size="-1">Assign a label to an image. Use this option
+to assign a specific label to the image. Optionally
+you can include the image filename, type, width, height, or scene
+number in the label by embedding <a href="FormatCharacters.html">special
+format characters.</a> If the first character of string is @, the image
+label is read from a file titled by the remaining characters in the
+string. When converting to Postscript, use this option to specify
+a header string to print above the image.</font></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="levelImage"></a>levelImage<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>const double black_point,
+const double white_point, const double mid_point=1.0<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>Level image. Adjust the
+levels of the image by scaling the colors falling between specified
+white and black points to the full available quantum range. The
+parameters provided represent the black, mid (gamma), and white
+points. The black point specifies the darkest color in the image.
+Colors darker than the black point are set to zero. Mid point (gamma)
+specifies a gamma correction to apply to the image. White point
+specifies the lightest color in the image. Colors brighter than
+the white point are set to the maximum quantum value. The black and
+white point have the valid range 0 to QuantumRange while mid (gamma) has a
+useful range of 0 to ten.</small></td>
+ </tr>
+ <tr>
+ <td style="text-align: center; vertical-align: middle;"><small><a
+ name="levelChannelImage"></a>levelChannelImage<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>const Magick::ChannelType
+channel, const double black_point, const double white_point, const
+double mid_point=1.0<br>
+ </small></td>
+ <td style="vertical-align: top;"><small>Level image channel.
+Adjust the levels of the image channel by scaling the values falling
+between specified white and black points to the full available quantum
+range. The parameters provided represent the black, mid (gamma), and
+white points. The black point specifies the darkest color in the image.
+Colors darker than the black point are set to zero. Mid point (gamma)
+specifies a gamma correction to apply to the image. White point
+specifies the lightest color in the image. Colors brighter than the
+white point are set to the maximum quantum value. The black and white
+point have the valid range 0 to QuantumRange while mid (gamma) has a useful
+range of 0 to ten.</small></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="layerImage"></a> <font size="-1">layerImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ChannelType">ChannelType</a>
+layer_</font></td>
+ <td><font size="-1">Extract layer from image. Use this option to
+extract a particular layer from the image. <i>MatteLayer</i>,
+for example, is useful for extracting the opacity values from an
+image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="magnifyImage"></a> <font size="-1">magnifyImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Magnify image by integral size</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="mapImage"></a> <font size="-1">mapImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&mapImage_ , bool dither_ = false</font></td>
+ <td><font size="-1">Remap image colors with closest color from
+reference image. Set dither_ to <i>true</i> in to apply Floyd/Steinberg
+error diffusion to the image. By default, color reduction chooses an
+optimal set of colors that best represent the original
+image. Alternatively, you can choose a
+particular set of colors from an image file
+with this option.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matteFloodfillImage"></a> <font size="-1">matteFloodfill-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&target_, unsigned int matte_, int x_, int y_, <a
+ href="Enumerations.html#PaintMethod"> PaintMethod</a> method_</font></td>
+ <td><font size="-1">Floodfill designated area with a matte value</font></td>
+ </tr>
+ <tr>
+ <td><a name="medianFilterImage"></a> <font size="-1">medianFilterImage</font></td>
+ <td><font size="-1">const double radius_ = 0.0</font></td>
+ <td><font size="-1">Filter image by replacing each pixel
+component with the median color in a circular neighborhood</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="minifyImage"></a> <font size="-1">minifyImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Reduce image by integral size</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="modulateImage"></a> <font size="-1">modulateImage</font></center>
+ </td>
+ <td><font size="-1">double brightness_, double saturation_,
+double hue_</font></td>
+ <td><font size="-1">Modulate percent hue, saturation, and
+brightness of an image. </font><font size="-1">Modulation of
+saturation and brightness is as a ratio of the current value (1.0 for no
+change). Modulation of hue is an absolute rotation of -180 degrees to
++180 degrees from the current position corresponding to an argument
+range of 0 to 2.0 (1.0 for no change).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="negateImage"></a> <font size="-1">negateImage</font></center>
+ </td>
+ <td><font size="-1">bool grayscale_ = false</font></td>
+ <td><font size="-1">Negate colors in image. Replace every
+pixel with its complementary color (white becomes black, yellow becomes
+blue, etc.). Set grayscale to only negate grayscale values in
+image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="normalizeImage"></a> <font size="-1">normalizeImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Normalize image (increase contrast by
+normalizing the pixel values to span the full range of color values).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="oilPaintImage"></a> <font size="-1">oilPaintImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int radius_ = 3</font></td>
+ <td><font size="-1">Oilpaint image (image looks like oil painting)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="opacityImage"></a> <font size="-1">opacityImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int opacity_</font></td>
+ <td><font size="-1">Set or attenuate the opacity channel in the
+image. If the image pixels are opaque then they are set to the specified
+opacity value, otherwise they are blended with the supplied opacity
+value. The value of opacity_ ranges from 0 (completely opaque) to <i>QuantumRange</i>.
+The defines <i>OpaqueOpacity</i> and <i>TransparentOpacity</i> are
+available to specify completely opaque or completely transparent,
+respectively.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="opaqueImage"></a> <font size="-1">opaqueImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&opaqueColor_, const <a href="Color.html">Color</a> &penColor_</font></td>
+ <td><font size="-1">Change color of pixels matching opaqueColor_
+to specified penColor_.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeImage"></a> <font size="-1">quantizeImage</font></center>
+ </td>
+ <td><font size="-1">bool measureError_ = false</font></td>
+ <td><font size="-1">Quantize image (reduce number of colors). Set
+measureError_ to true in order to calculate error attributes.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="raiseImage"></a> <font size="-1">raiseImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ = "6x6+0+0", bool raisedFlag_ = false</font></td>
+ <td><font size="-1">Raise image (lighten or darken the edges of
+an image to give a 3-D raised or lowered effect)</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="reduceNoiseImage"></a> <font size="-1">reduceNoise-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td rowspan="2"><font size="-1">Reduce noise in image using a
+noise peak elimination filter.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">unsigned int order_</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="rollImage"></a> <font size="-1">rollImage</font></center>
+ </td>
+ <td><font size="-1">int columns_, int rows_</font></td>
+ <td><font size="-1">Roll image (rolls image vertically and
+horizontally) by specified number of columnms and rows)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="rotateImage"></a> <font size="-1">rotateImage</font></center>
+ </td>
+ <td><font size="-1">double degrees_</font></td>
+ <td><font size="-1">Rotate image counter-clockwise by specified
+number of degrees</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="sampleImage"></a> <font size="-1">sampleImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_ </font></td>
+ <td><font size="-1">Resize image by using pixel sampling algorithm</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="scaleImage"></a> <font size="-1">scaleImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Resize image by using simple ratio algorithm</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="segmentImage"></a> <font size="-1">segmentImage</font></center>
+ </td>
+ <td><font size="-1">double clusterThreshold_ = 1.0,</font> <br>
+ <font size="-1">double smoothingThreshold_ = 1.5</font></td>
+ <td><font size="-1">Segment (coalesce similar image components)
+by analyzing the histograms of the color components and identifying
+units that are homogeneous with the fuzzy c-means technique. Also uses <i>quantizeColorSpace</i>
+and <i>verbose</i> image attributes. Specify <i>clusterThreshold_</i> ,
+as the number of pixels each cluster must exceed
+the cluster threshold to be considered valid. <i>SmoothingThreshold_</i>
+eliminates noise in the second derivative of the histogram. As the
+value is increased, you can expect a smoother
+second derivative. The default is 1.5.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shadeImage"></a> <font size="-1">shadeImage</font></center>
+ </td>
+ <td><font size="-1">double azimuth_ = 30, double elevation_ = 30,</font> <br>
+ <font size="-1">bool colorShading_ = false</font></td>
+ <td><font size="-1">Shade image using distant light source.
+Specify <i> azimuth_</i> and <i>elevation_</i> as the
+position of the light source. By default, the shading
+results as a grayscale image.. Set c<i>olorShading_</i> to <i>true</i> to
+shade the red, green, and blue components of the image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="sharpenImage"></a> <font size="-1">sharpenImage</font></center>
+ </td>
+ <td><font size="-1">const double radius_ = 1, const double sigma_
+= 0.5</font></td>
+ <td><font size="-1">Sharpen pixels in image. The radius_
+parameter specifies the radius of the Gaussian, in pixels, not counting
+the center pixel. The sigma_ parameter specifies the standard
+deviation of the Laplacian, in pixels.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shaveImage"></a> <font size="-1">shaveImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Shave pixels from image edges.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="shearImage"></a> <font size="-1">shearImage</font></center>
+ </td>
+ <td><font size="-1">double xShearAngle_, double yShearAngle_</font></td>
+ <td><font size="-1">Shear image (create parallelogram by sliding
+image by X or Y axis). Shearing slides one edge of an image along
+the X or Y axis, creating a
+parallelogram. An X direction shear slides an edge along the X
+axis, while a Y direction shear slides an
+edge along the Y axis. The amount of the shear is controlled by a
+shear angle. For X direction shears, x degrees
+is measured relative to the Y axis, and similarly, for Y direction
+shears y degrees is measured relative to the X axis. Empty
+triangles left over from shearing the image are filled
+with the color defined as <i>borderColor</i>. </font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="solarizeImage"></a> <font size="-1">solarizeImage</font></center>
+ </td>
+ <td><font size="-1">double factor_</font></td>
+ <td><font size="-1">Solarize image (similar to effect seen when
+exposing a photographic film to light during the development process)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="spreadImage"></a> <font size="-1">spreadImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int amount_ = 3</font></td>
+ <td><font size="-1">Spread pixels randomly within image by
+specified amount</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="steganoImage"></a> <font size="-1">steganoImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&watermark_</font></td>
+ <td><font size="-1">Add a digital watermark to the image (based
+on second image)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="stereoImage"></a> <font size="-1">stereoImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&rightImage_</font></td>
+ <td><font size="-1">Create an image which appears in stereo when
+viewed with red-blue glasses (Red image on left, blue on right)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="swirlImage"></a> <font size="-1">swirlImage</font></center>
+ </td>
+ <td><font size="-1">double degrees_</font></td>
+ <td><font size="-1">Swirl image (image pixels are rotated by
+degrees)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="textureImage"></a> <font size="-1">textureImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Image.html">Image</a>
+&texture_</font></td>
+ <td><font size="-1">Layer a texture on image background</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="thresholdImage"></a> <font size="-1">thresholdImage</font></center>
+ </td>
+ <td><font size="-1">double threshold_</font></td>
+ <td><font size="-1">Threshold image</font></td>
+ </tr>
+ <tr>
+ <td rowspan="2">
+ <center><a name="transformImage"></a> <font size="-1">transformImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&imageGeometry_</font></td>
+ <td rowspan="2"><font size="-1">Transform image based on image
+and crop geometries. Crop geometry is optional.</font></td>
+ </tr>
+ <tr>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&imageGeometry_, const <a href="Geometry.html">Geometry</a>
+&cropGeometry_ </font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="transparentImage"></a> <font size="-1">transparentImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Add matte image to image, setting pixels
+matching color to transparent.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="trimImage"></a> <font size="-1">trimImage</font></center>
+ </td>
+ <td><font size="-1">void</font></td>
+ <td><font size="-1">Trim edges that are the background color from
+the image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="waveImage"></a> <font size="-1">waveImage</font></center>
+ </td>
+ <td><font size="-1">double amplitude_ = 25.0, double wavelength_
+= 150.0</font></td>
+ <td><font size="-1">Alter an image along a sine wave.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="zoomImage"></a> <font size="-1">zoomImage</font></center>
+ </td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Zoom image to specified size.</font></td>
+ </tr>
+ </tbody>
+</table>
+</p>
+<p>Function objects are available to set attributes on image frames
+which are equivalent to methods in the Image object. These function
+objects allow setting an option across a range of image frames using f<tt>
+or_each()</tt>. </p>
+<p>The following code is an example of how the color 'red' may be set
+to transparent in a GIF animation: </p>
+<p><tt><font color="#000066">list<image> images;</font></tt> <br>
+<tt><font color="#000066">readImages( &images, "animation.gif" );</font></tt> <br>
+<tt><font color="#000066">for_each ( images.begin(), images.end(),
+transparentImage( "red" ) );</font></tt> <br>
+<tt><font color="#000066">writeImages( images.begin(), images.end(),
+"animation.gif" );</font></tt> </p>
+<p>The available function objects for setting image attributes are <br>
+
+<table border="1">
+ <caption style="font-weight: bold;">Image Attributes</caption> <tbody>
+ <tr>
+ <td>
+ <center><b>Attribute</b></center>
+ </td>
+ <td>
+ <center><b>Type</b></center>
+ </td>
+ <td>
+ <center><b>Constructor Signature(s)</b></center>
+ </td>
+ <td>
+ <center><b>Description</b></center>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="adjoinImage"></a> <font size="-1">adjoinImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Join images into a single multi-image file.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="antiAlias"></a> <font size="-1">antiAliasImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Control antialiasing of rendered Postscript
+and Postscript or TrueType fonts. Enabled by default.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="animationDelay"></a> <font size="-1">animation-</font> <br>
+ <font size="-1">DelayImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int (0 to 65535)</font></td>
+ <td><font size="-1">unsigned int delay_</font></td>
+ <td><font size="-1">Time in 1/100ths of a second (0 to 65535)
+which must expire before displaying the next image in an animated
+sequence. This option is useful for regulating the animation of a
+sequence of GIF images within Netscape.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="animationIterations"></a> <font size="-1">animation-</font> <br>
+ <font size="-1">IterationsImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int iterations_</font></td>
+ <td><font size="-1">Number of iterations to loop an animation
+(e.g. Netscape loop extension) for.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="backgroundColor"></a> <font size="-1">background-</font> <br>
+ <font size="-1">ColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Image background color</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="backgroundTexture"></a> <font size="-1">background-</font> <br>
+ <font size="-1">TextureImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const string &texture_</font></td>
+ <td><font size="-1">Image to use as background texture.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="borderColor"></a> <font size="-1">borderColor-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1"> const <a href="Color.html">Color</a>
+&color_</font></td>
+ <td><font size="-1">Image border color</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="boxColor"></a> <font size="-1">boxColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&boxColor_</font></td>
+ <td><font size="-1">Base color that annotation text is rendered
+on.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaBluePrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">BluePrimaryImage</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity blue primary point (e.g. x=0.15,
+y=0.06)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaGreenPrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">GreenPrimaryImage</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity green primary point (e.g. x=0.3,
+y=0.6)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaRedPrimary"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">RedPrimaryImage</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity red primary point (e.g. x=0.64,
+y=0.33)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="chromaWhitePoint"></a> <font size="-1">chroma-</font> <br>
+ <font size="-1">WhitePointImage</font></center>
+ </td>
+ <td><font size="-1">double x & y</font></td>
+ <td><font size="-1">double x_, double y_</font></td>
+ <td><font size="-1">Chromaticity white point (e.g. x=0.3127,
+y=0.329)</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="colorFuzz"></a> <font size="-1">colorFuzzImage</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">double fuzz_</font></td>
+ <td><font size="-1">Colors within this distance are considered
+equal. A number of algorithms search for a target color. By
+default the color must be exact. Use this option to match colors that
+are close to the target color in RGB space.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="colorMap"></a> <font size="-1">colorMapImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">unsigned int index_, const <a
+ href="Color.html">Color</a> &color_</font></td>
+ <td><font size="-1">Color at color-pallet index.</font></td>
+ </tr>
+ <tr>
+ <td><a name="colorSpaceImage"></a> <font size="-1">colorSpaceImage</font></td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+colorSpace_</font></td>
+ <td><font size="-1">The colorspace (e.g. CMYK) used to represent
+the image pixel colors. Image pixels are always stored as RGB(A) except
+for the case of CMY(K).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="composeImage"></a> <font size="-1">composeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#CompositeOperator">CompositeOperator</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+compose_</font></td>
+ <td><font size="-1">Composition operator to be used when
+composition is implicitly used (such as for image flattening).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="compressType"></a> <font size="-1">compressType-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#CompressionType">CompressionType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#CompressionType">CompressionType</a>
+compressType_</font></td>
+ <td><font size="-1">Image compresion type. The default is the
+compression type of the specified image file.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="density"></a> <font size="-1">densityImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a>
+(default 72x72)</font></td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&density_</font></td>
+ <td><font size="-1">Vertical and horizontal resolution in pixels
+of the image. This option specifies an image density when decoding a
+Postscript or Portable Document page. Often used with <i>psPageSize</i>.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="depth"></a> <font size="-1">depthImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int (8 or 16)</font></td>
+ <td><font size="-1">unsigned int depth_</font></td>
+ <td><font size="-1">Image depth. Used to specify the bit depth
+when reading or writing raw images or thwn the output format
+supports multiple depths. Defaults to the quantum depth that
+ImageMagick is compiled with.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="endianImage"></a> <font size="-1">endianImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a>
+endian_</font></td>
+ <td><font size="-1">Specify (or obtain) endian option for formats
+which support it.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fileName"></a> <font size="-1">fileNameImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const std::string &fileName_</font></td>
+ <td><font size="-1">Image file name.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fillColorImage"></a> <font size="-1">fillColorImage</font></center>
+ </td>
+ <td><font size="-1">Color</font></td>
+ <td><font size="-1">const Color &fillColor_</font></td>
+ <td><font size="-1">Color to use when filling drawn objects</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="filterType"></a> <font size="-1">filterTypeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a>
+filterType_</font></td>
+ <td><font size="-1">Filter to use when resizing image. The
+reduction filter employed has a sigificant effect on the time required
+to resize an image and the resulting quality. The default filter is <i>Lanczos</i>
+which has been shown to produce good results when reducing images.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="font"></a> <font size="-1">fontImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const std::string &font_</font></td>
+ <td><font size="-1">Text rendering font. If the font is a fully
+qualified X server font name, the font is obtained from an X
+server. To use a TrueType font, precede the TrueType filename with an @.
+Otherwise, specify a Postscript font name (e.g.
+"helvetica").</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="fontPointsize"></a> <font size="-1">fontPointsize-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int pointSize_</font></td>
+ <td><font size="-1">Text rendering font point size</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="gifDisposeMethod"></a> <font size="-1">gifDispose-</font> <br>
+ <font size="-1">MethodImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font> <br>
+ <font size="-1">{ 0 = Disposal not specified,</font> <br>
+ <font size="-1">1 = Do not dispose of graphic,</font> <br>
+ <font size="-1">3 = Overwrite graphic with background color,</font> <br>
+ <font size="-1">4 = Overwrite graphic with previous graphic. }</font></td>
+ <td><font size="-1">unsigned int disposeMethod_</font></td>
+ <td><font size="-1">GIF disposal method. This option is used to
+control how successive frames are rendered (how the preceding frame is
+disposed of) when creating a GIF animation.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="interlaceType"></a> <font size="-1">interlace-</font> <br>
+ <font size="-1">TypeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a>
+interlace_</font></td>
+ <td><font size="-1">The type of interlacing scheme (default <i>NoInterlace</i>
+). This option is used to specify the type of interlacing
+scheme for raw image formats such as RGB or YUV. <i>NoInterlace</i>
+means do not interlace, <i>LineInterlace</i> uses scanline
+interlacing, and <i>PlaneInterlace</i> uses plane interlacing. <i>
+PartitionInterlace</i> is like <i>PlaneInterlace</i> except the
+different planes are saved to individual files (e.g.
+image.R, image.G, and image.B). Use <i>LineInterlace</i> or <i>PlaneInterlace</i>
+to create an interlaced GIF or progressive JPEG image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="isValidImage"></a> <font size="-1">isValidImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool isValid_</font></td>
+ <td><font size="-1">Set image validity. Valid images become empty
+(inValid) if argument is false.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="label"></a> <font size="-1">labelImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const std::string &label_</font></td>
+ <td><font size="-1">Image label</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="lineWidth"></a> <font size="-1">lineWidthImage</font></center>
+ </td>
+ <td><font size="-1">double</font></td>
+ <td><font size="-1">double lineWidth_</font></td>
+ <td><font size="-1">Line width for drawing lines, circles,
+ellipses, etc. See <a href="Drawable.html">Drawable</a> .</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="magick"></a> <font size="-1">magickImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1"> const std::string &magick_</font></td>
+ <td><font size="-1">Get image format (e.g. "GIF")</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matte"></a> <font size="-1">matteImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool matteFlag_</font></td>
+ <td><font size="-1">True if the image has transparency. If set
+True, store matte channel if the image has one otherwise create
+an opaque one.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="matteColor"></a> <font size="-1">matteColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&matteColor_</font></td>
+ <td><font size="-1">Image matte (frame) color</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="monochrome"></a> <font size="-1">monochrome-</font> <br>
+ <font size="-1">Image</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Transform the image to black and white</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="pageImage"></a> <font size="-1">pageImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html#PostscriptPageSize">Geometry</a> </font></td>
+ <td><font size="-1">const <a
+ href="Geometry.html#PostscriptPageSize">Geometry</a> &pageSize_</font></td>
+ <td><font size="-1">Preferred size and location of an image
+canvas.</font>
+ <p><font size="-1">Use this option to specify the dimensions and
+position of the Postscript page in dots per inch or a TEXT page in
+pixels. This option is typically used in concert with <i><a
+ href="#density">density</a> </i>.</font> </p>
+ <p><font size="-1">Page may also be used to position a GIF image
+(such as for a scene in an animation)</font></p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="penColor"></a> <font size="-1">penColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&penColor_</font></td>
+ <td><font size="-1">Pen color to use when annotating on or
+drawing on image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="penTexture"></a> <font size="-1">penTextureImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Image.html">Image</a> </font></td>
+ <td><font size="-1">const Image & penTexture_</font></td>
+ <td><font size="-1">Texture image to paint with (similar to
+penColor).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="pixelColor"></a> <font size="-1">pixelColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">unsigned int x_, unsigned int y_, const <a
+ href="Color.html"> Color</a> &color_</font></td>
+ <td><font size="-1">Get/set pixel color at location x & y.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="psPageSize"></a> <font size="-1">psPageSizeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html#PostscriptPageSize">Geometry</a> </font></td>
+ <td><font size="-1">const <a
+ href="Geometry.html#PostscriptPageSize">Geometry</a> &pageSize_</font></td>
+ <td><font size="-1">Postscript page size. Use this option
+to specify the dimensions of the Postscript page in dots per inch
+or a TEXT page in pixels. This option is typically used in concert with <i>density</i>.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quality"></a> <font size="-1">qualityImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int (0 to 100)</font></td>
+ <td><font size="-1">unsigned int quality_</font></td>
+ <td><font size="-1">JPEG/MIFF/PNG compression level (default 75).</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeColors"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">ColorsImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int colors_</font></td>
+ <td><font size="-1">Preferred number of colors in the image. The
+actual number of colors in the image may be less than your request, but
+never more. Images with less unique colors than specified with this
+option will have any duplicate or unused colors removed.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeColorSpace"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">ColorSpaceImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+colorSpace_</font></td>
+ <td><font size="-1">Colorspace to quantize colors in (default
+RGB). Empirical evidence suggests that distances in color spaces such
+as YUV or YIQ correspond to perceptual color differences more closely
+than do distances in RGB space. These color spaces may give better
+results when color reducing an image.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeDither"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">DitherImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool flag_</font></td>
+ <td><font size="-1">Apply Floyd/Steinberg error diffusion to the
+image. The basic strategy of dithering is to trade intensity
+resolution for spatial resolution by
+averaging the intensities of several
+neighboring pixels. Images which suffer from
+severe contouring when reducing colors can be improved
+with this option. The quantizeColors or monochrome option must be set
+for this option to take effect.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="quantizeTreeDepth"></a> <font size="-1">quantize-</font> <br>
+ <font size="-1">TreeDepthImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int (0 to 8)</font></td>
+ <td><font size="-1">unsigned int treeDepth_</font></td>
+ <td><font size="-1">Depth of the quantization color
+classification tree. Values of 0 or 1 allow selection of the optimal
+tree depth for the color reduction algorithm. Values between 2 and 8 may
+be used to manually adjust the tree depth.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="renderingIntent"></a> <font size="-1">rendering-</font> <br>
+ <font size="-1">IntentImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a>
+render_</font></td>
+ <td><font size="-1">The type of rendering intent</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="resolutionUnits"></a> <font size="-1">resolution-</font> <br>
+ <font size="-1">UnitsImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a>
+units_</font></td>
+ <td><font size="-1">Units of image resolution</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="scene"></a> <font size="-1">sceneImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int scene_</font></td>
+ <td><font size="-1">Image scene number</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="size"></a> <font size="-1">sizeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+ <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+&geometry_</font></td>
+ <td><font size="-1">Width and height of a raw image (an image
+which does not support width and height information). Size may
+also be used to affect the image size read from a multi-resolution
+format (e.g. Photo CD, JBIG, or JPEG.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="strokeColorImage"></a> <font size="-1">strokeColorImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+ <td><font size="-1">const <a href="Color.html">Color</a>
+&strokeColor_</font></td>
+ <td><font size="-1">Color to use when drawing object outlines</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="subImage"></a> <font size="-1">subImageImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int subImage_</font></td>
+ <td><font size="-1">Subimage of an image sequence</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="subRange"></a> <font size="-1">subRangeImage</font></center>
+ </td>
+ <td><font size="-1">unsigned int</font></td>
+ <td><font size="-1">unsigned int subRange_</font></td>
+ <td><font size="-1">Number of images relative to the base image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="tileName"></a> <font size="-1">tileNameImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const std::string &tileName_</font></td>
+ <td><font size="-1">Tile name</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="typeImage"></a> <font size="-1">typeImage</font></center>
+ </td>
+ <td><font size="-1"><a href="Enumerations.html#ImageType">ImageType</a> </font></td>
+ <td><font size="-1"><a href="Enumerations.html#ImageType">ImageType</a>
+type_</font></td>
+ <td><font size="-1">Image storage type.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="verbose"></a> <font size="-1">verboseImage</font></center>
+ </td>
+ <td><font size="-1">bool</font></td>
+ <td><font size="-1">bool verboseFlag_</font></td>
+ <td><font size="-1">Print detailed information about the image</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="view"></a> <font size="-1">viewImage</font></center>
+ </td>
+ <td><font size="-1">std::string</font></td>
+ <td><font size="-1">const std::string &view_</font></td>
+ <td><font size="-1">FlashPix viewing parameters.</font></td>
+ </tr>
+ <tr>
+ <td>
+ <center><a name="x11Display"></a> <font size="-1">x11DisplayImage</font></center>
+ </td>
+ <td><font size="-1">std::string (e.g. "hostname:0.0")</font></td>
+ <td><font size="-1">const std::string &display_</font></td>
+ <td><font size="-1">X11 display to display to, obtain fonts from,
+or to capture image from</font></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+ </p>
+<center>
+<h3> Query Image Format Support</h3>
+</center>
+Magick++ provides the <a name="coderInfoList"></a> <i>coderInfoList()</i>
+function to support obtaining information about the image formats
+supported by ImageMagick. Support for image formats in ImageMagick
+is provided by modules known as "coders". A user-provided container is
+updated based on a boolean truth-table match. The truth-table supports
+matching based on whether ImageMagick can read the format, write the
+format, or supports multiple frames for the format. A wildcard specifier
+is supported for any "don't care" field. The data obtained via
+coderInfoList() may be useful for preparing GUI dialog boxes or for
+deciding which output format to write based on support within the
+ImageMagick build.
+<p>The definition of coderInfoList is: </p>
+<p><tt><font color="#000066"> class CoderInfo</font></tt> <br>
+<tt><font color="#000066"> {</font></tt> <br>
+<tt><font color="#000066"> public:</font></tt> </p>
+<p><tt><font color="#000066"> enum MatchType {</font></tt> <br>
+<tt><font color="#000066">
+AnyMatch, // match any coder</font></tt> <br>
+<tt><font color="#000066"> TrueMatch, //
+match coder if true</font></tt> <br>
+<tt><font color="#000066"> FalseMatch //
+match coder if false</font></tt> <br>
+<tt><font color="#000066"> };</font></tt> </p>
+<p><tt><font color="#000066"> [ remaining CoderInfo
+methods ]</font></tt> </p>
+<p><tt><font color="#000066"> }</font></tt> </p>
+<p><tt><font color="#000066"> template <class Container ></font></tt> <br>
+<tt><font color="#000066"> void coderInfoList( Container
+*container_,</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::MatchType isReadable_ = CoderInfo::AnyMatch,</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::MatchType isWritable_ = CoderInfo::AnyMatch,</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::MatchType isMultiFrame_ = CoderInfo::AnyMatch</font></tt> <br>
+<tt><font color="#000066">
+);</font></tt> </p>
+<p>The following example shows how to retrieve a list of all of the
+coders which support reading images and print the coder attributes (all
+listed formats will be readable): </p>
+<p><tt><font color="#000066"> list<CoderInfo> coderList;</font></tt> <br>
+<tt><font color="#000066"> coderInfoList(
+&coderList,
+// Reference to output list</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::TrueMatch, // Match readable formats</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::AnyMatch, // Don't care about writable formats</font></tt> <br>
+<tt><font color="#000066">
+CoderInfo::AnyMatch); // Don't care about multi-frame support</font></tt> <br>
+<tt><font color="#000066"> list<CoderInfo>::iterator entry
+= coderList.begin();</font></tt> <br>
+<tt><font color="#000066"> while( entry != coderList.end() )</font></tt> <br>
+<tt><font color="#000066"> {</font></tt> <br>
+<tt><font color="#000066"> cout <<
+entry->name() << ": (" << entry->description()
+<< ") : ";</font></tt> <br>
+<tt><font color="#000066"> cout << "Readable =
+";</font></tt> <br>
+<tt><font color="#000066"> if (
+entry->isReadable() )</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"true";</font></tt> <br>
+<tt><font color="#000066"> else</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"false";</font></tt> <br>
+<tt><font color="#000066"> cout << ", ";</font></tt> <br>
+<tt><font color="#000066"> cout << "Writable =
+";</font></tt> <br>
+<tt><font color="#000066"> if (
+entry->isWritable() )</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"true";</font></tt> <br>
+<tt><font color="#000066"> else</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"false";</font></tt> <br>
+<tt><font color="#000066"> cout << ", ";</font></tt> <br>
+<tt><font color="#000066"> cout << "Multiframe
+= ";</font></tt> <br>
+<tt><font color="#000066"> if (
+entry->isMultiframe() )</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"true";</font></tt> <br>
+<tt><font color="#000066"> else</font></tt> <br>
+<tt><font color="#000066"> cout <<
+"false";</font></tt> <br>
+<tt><font color="#000066"> cout << endl;<br>
+ entry ++;</font></tt><br>
+<tt><font color="#000066"> }</font></tt> </p>
+<h3 style="text-align: center;">Obtaining A Color Histogram </h3>
+<p> Magick++ provides the <a name="colorHistogram"></a><span
+ style="font-weight: bold;">colorHistogram</span> template function to
+retrieve a color histogram from an image. A color histogram provides a
+count of how many times each color occurs in the image. The histogram is
+written into a user-provided container, which (for example) could be a <span
+ style="font-style: italic;"><vector></span> or a <span
+ style="font-style: italic;"><map></span>. When a
+<map> is used, the <span style="font-style: italic;">Color</span>
+is used as the key so that quick lookups of usage counts for colors may
+be performed. Writing into a <span style="font-style: italic;"><map></span>
+may be slower than writing into a <span style="font-style: italic;"><vector></span>
+since the <span style="font-style: italic;"><map></span> sorts the
+entries (by color intensity) and checks for uniqueness. Each histogram
+entry is contained in type <span style="font-style: italic;">std::pair<Magick::Color,unsigned
+long></span><span style="font-style: italic;"> </span>with the first
+member of the pair being a <span style="font-style: italic;">Color,</span>
+and the second member of the pair being an '<span
+ style="font-style: italic;">unsigned long</span>'. Use the <span
+ style="font-style: italic;"><pair></span> "<span
+ style="font-style: italic;">first</span>" member to access the Color
+and the "<span style="font-style: italic;">second</span>" member to
+access the number of times the color occurs in the image.</p>
+<p>The template function declaration is as follows:<br>
+</p>
+<p><span style="color: rgb(51, 51, 153); font-family: monospace;">
+template <class Container ></span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+void colorHistogram( Container *histogram_, const Image image)</span><br>
+</p>
+<p>The following examples illustrate using both a <map> and a
+<vector> to retrieve the color histogram, and print out a
+formatted summary.<br>
+<br>
+Using <map>:<br>
+ <br>
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+Image image("image.miff");</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+map<Color,unsigned long> histogram;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+colorHistogram( &histogram, image );</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+std::map<Color,unsigned long>::const_iterator p=histogram.begin();</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+while (p != histogram.end())</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ {</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ cout << setw(10) << (int)p->second
+<< ": ("</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quantum_width)
+<< (int)p->first.redQuantum() << ","</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quant</span><span
+ style="color: rgb(51, 51, 153); font-family: monospace;">um_width)
+<< (int)p->first.greenQuantum() << ","</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quantum_width)
+<< (int)p->first.blueQuantum() << ")"</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << endl;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ p++;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ }</span><br>
+<br>
+Using <vector>:<br>
+ <br>
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+Image image("image.miff");</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+std::vector<std::pair<Color,unsigned long> > histogram;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+colorHistogram( &histogram, image );</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+std::vector<std::pair<Color,unsigned long> >::const_iterator
+p=histogram.begin();</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+while (p != histogram.end())</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ {</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ cout << setw(10) << (int)p->second
+<< ": ("</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quantum_width)
+<< (int)p->first.redQuantum() << ","</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quantum_width)
+<< (int)p->first.greenQuantum() << ","</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << setw(quantum_width)
+<< (int)p->first.blueQuantum() << ")"</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ << endl;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ p++;</span><br
+ style="color: rgb(51, 51, 153); font-family: monospace;">
+<span style="color: rgb(51, 51, 153); font-family: monospace;">
+ }</span><br>
+</p>
+<p><br>
+<br>
+</p>
+</body>
+</html>
diff --git a/www/Magick++/TypeMetric.html b/www/Magick++/TypeMetric.html
new file mode 100644
index 0000000..d6699ed
--- /dev/null
+++ b/www/Magick++/TypeMetric.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="GENERATOR" content="OpenOffice.org 1.0 (Win32)">
+<meta name="AUTHOR" content="Bob Friesenhahn">
+<meta name="CREATED" content="20020805;17544901">
+<meta name="CHANGEDBY" content="Bob Friesenhahn">
+<meta name="CHANGED" content="20020805;17560733">
+<meta name="DESCRIPTION" content="Class to access raw image pixels.">
+<meta name="KEYWORDS" content="ImageMagick,Pixel,Magick++">
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000ff" vlink="#ff0000" bgcolor="#fbc713">
+<h1 align="center">Magick::TypeMetric</h1>
+<p>The <i>TypeMetric</i> class provides the means to pass data from the Image class's TypeMetric method to the user. It provides information regarding font metrics such as ascent, descent, text width, text height, and maximum horizontal advance. The units of these font metrics are in pixels, and that the metrics are dependent on the current Image font (default Ghostscript's "Helvetica"), pointsize (default 12 points), and x/y resolution (default 72 DPI) settings.</p>
+<p>The pixel units may be converted to points (the standard resolution-independent measure used by the typesetting industry) via the following equation:</p>
+<blockquote>size_points = (size_pixels * 72)/resolution</blockquote>
+<p>where resolution is in dots-per-inch (DPI). This means that at the default image resolution, there is one pixel per point.</p>
+<p>Note that a font's pointsize is only a first-order approximation of the font height (ascender + descender) in points. The relationship between the specified pointsize and the rendered font height is determined by the font designer.</p>
+<p>See <a href="http://freetype.sourceforge.net/freetype2/docs/glyphs/index.html">FreeType Glyph Conventions</a> for a detailed description of font metrics related issues.</p>
+<p style="margin-bottom: 0cm">The methods available in the <i>TypeMetric</i> class are shown in the following table:</p>
+<p align="center" style="margin-bottom: 0cm"><b>TypeMetric Methods</b></p>
+<table width="100%" border="1" cellpadding="2" cellspacing="2">
+<tr>
+<td>
+<p align="center"><b>Method</b></p></td>
+<td>
+<p align="center"><b>Returns</b></p></td>
+<td>
+<p><b>Units</b></p></td>
+<td>
+<p align="center"><b>Signature</b></p></td>
+<td>
+<p align="center"><b>Description</b></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="ascent"></a><font size="2">ascent</font></p></td>
+<td>
+<p><font size="2">double</font></p></td>
+<td>
+<p><font size="2">Pixels</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Returns the distance in pixels from the text baseline to the highest/upper grid coordinate used to place an outline point. Always a positive value.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="descent"></a><font size="2">descent</font></p></td>
+<td>
+<p><font size="2">double</font></p></td>
+<td>
+<p><font size="2">Pixels</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Returns the distance in pixels from the baseline to the lowest grid coordinate used to place an outline point. Always a negative value.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="textWidth"></a><font size="2">textWidth</font></p></td>
+<td>
+<p><font size="2">double</font></p></td>
+<td>
+<p><font size="2">Pixels</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Returns text width in pixels.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="textHeight"></a><font size="2">textHeight</font></p></td>
+<td>
+<p><font size="2">double</font></p></td>
+<td>
+<p><font size="2">Pixels</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Returns text height in pixels.</font></p></td></tr>
+<tr>
+<td>
+<p align="center"><a name="maxHorizontalAdvance"></a><font size="2">maxHorizontalAdvance</font></p></td>
+<td>
+<p><font size="2">double</font></p></td>
+<td>
+<p><font size="2">Pixels</font></p></td>
+<td>
+<p><font size="2">void</font></p></td>
+<td>
+<p><font size="2">Returns the maximum horizontal advance (advance from the beginning of a character to the beginning of the next character) in pixels.</font></p></td></tr></table>
+<br>
+</body>
+</html>
diff --git a/www/Magick++/index.html b/www/Magick++/index.html
new file mode 100644
index 0000000..950911f
--- /dev/null
+++ b/www/Magick++/index.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>Magick++ -- C++ API for ImageMagick</title>
+<link rel=stylesheet type=text/css href=../../www/magick.css>
+</head>
+<body lang="en-US" text="#ffffff" link="#0000EE" vlink="#551A8B" bgcolor="#fbc713">
+<h1>Magick++ -- C++ API for ImageMagick</h1>
+<p>Magick++ is the object-oriented C++ API to the <a href="../../index.html"><span lang="en-US">ImageMagick</span></a> image-processing library, the most comprehensive open-source image processing package available. Read the latest <a href="NEWS.html">NEWS</a> and <a href="ChangeLog.html"><span lang="en-US">ChangeLog</span></a> for <span lang="en-US">Magick</span>++.</p>
+<p><img src="ImageMagick.png" name="Graphic2" align="right" width="250" height="259" border="0">Magick++ supports an object model which is inspired by <a href="../../perl.html">PerlMagick</a>. Images support implicit reference counting so that copy constructors and assignment incur almost no cost. The cost of actually copying an image (if necessary) is done just before modification and this copy is managed automatically by Magick++. De-referenced copies are automatically deleted. The image objects support value (rather than pointer) semantics so it is trivial to support multiple generations of an image in memory at one time.</p>
+<p>Magick++ provides integrated support for the <a href="http://www.sgi.com/tech/stl/">Standard Template Library</a> (STL) so that the powerful containers available (e.g. <a href="http://www.sgi.com/tech/stl/Deque.html"><span lang="en-US">deque</span></a>, <a href="http://www.sgi.com/tech/stl/Vector.html">vector</a>, <a href="http://www.sgi.com/tech/stl/List.html">list</a>, and <a href="http://www.sgi.com/tech/stl/Map.html">map</a>) can be used to write programs similar to those possible with PERL &<span lang="en-US">PerlMagick.</span> STL-<span lang="en-US">compatible</span> template versions of <span lang="en-US">ImageMagick's</span> list-style operations are provided so that operations may be performed on multiple images stored in STL containers.</p>
+<h3>Documentation</h3>
+<p>Detailed <a href="Documentation.html">documentation</a> are provided for all Magick++ classes, class methods, and template functions which comprise the API.</p>
+<h3>Obtaining Magick++</h3>
+<p>Magick++ is included as part of <a href="../../index.html">ImageMagick</a> source releases and may be retrieved via <a href="../download.html"><span lang="en-US">ftp</span></a> or <a href="../subversion.html">subversion</a>.</p>
+<h3>Installation</h3>
+<p>Once you have the sources available, follow these detailed <a href="Install.html">installation instructions</a> for UNIX and Windows.</p>
+<h3>Usage</h3>
+<p>A helper script named <i>Magick++-config</i> is installed under Unix which assists with recalling compilation options required to compile and link programs which use Magick++. For example, the following command will compile and link the source file <i>example.cpp</i> to produce the executable <i>example</i> (notice that quotes are backward quotes):</p>
+<blockquote><tt><font color="#ffffff"><font size="2">c++ `Magick++-config --cxxflags --cppflags` -o example example.cpp `Magick++-config --ldflags --libs`
+</font></tt></blockquote>
+<p>Windows users may get started by manually editing a project file for one of the Magick++ demo programs.</p>
+<p><b>Please note that under Windows (and possibly the Mac) it is necessary to initialize the ImageMagick library prior to using the Magick++ library</b>. This initialization is performed by passing the path to the ImageMagick DLLs (assumed to be in the same directory as your program) to the InitializeMagick() function call. This is commonly performed by providing the path to your program (argv[0]) as shown in the following example:</p>
+<blockquote><tt><font color="#ffffff">int main( int /*argc*/, char ** argv)</font></tt><br>
+<tt><font color="#ffffff">{</font></tt><br>
+<tt><font color="#ffffff">InitializeMagick(*argv);</font></tt></blockquote>
+<p>This <span lang="en-US">initialization</span> step is not required under Unix, Linux, <span lang="en-US">Cygwin</span>, or any other operating environment that supports the notion of "installing" ImageMagick in a known location.</p>
+<h3>Reporting Bugs</h3>
+<p>Please report any bugs or questions via the <a href="http://studio.imagemagick.org/magick/index.php">ImageMagick Discourse Server</a>.
+<h3>Related Packages</h3>
+<p>Users who are interested in displaying their images at video game rates on a wide number of platforms and graphic environments (e.g. Windows, X11, BeOS, and Linux/CGI) may want to try <a href="http://www.simplesystems.org/PtcMagick/">PtcMagick</a>, which provides a simple interface between Magick++ and <a href="http://www.gaffer.org/ptc/">OpenPTC</a>.</p>
+</body>
+</html>
diff --git a/www/Magick++/magick.css b/www/Magick++/magick.css
new file mode 100644
index 0000000..01c1ea1
--- /dev/null
+++ b/www/Magick++/magick.css
@@ -0,0 +1,804 @@
+body {
+ background: white;
+ color: black;
+ margin: 0px;
+ padding: 0px;
+ font-size: 0.9em;
+ line-height: 135%;
+}
+
+a {
+ background: transparent;
+ color: #17457c;
+ text-decoration: none;
+ font-weight: bold;
+}
+
+a:hover {
+ background: transparent;
+ color: #991e1e;
+ text-decoration: underline;
+ font-weight: bold;
+}
+
+div.cmd {
+ color: black;
+ background: #d2ddf6;
+ font-family: monospace;
+ margin: 1.33em 40px;
+ padding: 1.33em 1.33em 1.33em 2.66em;
+ text-indent:-1.33em;
+}
+
+div.crt {
+ border-style: ridge;
+ border-width: 7px;
+ border-color: blue;
+ color: white;
+ background: #000044;
+ font-family: monospace;
+ margin: 1.33em 0em;
+ padding: .66em 1.33em .66em 1.33em;
+}
+
+div.cmdout {
+ color: black;
+ background: #d0d0dd;
+ font-family: Times, serif;
+ margin: 1.33em 40px;
+ padding: .66em 1.33em .66em 1.33em;
+}
+
+div.doc-section > p {
+ margin: 1.33em 0px;
+}
+
+div.doc-section {
+margin: 1.33em 40px;
+}
+
+div.eastbar {
+ width: 13.5%;
+ left: 0em;
+ position: absolute;
+ /* height: 100%; */
+ font-size: 12px;
+ border-right-style: solid;
+ border-right-color: #d0d0d0;
+ border-right-width: 1px;
+
+}
+
+div.eqn {
+ text-align: center;
+ }
+
+div.footer {
+ margin-left: 13.5%;
+ background: white;
+}
+
+div.group {
+ border: 2px solid #666;
+ padding: 0;
+ margin: 0.8em 8px;
+}
+
+div.image {
+ text-align: center;
+}
+
+div.info {
+ clear: both;
+}
+
+div.main {
+ background: white;
+ color: black;
+ border-left-style: solid;
+ border-left-color: #d0d0d0;
+ border-left-width: 1px;
+ padding-left: .75em;
+ padding-bottom: .75em;
+ padding-top: 0px;
+ padding-right: .75em;
+ margin-left:13.5%;
+}
+
+div.menu {
+ background: #f5f5f5;
+ color: black;
+ padding-left: .66em;
+ padding-right: .66em;
+ padding-top: .75em;
+ font-weight: bold;
+ vertical-align: top;
+ left: 0px;
+}
+
+
+div.sep {
+ background: #f5f5f5;
+ color: black;
+ padding-left: 1.33em;
+ padding-top: .75em;
+ font-weight: bold;
+ vertical-align: top;
+ left: 0px;
+ font-size: 66%;
+}
+
+
+div.sponsor {
+ padding-left: .5em;
+ padding-top: .25em;
+ font-size: 83.333%;
+}
+
+div.sponsbox {
+ background: #ffffff;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 1px;
+/*
+ border-spacing: 0px;
+ font-size: 90%;
+ padding-top: .5em;
+*/
+ padding-left: .66em;
+ font-weight: bold;
+ vertical-align: top;
+ left: 0px;
+}
+
+
+div.sub {
+ background: #f5f5f5;
+ color: black;
+ padding-left: 1.66em;
+ padding-top: .15em;
+ font-weight: bold;
+ vertical-align: top;
+ left: 0px;
+ font-size: 90%;
+}
+
+div.text {
+ color: black;
+ background: #d2ddf6;
+ font-family: monospace;
+ margin: 1.33em 40px;
+ padding: 1.33em;
+}
+
+div.titlebar {
+ background-image: url("../image/background.jpg");
+ background-repeat: repeat-x;
+ height: 118px;
+ width: 100%;
+ background-color: white; /* #f5f5f5; */
+ border:0px;
+ padding-bottom:0px;
+}
+
+acronym, .help {
+ border-bottom: 1px dashed #9999cc;
+ cursor: help;
+}
+
+div.info img {
+ float: left;
+ padding: 0em 1em 0em 0em;
+}
+
+dl.doc {
+ padding: .833em 1.33em 1.33em 1.33em;
+ border-spacing: 0px;
+ width: 85%;
+ text-align: left;
+ margin: 1.33em 40px;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 1px;
+}
+
+dt.doc {
+ font-weight: bolder;
+ font-size: 110%;
+ padding-top: .5em;
+ }
+
+em.arg {
+ color: #8b0000; /* darkred; */
+ font-weight: normal;
+}
+
+em.caution {
+ color: #981e49;
+ font-weight: bold;
+}
+
+em.emergency {
+ color: #c74646;
+ font-weight: bold;
+}
+
+em.option {
+ color: #8b0000;
+ font-weight: normal;
+}
+
+em.QR {
+ color: #00008b;
+ font-weight: normal;
+}
+
+em.warn {
+ color: #d5a82f;
+ font-weight: bold;
+}
+
+fieldset {
+ padding: .5em;
+ background: white;
+ border: 1px dotted #aaaa77;
+ margin-left: 20px;
+ margin-right: 20px;
+ margin-top: .5em;
+}
+
+fieldset legend {
+ color: #fff;
+ background-color: #aaaa77;
+ font-size: smaller;
+ padding: .1ex .5ex;
+ border-right: 1px solid gray;
+ border-bottom: 1px solid gray;
+ font-weight: bold;
+}
+
+form {
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+}
+
+h1 {
+ background: #f5f5f5;
+ color: black;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 1px;
+ padding: 5px;
+ margin-bottom: 30px;
+ font-weight: bold;
+ font-size: 110%;
+ text-align: center;
+ clear: left;
+}
+
+h2 {
+ font-weight: bold;
+ clear: both;
+ font-size: 110%;
+}
+
+h3 {
+ font-weight: bold;
+ clear: both;
+ font-size: 100%;
+}
+
+h4 {
+ font-weight: bolder;
+ clear: both;
+ font-size: 95%;
+}
+
+h5 {
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+ font-weight: bold;
+ clear: both;
+ font-size: 100%;
+}
+
+iframe
+{
+ margin:1%;
+}
+
+img {
+ border: none;
+}
+
+img.icon {
+ float: left;
+ margin: 7px;
+}
+
+img.map {
+ margin: 0px;
+ padding: 0px;
+}
+
+kbd {
+ font-weight: bold;
+}
+
+li {
+ margin-left: 40px;
+ margin-right: 40px;
+}
+
+.list li {
+ padding-bottom: 1.2em;
+}
+
+.list p {
+ margin: 0 0 0 0;
+}
+
+p {
+ /*
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+ */
+ margin: 1.33em 40px;
+}
+
+
+p.code {
+ color: black;
+ background: #f5f5f5;
+ border: 1pt dashed #2f6fab;
+ font-family: monospace;
+ font-size: 8pt;
+ white-space: pre;
+ margin: 1.33em 40px;
+ padding: .66em 1.33em;
+}
+
+
+p.crt {
+ white-space: nowrap;
+ border-style: ridge;
+ border-width: 7px;
+ border-color: blue;
+ color: white;
+ background: #000044;
+ font-family: monospace;
+ margin: 1.33em 40px;
+ padding: .66em 1.33em;
+}
+
+p.crtsnip {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 1.33em;
+ margin-bottom: 1.33em;
+ width: 50%;
+ white-space: nowrap;
+ border-top-style: ridge;
+ border-bottom-style: ridge;
+ border-top-width: 7px;
+ border-bottom-width: 7px;
+ border-color: blue;
+ color: white;
+ font-weight: bolder;
+ background: #000044;
+ font-family: monospace;
+ padding: .66em 1.33em;
+}
+
+p.crtsnip em.arg {
+ color: #ffbbbb; /* brighter red; */
+}
+
+p.info {
+ margin: 0.75em 0px;
+ text-align: left;
+}
+
+p.image img {
+ border: none;
+}
+
+p.image {
+ text-align: center;
+}
+
+p.image, p.image-slices {
+ text-align: center;
+}
+
+p.image-slices img {
+ display: block;
+ margin: 0px;
+ padding: 0px;
+ border: none;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+
+p.navigation-index {
+ padding: 10px;
+ margin-top: 1px;
+ margin-bottom: 0px;
+ margin-left: 0;
+ margin-right: 0;
+ background: white;
+ text-align: center;
+ font-size: 80%;
+ white-space: normal;
+}
+
+p.options {
+ padding: 0 3em;
+/* text-align:justify; */
+}
+
+p.pre {
+ white-space: pre;
+ color: black;
+ background: #d2ddf6;
+ font-family: monospace;
+ padding: 0em;
+ margin: 0em;
+}
+
+p.text {
+ color: black;
+ background: #d2ddf6;
+ font-family: monospace;
+ margin: 1.33em 40px;
+ padding: 1.33em;
+}
+
+
+p.warn {
+ padding: .66em 3em;
+ background: #ffeedd;
+}
+
+
+pre {
+ padding-top: 0pt;
+ padding-bottom: 0pt;
+ margin: 0pt;
+}
+
+pre.code {
+ color: black;
+ background: #f5f5f5;
+ border: 1pt dashed #2f6fab;
+ font-family: monospace;
+ font-size: 8pt;
+ white-space: pre;
+ /*
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+ */
+ margin: 1.33em 40px;
+ padding: .66em 1.33em;
+
+}
+
+pre.crt {
+ padding: 0;
+ margin: 0;
+ }
+
+pre.debug {
+ color: black;
+ background: #d2ddf6;
+ border: solid 2px black;
+ font-family: monospace;
+ white-space: pre;
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+ padding: 1.33em;
+}
+
+pre.text {
+ color: black;
+ background: #d2ddf6;
+ font-family: monospace;
+ white-space: pre;
+ margin: 1.33em 40px;
+/*
+ margin-left: 40px;
+ margin-right: 40px;
+*/
+ padding: 1.33em;
+}
+
+span.bull {
+/* padding: 0 .25em 0 0; */
+ color: #d0d0d0;
+}
+
+span.crtin {
+ color: white;
+ font-weight: bolder;
+ padding: .67em 1.33em .67em 0;
+}
+
+span.crtout, .crtprompt {
+ color: #ffff77;
+/* font-family: Times, serif; */
+/* margin: 1.33em 40px; */
+ padding-top: .67em;
+ padding-bottom: .67em;
+}
+
+span.crtout {
+ padding-left: 1.33em;
+ padding-right: 1.33em;
+ display: block;
+}
+
+span.crtprompt {
+/* padding-left: .66em; */
+ padding-right: 0;
+ text-indent:-1.33em;
+}
+
+
+span.different {
+ font-weight: bold;
+ background-color: transparent;
+ color: blue;
+}
+
+span.filter {
+ font-weight: bold;
+}
+
+span.info-east {
+ float: right;
+}
+
+span.info-west {
+ float: left;
+}
+
+span.option {
+ white-space: normal;
+}
+
+span.path {
+ font-weight: bold;
+}
+
+span.size-mod-title { }
+
+table.doc {
+ padding: 1.33em;
+ border-spacing: 0px;
+ width: 91%;
+ text-align: left;
+ margin: 1.33em 40px;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 1px;
+}
+
+table.doc td,th {
+ padding: .3em .5em;
+}
+
+td.map {
+ margin: 0px;
+ padding: 0px;
+}
+
+th {
+ background-color: #d2ddf6;
+ color: black
+}
+
+th.size-alt, tr.size-alt, td.size-alt {
+ background-color: #f0f0f0;
+}
+
+th.size-norm, tr.size-norm, td.size-norm {
+ background-color: #f7f7f7;
+}
+
+#footer {
+ margin-left:0px;
+}
+
+#footer-west {
+ float: left;
+ padding: 20px;
+}
+
+#footer-east {
+ float: right;
+ padding: 20px;
+}
+
+#header {
+ background-color: #ADD8E6; /* lightblue; */
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ height: 4em;
+ border-bottom: solid 1px;
+ z-index: 10;
+}
+
+
+#linkbar, #navigation-bar {
+ clear: both;
+ background: #f5f5f5;
+ color: black;
+ border: solid #d0d0d0;
+ border-width: 1px 0px 1px 0px;
+ padding: 5px 5px 5px 13.5%;
+ font-weight: bold;
+ text-align: center;
+ margin-left:0px;
+}
+
+
+#linkbar-east {
+ float: right;
+}
+
+#linkbar-center {
+ padding: 0px 80px;
+}
+
+#linkbar-west {
+ float: left;
+}
+
+
+
+#margin {
+ padding: 10px;
+ vertical-align: top;
+ white-space: nowrap;
+ left: 0px;
+}
+
+#menu {
+ background: #f5f5f5;
+ color: black;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 0px 1px 0px 0px;
+ padding: 10px;
+ font-weight: bold;
+ vertical-align: top;
+ white-space: nowrap;
+ top: 100px;
+ left: 0px;
+ height: 100%;
+}
+
+#main {
+ margin-left: 0px;
+ padding-right: 0px;
+ padding-left: 10px;
+}
+
+#menu a {
+ display: block;
+}
+
+#menu a.sponsor {
+ display: block;
+ padding-left: 10px;
+ font-size: 76.6666%;
+}
+
+#menu a.sub {
+ display: block;
+ padding-left: 10px;
+ font-size: 90%;
+}
+
+#menu p {
+ display: none;
+}
+
+#menu span {
+ display: none;
+}
+
+#menu-button {
+ background-color: transparent;
+ padding: 0;
+ position: absolute;
+ top: 100px;
+ left: 0px;
+ cursor: w-resize;
+}
+
+#notice {
+ color:#b90006;
+}
+
+#titlebar {
+ background-image: url("../image/background.jpg");
+ background-repeat: repeat-x;
+ height: 118px;
+}
+
+#table {
+ text-align: left;
+ margin: 1.33em 0px;
+ margin-left: 40px;
+ margin-right: 40px;
+ border-style: solid;
+ border-color: #d0d0d0;
+ border-width: 1px;
+}
+
+/* These were being used per id but there were two duplicate id's each.
+ These individual properties have been moved to the images to which they were applied in titlebar.php.
+#titlebar-east {
+ float: right;
+}
+
+#titlebar-west {
+ float: left;
+}
+*/
+
+#www-imagemagick-org {
+ background: #f5f5f5;
+}
+
+
+@media print {
+ #titlebar, #navigation-bar, #linkbar, #menu, #margin { display: none }
+
+ #main {
+ margin-left: 0px;
+ padding-right: 0px;
+ padding-left: 0px;
+ }
+}
+
+.size-alt { background-color: #f5f5f5; }
+
+.size-accent { background-color: #f5f5f5; }
+
+.size-mod-body { font-size: 93.666%; }
+
+.size-mod-foot { }
+
+.size-mod-head {
+ text-align: left;
+ font-weight: bold;
+}
+
+.size-mod-title {
+ font-size: 1.3em;
+ font-weight: bold;
+}
+
+.viewport
+{
+ color: black;
+ background: #f5f5f5;
+ border: solid 2px black;
+ font-family: monospace;
+ white-space: pre;
+ margin: 1.33em 40px;
+ padding: 1.33em;
+ height: 480px;
+ overflow: auto;
+}
diff --git a/www/Magick++/montage-sample-framed.jpg b/www/Magick++/montage-sample-framed.jpg
new file mode 100644
index 0000000..56197cc
--- /dev/null
+++ b/www/Magick++/montage-sample-framed.jpg
Binary files differ
diff --git a/www/Magick++/right_triangle.png b/www/Magick++/right_triangle.png
new file mode 100644
index 0000000..8deb402
--- /dev/null
+++ b/www/Magick++/right_triangle.png
Binary files differ
diff --git a/www/Magick++/thumbnail-anatomy-framed.fig b/www/Magick++/thumbnail-anatomy-framed.fig
new file mode 100644
index 0000000..f447acb
--- /dev/null
+++ b/www/Magick++/thumbnail-anatomy-framed.fig
@@ -0,0 +1,40 @@
+#FIG 3.2
+Portrait
+Center
+Inches
+Letter
+100.00
+Single
+0
+1200 2
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 4800 1200 4350 2250
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 5775 1200 5325 2025
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 6525 4275 5250 4575
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 3825 1200 3600 1875
+2 5 0 1 -1 -1 2 0 -1 0.000 0 0 -1 0 0 5
+ 0 thumbnail-sample-framed.jpg
+ 2700 1800 6300 1800 6300 5385 2700 5385 2700 1800
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 6525 3075 6150 3150
+2 2 0 1 0 7 10 0 -1 0.000 0 0 -1 0 0 5
+ 1650 600 7425 600 7425 6300 1650 6300 1650 600
+4 1 -1 0 0 16 10 0.0000 4 120 480 5775 975 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 105 435 5775 1155 Frame\001
+4 1 -1 0 0 16 14 0.0000 4 165 2160 4500 5700 FRAMED THUMBNAIL\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 3825 975 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 465 3825 1155 Border\001
+4 1 -1 0 0 16 10 0.0000 4 135 435 4800 1140 Image\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 4800 975 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 6900 3000 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 570 6900 3180 Shadow\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 6900 4200 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 390 6900 4380 Label\001
diff --git a/www/Magick++/thumbnail-anatomy-framed.jpg b/www/Magick++/thumbnail-anatomy-framed.jpg
new file mode 100644
index 0000000..a27e719
--- /dev/null
+++ b/www/Magick++/thumbnail-anatomy-framed.jpg
Binary files differ
diff --git a/www/Magick++/thumbnail-anatomy-plain.fig b/www/Magick++/thumbnail-anatomy-plain.fig
new file mode 100644
index 0000000..95bff11
--- /dev/null
+++ b/www/Magick++/thumbnail-anatomy-plain.fig
@@ -0,0 +1,35 @@
+#FIG 3.2
+Portrait
+Center
+Inches
+Letter
+100.00
+Single
+-3
+1200 2
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 3825 1200 3600 1875
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 4950 1200 4575 2100
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 6000 3900 4950 4350
+2 5 0 1 -1 -1 2 0 -1 0.000 0 0 -1 0 0 5
+ 0 thumbnail-sample-plain.jpg
+ 2700 1800 5850 1800 5850 4935 2700 4935 2700 1800
+2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
+ 1 1 1.00 60.00 120.00
+ 6000 3075 5250 3375
+2 2 0 1 0 7 10 0 -1 0.000 0 0 -1 0 0 5
+ 1800 600 6900 600 6900 6000 1800 6000 1800 600
+4 1 -1 0 0 16 14 0.0000 4 165 1875 4275 5250 PLAIN THUMBNAIL\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 3825 975 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 465 3825 1155 Border\001
+4 1 -1 0 0 16 10 0.0000 4 135 435 4950 1140 Image\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 4950 975 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 570 6300 3180 Shadow\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 6300 3000 Thumb\001
+4 1 -1 0 0 16 10 0.0000 4 120 390 6300 4005 Label\001
+4 1 -1 0 0 16 10 0.0000 4 120 480 6300 3825 Thumb\001
diff --git a/www/Magick++/thumbnail-anatomy-plain.jpg b/www/Magick++/thumbnail-anatomy-plain.jpg
new file mode 100644
index 0000000..011949a
--- /dev/null
+++ b/www/Magick++/thumbnail-anatomy-plain.jpg
Binary files differ
diff --git a/www/Magick++/thumbnail-sample-framed.jpg b/www/Magick++/thumbnail-sample-framed.jpg
new file mode 100644
index 0000000..dcab0a7
--- /dev/null
+++ b/www/Magick++/thumbnail-sample-framed.jpg
Binary files differ
diff --git a/www/Magick++/thumbnail-sample-plain.jpg b/www/Magick++/thumbnail-sample-plain.jpg
new file mode 100644
index 0000000..3ce49c8
--- /dev/null
+++ b/www/Magick++/thumbnail-sample-plain.jpg
Binary files differ