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

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a rel="follow" title="Sponsor: 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.7.0 
  $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.7.0 
  $PREFIX/share/ImageMagick-6.7.0 
  $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.7.0</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.7.0/modules-Q16/coders/
  &lt;<em>client path</em>&gt;/../lib/ImageMagick-6.7.0/modules-Q16/coders/
  $MAGICK_HOME/lib/ImageMagick-6.7.0/modules-Q16/coders
  $MAGICK_HOME/share/ImageMagick-6.7.0/modules-Q16/coders
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.7.0/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.7.0/modules-Q16/filters/
  &lt;<em>client path</em>&gt;/../lib/ImageMagick-6.7.0/modules-Q16/filters/
  $MAGICK_HOME/lib/ImageMagick-6.7.0/modules-Q16/filters
  $MAGICK_HOME/share/ImageMagick-6.7.0/modules-Q16/filters
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.7.0/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.7.0/
  $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>
