Configuration Files • Modules • Fonts • Environment Variables
ImageMagick depends on a number of external resources including configuration files, loadable modules, fonts, and environment variables.
ImageMagick depends on a number of external configuration files detailed here:
english.xml
and francais.xml
configuration files.
GIF8
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.
*.cdr
, 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.
<policy domain="resource" name="area" value="100KP"/>
Any image larger than this area limit is cached to disk rather than memory.
Use width
to limit the maximum width of an image in pixels. Exceed this limit and an exception is thrown and processing stops.
<policy domain="resource" name="width" value="8KP"/>
To limit the elapsed time of any ImageMagick command to 5 minutes, use this policy:
<policy domain="resource" name="time" value="300"/>
Define arguments for the memory, map, and disk resources with SI prefixes (.e.g 100MB). In addition, resource policies are maximums for each instance of ImageMagick (e.g. policy memory limit 1GB, the -limit 2GB
option exceeds policy maximum so memory limit is 1GB). -define:q-table=quantization-table.xml
.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:
$MAGICK_CONFIGURE_PATH
$PREFIX/etc/ImageMagick-6
$PREFIX/share/ImageMagick-6
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
The environmental variable $PREFIX is the default install path (e.g. /usr/local
). The client path is the execution path of your ImageMagick client (e.g. /usr/local
) .
For the Unix or Linux pre-compiled uninstalled binary distributions, the configuration load order is:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick-6
$MAGICK_HOME/share/ImageMagick-6
$PREFIX/share/ImageMagick-6
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick/
<client path>/etc/ImageMagick
<current directory>
Under Windows, ImageMagick searches for these configuration files in the following order, and loads them if found:
$MAGICK_CONFIGURE_PATH
<windows registry>
$PREFIX/config
$USERPROFILE/.config/ImageMagick
<client path>
Above, $PREFIX is the default install path, typically c:\\Program Files\\ImageMagick-6.9.11
.
For an uninstalled Windows installation, the configuration load order is:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME
$USERPROFILE/.config/ImageMagick
client path
<current directory>
If a configuration file cannot not be found, ImageMagick relies on built-in default values.
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:
$MAGICK_HOME/lib/ImageMagick-6.9.11/modules-Q16/coders
<client path>/../lib/ImageMagick-6.9.11/modules-Q16/coders
$MAGICK_HOME/lib/ImageMagick-6.9.11/modules-Q16/coders
$MAGICK_HOME/share/ImageMagick-6.9.11/modules-Q16/coders
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-6.9.11/modules-Q16/coders
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:
$MAGICK_HOME/lib/ImageMagick-6.9.11/modules-Q16/filters
<client path>/../lib/ImageMagick-6.9.11/modules-Q16/filters
$MAGICK_HOME/lib/ImageMagick-6.9.11/modules-Q16/filters
$MAGICK_HOME/share/ImageMagick-6.9.11/modules-Q16/filters
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-6.9.11/modules-Q16/filters
ImageMagick is able to load raw TrueType and Postscript font files. It searches for the font configuration file, type.xml, in the following order, and loads them if found:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick/-6.9.11
$MAGICK_HOME/share/ImageMagick-6.9.11
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
$MAGICK_FONT_PATH
Environment variables recognized by ImageMagick include:
HOME | Set path to search for configuration files in $HOME/.config/ImageMagick if the directory exists. |
LD_LIBRARY_PATH | Set path to the ImageMagick shareable libraries and other dependent libraries. |
MAGICK_AREA_LIMIT | Set the maximum width * height of an image that can reside in the pixel cache memory. Images that exceed the area limit are cached to disk (see MAGICK_DISK_LIMIT) and optionally memory-mapped. |
MAGICK_CODER_FILTER_PATH | Set search path to use when searching for filter process modules (invoked via -process). 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 default search path. |
MAGICK_CODER_MODULE_PATH | Set path where ImageMagick can locate its coder modules. 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 default search path. |
MAGICK_CONFIGURE_PATH | Set path where ImageMagick can locate its configuration files. 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 default search path. |
MAGICK_DEBUG | Set debug options. See -debug for a description of debugging options. |
MAGICK_DISK_LIMIT | Set maximum amount of disk space in bytes permitted for use by the pixel cache. When this limit is exceeded, the pixel cache is not be created and an error message is returned. |
MAGICK_ERRORMODE | Set the process error mode (Windows only). A typical use might be a value of 1 to prevent error mode dialogs from displaying a message box and hanging the application. |
MAGICK_FILE_LIMIT | Set maximum number of open pixel cache files. 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. |
MAGICK_FONT_PATH | Set path ImageMagick searches for TrueType and Postscript Type1 font files. This path is only consulted if a particular font file is not found in the current directory. |
MAGICK_HEIGHT_LIMIT | Set the maximum height of an image. |
MAGICK_HOME | Set the path at the top of ImageMagick installation directory. This path is consulted by uninstalled builds of ImageMagick which do not have their location hard-coded or set by an installer. |
MAGICK_LIST_LENGTH_LIMIT | Set the maximum length of an image sequence. |
MAGICK_MAP_LIMIT | Set maximum amount of memory map in bytes to allocate for the pixel cache. When this limit is exceeded, the image pixels are cached to disk (see MAGICK_DISK_LIMIT). |
MAGICK_MEMORY_LIMIT | Set maximum amount of memory in bytes to allocate for the pixel cache from the heap. When this limit is exceeded, the image pixels are cached to memory-mapped disk (see MAGICK_MAP_LIMIT). |
MAGICK_OCL_DEVICE | Set to off to disable hardware acceleration of certain accelerated algorithms (e.g. blur, convolve, etc.). |
MAGICK_PRECISION | Set the maximum number of significant digits to be printed. |
MAGICK_SHRED_PASSES | If you want to keep the temporary files ImageMagick creates private, overwrite them with zeros or random data before they are removed. On the first pass, the file is zeroed. For subsequent passes, random data is written. |
MAGICK_SYNCHRONIZE | Set to "true" to ensure all image data is fully flushed and synchronized to disk. There is a performance penalty, however, the benefits include ensuring a valid image file in the event of a system crash and early reporting if there is not enough disk space for the image pixel cache. |
MAGICK_TEMPORARY_PATH | Set path to store temporary files. |
MAGICK_THREAD_LIMIT | Set maximum parallel threads. Many ImageMagick algorithms run in parallel on multi-processor systems. Use this environment variable to set the maximum number of threads that are permitted to run in parallel. |
MAGICK_THROTTLE_LIMIT | Periodically yield the CPU for at least the time specified in milliseconds. |
MAGICK_TIME_LIMIT | Set maximum time in seconds. When this limit is exceeded, an exception is thrown and processing stops. |
MAGICK_WIDTH_LIMIT | Set the maximum width of an image. |
SOURCE_DATE_EPOCH | A UNIX timestamp, defined as the number of seconds, excluding leap seconds, since 01 Jan 1970 00:00:00 UTC . |
Define arguments for the MAGICK_MEMORY_LIMIT
, MAGICK_DISK_LIMIT
, and MAGICK_MEMORY_LIMIT
environment variables with SI prefixes (.e.g 100MB
). MAGICK_WIDTH_LIMIT
, MAGICK_HEIGHT_LIMIT
and MAGICK_AREA_LIMIT
accepts pixel suffixes such as MP for mega-pixels (e.g. 100MP).