Color Modes

资源

配置文件模块字体环境变量

ImageMagick 依赖于许多外部资源,包括配置文件、可加载模块、字体和环境变量。

配置文件

ImageMagick 依赖于许多此处详细说明的外部配置文件

coder.xml
将图像格式与指定的编码器模块关联。ImageMagick 有许多编码器模块来支持图像格式的读取和/或写入(例如 JPEG)。一些编码器模块支持多个关联的图像格式,并且关联格式与其相应的编码器模块之间的映射在此配置文件中定义。例如,PNG 编码器模块不仅支持 PNG 图像格式,还支持 JNG 和 MNG 格式。
colors.xml
将颜色名称与其红色、绿色、蓝色和 alpha 强度关联。许多命令行选项需要 颜色参数。通常,通过名称(例如白色)而不是十六进制值(例如 #fff)来引用颜色会比较方便。此文件将颜色名称映射到其等效的红色、绿色、蓝色和 alpha 强度(例如,对于白色,红色 = 255,绿色 = 255,蓝色 = 255,alpha = 0)。
configure.xml
设置 ImageMagick 构建参数和系统范围的环境变量(例如 MAGICK_TEMPORARY_PATH)。在构建 ImageMagick 时,许多构建参数将保存到此配置文件中。它们包括版本、发布日期、依赖的委托库和量子深度等。
delegates.xml
将委托程序与某些图像格式关联。ImageMagick 依赖于许多委托程序来支持某些图像格式,例如 darktable 用于读取原始相机格式或 Ghostscript 用于读取 Postscript 图像。使用此配置文件将输入或输出格式映射到外部委托程序。
english.xml
将消息标签与英文翻译关联。
francais.xml
将消息标签与法语翻译关联。
locale.xml
将消息标签与您区域设置的翻译关联。ImageMagick 有许多信息、警告和错误消息表示为标签。标签是消息的简短描述,例如 FileNotFoundMemoryAllocationFailed。此配置文件列出具有 ImageMagick 识别的每个标签的翻译的区域设置。目前,english.xmlfrancais.xml 配置文件中仅提供英语和法语翻译。
log.xml
配置日志参数。ImageMagick 能够输出大量的信息或调试语句。使用此文件配置信息在日志消息中如何显示以及您希望将日志消息发布到何处。
mime.xml
将互联网媒体类型与唯一标识符关联。许多文件和数据流具有唯一标识特定互联网媒体类型的标识符。例如,“Corel Draw 绘图”格式(mime 类型 =“application/vnd.corel-draw”)中的文件与文件名模式 *.cdr 关联,并且还具有字符“CDRXvrsn”的初始字符串。ImageMagick 使用此信息的组合(如果可用),尝试快速确定文件或数据流的互联网媒体类型。
policy.xml
配置 ImageMagick 安全策略。默认情况下,允许任何编码器、委托、过滤器或文件路径。使用策略拒绝访问例如 MPEG 视频委托,或允许从文件系统读取图像但拒绝写入同一文件系统。或者使用资源策略设置资源限制。策略对于希望限制 ImageMagick 对系统整体影响的多用户服务器很有用。例如,要将内存中的最大图像大小限制为 100MP
<policy domain="resource" name="area" value="100MP"/>
任何大于此区域限制的图像都会缓存到磁盘而不是内存中。使用 width 限制图像以像素为单位的最大宽度。超过此限制,将引发异常并停止处理。
<policy domain="resource" name="width" value="8KP"/>
要将任何 ImageMagick 命令的经过时间限制为 5 分钟,请使用此策略
<policy domain="resource" name="time" value="300"/>
为方便起见,使用 SI 前缀(例如 100MB)为内存、映射和磁盘资源定义参数。此外,资源策略是每个 ImageMagick 实例的最大值(例如,策略内存限制为 1GB,-limit 2GB 选项超过策略最大值,因此内存限制为 1GB)。
quantization-table.xml
自定义 JPEG 量化表。使用 -define:q-table=quantization-table.xml 激活。
thresholds.xml
设置有序海报化抖动的阈值映射。
type.xml
配置字体。为要在 ImageMagick 中使用的任何字体定义字体名称、族、铸造厂、样式、格式、指标和字形。
type-ghostscript.xml
配置 Ghostscript 字体。Ghostscript 软件包包含许多 字体,可以使用 ImageMagick 访问。
type-windows.xml
将名称与 Windows 字体字形关联。

在 Linux 和 Linux 下,ImageMagick 通过按以下顺序查找下面给出的位置中的每个列出的配置文件,如果找到则加载它们

$MAGICK_CONFIGURE_PATH
$PREFIX/etc/ImageMagick-7 
$PREFIX/share/ImageMagick-7 
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick

环境变量 $PREFIX 是默认安装路径(例如 /usr/local)。客户端路径 是 ImageMagick 客户端的执行路径(例如 /usr/local)。

对于 Linux 或 Linux 预编译的未安装二进制发行版,配置文件加载顺序为

$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick-7 
$MAGICK_HOME/share/ImageMagick-7 
$PREFIX/share/ImageMagick-7 
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick/
<client path>/etc/ImageMagick
<current directory>

在 Windows 下,ImageMagick 按以下顺序搜索这些配置文件,如果找到则加载它们

$MAGICK_CONFIGURE_PATH
<windows registry>
$PREFIX/config
$USERPROFILE/.config/ImageMagick
<client path>

上面,$PREFIX 是默认安装路径,通常为 c:\\Program Files\\ImageMagick-7.1.1

对于未安装的 Windows 安装,配置文件加载顺序为

$MAGICK_CONFIGURE_PATH
$MAGICK_HOME
$USERPROFILE/.config/ImageMagick
client path
<current directory>

如果找不到配置文件,ImageMagick 将依赖于内置的默认值。

模块

编码器

图像编码器(即编码器/解码器)负责注册、可选分类、可选读取、可选写入和注销一种图像格式(例如 PNG、GIF、JPEG 等)。ImageMagick 按以下顺序搜索编码器,并使用找到的第一个匹配项

$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/coders
<client path>/../lib/ImageMagick-7.1.1/modules-Q16/coders
$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/coders
$MAGICK_HOME/share/ImageMagick-7.1.1/modules-Q16/coders
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-7.1.1/modules-Q16/coders

过滤器

ImageMagick 提供了一种方便的机制来添加您自己的自定义图像处理算法。ImageMagick 按以下顺序搜索过滤器,并使用找到的第一个匹配项

$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/filters
<client path>/../lib/ImageMagick-7.1.1/modules-Q16/filters
$MAGICK_HOME/lib/ImageMagick-7.1.1/modules-Q16/filters
$MAGICK_HOME/share/ImageMagick-7.1.1/modules-Q16/filters
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-7.1.1/modules-Q16/filters

字体

ImageMagick 能够加载原始 TrueType 和 Postscript 字体文件。它按以下顺序搜索字体配置文件 type.xml,如果找到则加载它们

$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick/-7.1.1
$MAGICK_HOME/share/ImageMagick-7.1.1
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
$MAGICK_FONT_PATH

环境变量

ImageMagick 识别的环境变量包括

HOME 如果目录存在,则设置路径以在 $HOME/.config/ImageMagick 中搜索配置文件。
LD_LIBRARY_PATH 设置 ImageMagick 共享库和其他依赖库的路径。
MAGICK_AREA_LIMIT 设置可以驻留在像素缓存内存中的图像的最大 宽度 * 高度。超过区域限制的图像将缓存到磁盘(请参阅 MAGICK_DISK_LIMIT)并可选地进行内存映射。
MAGICK_CODER_FILTER_PATH 设置在搜索过滤器进程模块(通过 -process 调用)时使用的搜索路径。此路径允许用户通过将可加载模块添加到首选位置而不是将它们复制到 ImageMagick 安装目录来扩展 ImageMagick 的图像处理功能。搜索路径的格式类似于操作系统搜索路径(即,Linux 使用冒号分隔,Microsoft Windows 使用分号分隔)。在尝试 默认搜索路径 之前,将搜索此用户指定的搜索路径。
MAGICK_CODER_MODULE_PATH 设置 ImageMagick 可以找到其编码器模块的路径。此路径允许用户通过从首选位置添加可加载编码器模块而不是将它们复制到 ImageMagick 安装目录来任意扩展 ImageMagick 支持的图像格式。搜索路径的格式类似于操作系统搜索路径(即,Linux 使用冒号分隔,Microsoft Windows 使用分号分隔)。在尝试 默认搜索路径 之前,将搜索此用户指定的搜索路径。
MAGICK_CONFIGURE_PATH 设置 ImageMagick 可以找到其配置文件的路径。使用此搜索路径搜索配置文件(.xml)。搜索路径的格式类似于操作系统搜索路径(即,Linux 使用冒号分隔,Microsoft Windows 使用分号分隔)。在尝试 默认搜索路径 之前,将搜索此用户指定的搜索路径。
MAGICK_DATE_PRECISION 设置任何时间戳打印的最大字符数。
MAGICK_DEBUG 设置调试选项。有关调试选项的说明,请参阅 -debug
MAGICK_DISK_LIMIT 设置像素缓存允许使用的最大磁盘空间(以字节为单位)。当超过此限制时,将不会创建像素缓存,并返回错误消息。
MAGICK_ERRORMODE 设置进程错误模式(仅限 Windows)。典型用法可能是值 1,以防止错误模式对话框显示消息框并挂起应用程序。
MAGICK_FILE_LIMIT 设置打开的像素缓存文件的最大数量。当超过此限制时,任何随后缓存到磁盘的像素都将关闭并在需要时重新打开。此行为允许同时访问磁盘上的大量图像,但由于重复的打开/关闭调用,会造成速度损失。
MAGICK_FONT_PATH 设置 ImageMagick 搜索 TrueType 和 Postscript Type1 字体文件的路径。仅当在当前目录中找不到特定字体文件时,才会参考此路径。
MAGICK_HEIGHT_LIMIT 设置图像的最大 高度
MAGICK_HOME 设置 ImageMagick 安装目录顶部的路径。此路径由未安装的 ImageMagick 版本(其位置未硬编码或由安装程序设置)进行参考。
MAGICK_LIST_LENGTH_LIMIT 设置图像序列的最大长度。
MAGICK_MAP_LIMIT 设置要为像素缓存分配的最大内存映射量(以字节为单位)。当超过此限制时,图像像素将缓存到磁盘(请参阅 MAGICK_DISK_LIMIT)。
MAGICK_MEMORY_LIMIT 设置要从堆为像素缓存分配的最大内存量(以字节为单位)。当超过此限制时,图像像素将缓存到内存映射磁盘(请参阅 MAGICK_MAP_LIMIT)。
MAGICK_OCL_DEVICE 设置为 off 以禁用某些加速算法(例如模糊、卷积等)的硬件加速。
MAGICK_PRECISION 设置要打印的最大有效数字位数。
MAGICK_SHRED_PASSES 如果您希望保持 ImageMagick 创建的临时文件私有,请在删除它们之前用零或随机数据覆盖它们。在第一次传递中,文件将归零。对于后续传递,将写入随机数据。
MAGICK_SYNCHRONIZE 设置为“true”以确保所有图像数据都已完全刷新并同步到磁盘。但是,会带来性能损失,但好处包括在系统崩溃时确保有效图像文件以及在图像像素缓存没有足够磁盘空间时尽早报告。
MAGICK_TEMPORARY_PATH 设置存储临时文件的路径。
MAGICK_THREAD_LIMIT 设置最大并行线程数。许多 ImageMagick 算法在多处理器系统上并行运行。使用此环境变量设置允许并行运行的最大线程数。
MAGICK_THROTTLE_LIMIT 定期至少在指定的毫秒数内让出 CPU。
MAGICK_TIME_LIMIT 设置最大时间(以秒为单位)。当超过此限制时,将引发异常并停止处理。
MAGICK_WIDTH_LIMIT 设置图像的最大 宽度
SOURCE_DATE_EPOCH

UNIX 时间戳,定义为自 1970年1月1日 00:00:00 UTC 起的秒数,不包括闰秒。管道构建的专用设置。此设置禁用生存时间设置。

使用 SI 前缀(例如 100MB)为 MAGICK_MEMORY_LIMITMAGICK_DISK_LIMITMAGICK_MEMORY_LIMIT 环境变量定义参数。MAGICK_WIDTH_LIMITMAGICK_HEIGHT_LIMITMAGICK_AREA_LIMIT 接受像素后缀,例如 MP 表示百万像素(例如 100MP)。请注意,您可以相对于任何安全策略限制限制,但您不能放宽它们。