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

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201109010090 alexanian media -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a title="Sponsor: Fototapete" href=" http://www.allesdruck.de/Fototapete-Tapetendruck,category,8830.html">Fototapete</a><!-- 20110701000080 a-o.de -->
</div>
</div>
</div>
</div>

<div class="eastbar">

</div>

<div class="main">

<h1>Customize ImageMagick With Resources</h1>
<p class="navigation-index">[<a href="#configure">Configuration Files</a> &bull; <a href="#modules">Modules</a> &bull; <a href="#fonts">Fonts</a> &bull; <a href="#environment">Environment Variables</a>]</p>

<div class="doc-section">
<p>ImageMagick depends on a number of external resources including configuration files, loadable modules, fonts, and environment variables.</p>
</div>

<h2><a id="configure"></a>Configuration Files</h2>
<div class="doc-section">

<p>ImageMagick depends on a number of external configuration files detailed here:</p>

<dl>
<dt class="doc"><a href="../www/source/coder.xml">coder.xml</a></dt>
  <dd>Associate an image format with the specified coder module.

  <p>ImageMagick has a number of coder modules to support the reading and/or writing of an image format (e.g. JPEG).  Some coder modules support more than one associated image format and the mapping between an associated format and its respective coder module is defined in this configuration file.  For example, the PNG coder module not only supports the PNG image format, but the JNG and MNG formats as well.</p>
  </dd>

<dt class="doc"><a href="../www/source/colors.xml">colors.xml</a></dt>
  <dd>Associate a color name with its red, green, blue, and alpha intensities.

  <p>A number of command line options require a <a href="../www/color.html">color parameter</a>.  It is often convenient to refer to a color by name (e.g. white) rather than by hex value (e.g. #fff).  This file maps a color name to its equivalent red, green, blue, and alpha intensities (e.g. for white, red = 255, green = 255, blue = 255, and alpha = 0).</p>
  </dd>

<dt class="doc"><a id="configure.xml"/><a href="../www/source/configure.xml">configure.xml</a></dt>
  <dd>Set ImageMagick build parameters and system-wide environment variables (e.g. MAGICK_TEMPORARY_PATH).
  <p>
  As ImageMagick is built, a number of build parameters are saved to this configuration file.  They include the version, release date, dependent delegate libraries, and quantum depth among others.</p>
  </dd>

<dt class="doc"><a href="../www/source/delegates.xml">delegates.xml</a></dt>
  <dd>Associate delegate programs with certain image formats.

  <p>ImageMagick relies on a number of delegate programs to support certain image formats such as <a href="http://ufraw.sourceforge.net/">ufraw-batch</a> to read raw camera formats or <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a> to read Postscript images.  Use this configuration file to map an input or output format to an external delegate program.</p>
  </dd>

<dt class="doc"><a href="../www/source/english.xml">english.xml</a></dt>
  <dd>Associate message tags with English translations.</dd>

<dt class="doc"><a href="../www/source/francais.xml">francais.xml</a></dt>
  <dd>Associate message tags with French translations.  </dd>

<dt class="doc"><a href="../www/source/locale.xml">locale.xml</a></dt>
  <dd>Associate message tags with a  translation for your locale.

  <p>ImageMagick has a number of informational, warning, and error messages that are represented as tags.  Tags are short descriptions of a message such as
  <em>FileNotFound</em> or <em>MemoryAllocationFailed</em>.  This configuration file lists locales that have a translation for each tag recognized by ImageMagick.  Currently only English and French translations are available in the <kbd>english.xml</kbd> and <kbd>francais.xml</kbd> configuration files.</p>
  </dd>

<dt class="doc"><a href="../www/source/log.xml">log.xml</a></dt>
  <dd>Configure logging parameters.
  <p>ImageMagick is capable of spewing copious amounts of informational or debugging statements.  Use this file to configure how the information will appear in a log message and where you want the logging messages posted.</p>
  </dd>

<dt class="doc"><a href="../www/source/magic.xml">magic.xml</a></dt>
  <dd>Associate an image format with a unique identifier.
  <p>Many image formats have identifiers that uniquely identify a particular image format.  For example, the GIF image format always begins with <kbd>GIF8</kbd> as the first 4 characters of the image.  ImageMagick uses this information to quickly determine the type of image it is dealing with when it reads an image.</p>
  </dd>

<dt class="doc"><a href="../www/source/mime.xml">mime.xml</a></dt>
  <dd>Associate an internet media type with a unique identifier.
  <p>Many files and data streams have identifiers that uniquely identify a
particular internet media type. For example, files in the "Corel Draw
drawing" format (mime type="application/vnd.corel-draw") are associated with
the filename pattern <kbd>*.cdr</kbd>, and also have an initial string of the
characters "CDRXvrsn". ImageMagick uses combinations of this information,
when available, to attempt to quickly determine the internet media type of a
file or data stream.</p>
</dd>

<dt class="doc"><a href="../www/source/policy.xml">policy.xml</a></dt>
  <dd>Configure ImageMagick policies.
  <p>By default any coder, delegate, filter, or file path is permitted.  Use a policy to deny access to, for example, the MPEG video delegate, or permit reading images from a file system but deny writing to that same file system.  Or use the resource policy to set resource limits.  Policies are useful for multi-user servers that want to limit the overall impact ImageMagick has on the system.  For example, to limit the maximum image size in memory to 100MB:</p>

<pre class="text">
  &lt;policy domain="resource" name="area" value="100MB"/>
</pre>

<p>Any image larger than this area limit is cached to disk rather than memory.</p>

<p>To limit the elapsed time of any ImageMagick command to 5 minutes, use this policy:</p>

<pre class="text">
  &lt;policy domain="resource" name="time" value="300"/>
</pre>
  </dd>

<dt class="doc"><a href="../www/source/thresholds.xml">thresholds.xml</a></dt>
  <dd>Set threshold maps for ordered posterized dither.</dd>

<dt class="doc"><a id="type.xml"></a><a href="../www/source/type.xml">type.xml</a></dt>
  <dd>Configure fonts.
  <p>Define the font name, family, foundry, style, format, metrics, and glyphs for any font you want to use within ImageMagick.</p>
  </dd>

<dt class="doc"><a href="../www/source/type-ghostscript.xml">type-ghostscript.xml</a></dt>
  <dd>Configure <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a> fonts.
  <p>The Ghostscript package includes a number of fonts that can be accessed with ImageMagick.</p>
  </dd>

<dt class="doc"><a href="../www/source/type-windows.xml">type-windows.xml</a></dt>
  <dd>Associate names with Windows font glyphs.</dd>

</dl>

<p>Under Unix and Linux, ImageMagick searches for each of the configuration files listed above by looking in the locations given below, in order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $PREFIX/etc/ImageMagick
  $PREFIX/share/ImageMagick-6.6.9 
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/etc/ImageMagick/
</pre>

<p>The environmental variable $PREFIX is the default install path (e.g. <kbd>/usr/local</kbd>). The <em>client path</em> is the execution path of your ImageMagick client (e.g. <kbd>/usr/local</kbd>) .</p>

<p>For the Unix or Linux pre-compiled uninstalled binary distributions, the configuration load order is:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME/etc/ImageMagick
  $MAGICK_HOME/share/ImageMagick-6.6.9 
  $PREFIX/share/ImageMagick-6.6.9 
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/etc/ImageMagick/
  &lt;<em>current directory</em>&gt;
</pre>

<p>Under Windows, ImageMagick searches for these configuration files in the following order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  &lt;<em>windows registry</em>&gt;
  $PREFIX/config
  $USERPROFILE/.magick/
  &lt;<em>client path</em>&gt;
</pre>

<p>Above, $PREFIX is the default install path, typically <kbd>c:\\Program Files\\ImageMagick-6.6.9</kbd>.</p>

<p>For an uninstalled Windows installation, the configuration load order is:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME
  $USERPROFILE/.magick/
  <em>client path</em>
  &lt;<em>current directory</em>&gt;
</pre>

<p>If a configuration file cannot not be found, ImageMagick relies on built-in default values.</p>

</div>

<h2><a id="modules"></a>Modules</h2>
<div class="doc-section">

<h4>Coders</h4>
<p>An image coder (i.e. encoder / decoder) is responsible for registering, optionally classifying, optionally reading, optionally writing, and unregistering one image format (e.g. PNG, GIF, JPEG, etc.).  ImageMagick searches for coders in the following order and it uses the first match found:</p>

<pre class="text">
  $MAGICK_HOME/lib/ImageMagick-6.6.9/modules-Q16/coders/
  &lt;<em>client path</em>&gt;/../lib/ImageMagick-6.6.9/modules-Q16/coders/
  $MAGICK_HOME/lib/ImageMagick-6.6.9/modules-Q16/coders
  $MAGICK_HOME/share/ImageMagick-6.6.9/modules-Q16/coders
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.9/modules-Q16/coders
</pre>

<h4>Filters</h4>
<p>ImageMagick provides a convenient mechanism for adding your own custom image processing algorithms.  ImageMagick searches for filters in the following order and it uses the first match found:</p>
<pre class="text">
  $MAGICK_HOME/lib/ImageMagick-6.6.9/modules-Q16/filters/
  &lt;<em>client path</em>&gt;/../lib/ImageMagick-6.6.9/modules-Q16/filters/
  $MAGICK_HOME/lib/ImageMagick-6.6.9/modules-Q16/filters
  $MAGICK_HOME/share/ImageMagick-6.6.9/modules-Q16/filters
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.9/modules-Q16/filters
</pre>

</div>

<h2><a id="fonts"></a>Fonts</h2>
<div class="doc-section">

<p>ImageMagick is able to load raw TrueType and Postscript font files.  It searches for the font configuration file, <a href="#type.xml">type.xml</a>, in the following order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME/etc/ImageMagick/
  $MAGICK_HOME/share/ImageMagick-6.6.9/
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/etc/ImageMagick/
  $MAGICK_FONT_PATH
</pre>

</div>

<h2><a id="environment"></a>Environment Variables</h2>
<div class="doc-section">

<p>Environment variables recognized by ImageMagick include:</p>

<dl>
<dt class="doc">HOME</dt>
  <dd>Set path to search for configuration files in <em>$HOME/.magick</em> if the directory exists.</dd>
<dt class="doc">LD_LIBRARY_PATH</dt>
  <dd>Set path to the ImageMagick shareable libraries and other dependent libraries.</dd>
<dt class="doc">MAGICK_AREA_LIMIT</dt>
  <dd>Set the maximum <em>width * height</em> of an image that can reside in the pixel cache memory.</dd>
  <dd>Images that exceed the area limit are cached to disk (see <a href="#disk-limit">MAGICK_DISK_LIMIT</a>).</dd>
<dt class="doc">MAGICK_CODER_FILTER_PATH</dt>
  <dd>Set search path to use when searching for filter process modules (invoked via  <a href="../www/command-line-options.html#process">-process</a>).</dd>
  <dd>This path permits the user to extend ImageMagick's image processing functionality by adding loadable modules to a preferred location rather than copying them into the ImageMagick installation directory.  The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#modules">default search path</a>.</dd>
<dt class="doc">MAGICK_CODER_MODULE_PATH</dt>
  <dd>Set path where ImageMagick can locate its coder modules.</dd>
  <dd>This path permits the user to arbitrarily extend the image formats supported by ImageMagick by adding loadable coder modules from an preferred location rather than copying them into the ImageMagick installation directory.  The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#modules">default search path</a>.</dd>
<dt class="doc">MAGICK_CONFIGURE_PATH</dt>
  <dd>Set path where ImageMagick can locate its configuration files</dd>
  <dd>Use this search path to search for configuration (.xml) files. The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#configure">default search path</a>.</dd>
<dt class="doc">MAGICK_DEBUG</dt>
  <dd>Set debug options.</dd>
  <dd>See <a href="../www/command-line-options.html#debug">-debug</a> for a description of debugging options.</dd>
<dt class="doc"><a id="disk-limit"></a>MAGICK_DISK_LIMIT</dt>
  <dd>Set maximum amount of disk space in bytes permitted for use by the pixel cache.</dd>
  <dd>When this limit is exceeded, the pixel cache is not be created and an error message is returned.</dd>
<dt class="doc">MAGICK_FILE_LIMIT</dt>
  <dd>Set maximum number of open pixel cache files.</dd>
  <dd>When this limit is exceeded, any subsequent pixels cached to disk are closed and reopened on demand.  This behavior permits a large number of images to be accessed simultaneously on disk, but with a speed penalty due to repeated open/close calls.</dd>
<dt class="doc">MAGICK_FONT_PATH</dt>
  <dd>Set path ImageMagick searches for TrueType and Postscript Type1 font files.</dd>
  <dd>This path is only consulted if a particular font file is not found in the current directory.</dd>
<dt class="doc">MAGICK_HOME</dt>
  <dd>Set the path at the top of ImageMagick installation directory.</dd>
  <dd>This path is consulted by <em>uninstalled</em> builds of ImageMagick which do not have their location hard-coded or set by an installer.</dd>
<dt class="doc"><a id="map-limit"></a>MAGICK_MAP_LIMIT</dt>
  <dd>Set maximum amount of memory map in bytes to allocate for the pixel cache.</dd>
  <dd>When this limit is exceeded, the image pixels are cached to disk (see MAGICK_DISK_LIMIT).</dd>
<dt class="doc">MAGICK_MEMORY_LIMIT</dt>
  <dd>Set maximum amount of memory in bytes to allocate for the pixel cache from the heap.</dd>
  <dd>When this limit is exceeded, the image pixels are cached to memory-mapped disk (see <a href="#map-limit">MAGICK_MAP_LIMIT</a>).</dd>
<dt class="doc">MAGICK_PRECISION</dt>
  <dd>Set the maximum number of significant digits to be printed.</dd>
<dt class="doc">MAGICK_SYNCHRONIZE</dt>
  <dd>Set to true to synchronize image to storage device.</dd>
<dt class="doc">MAGICK_TEMPORARY_PATH</dt>
  <dd>Set path to store temporary files.</dd>
<dt class="doc">MAGICK_THREAD_LIMIT</dt>
  <dd>Set maximum parallel threads.</dd>
  <dd>Many ImageMagick algorithms run in parallel on multi-processor systems.  Use this enviroment variable to set the maximum number of threads that are permitted to run in parallel.</dd>
<dt class="doc">MAGICK_THROTTLE</dt>
  <dd>Periodically yield the CPU for at least the time specified in milliseconds.</dd>
<dt class="doc">MAGICK_TIME_LIMIT</dt>
  <dd>Set maximum time in seconds.</dd>
  <dd>When this limit is exceeded, an exception is thrown and processing stops.</dd>
</dl>
</div>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
