⚠️ 这是一个非官方翻译网站,与 ImageMagick Studio LLC 无关。准确信息请参阅原文(https://imagemagick.org/advanced-linux-installation/)

下载与解包 • 配置 • 构建 • 安装 • Linux 特定的构建说明 • macOS 特定的构建说明 • MinGW 特定的构建说明 • 处理意外问题

在 Linux 或类 Linux 系统上,你或许不想费心去做高级安装。如果是这样,你也可以选择安装预编译的 二进制版本;或者如果你仍想从源代码安装而不想那么麻烦,请参阅简单的 从源代码安装 说明。但是,如果你想自定义 ImageMagick 在 Linux 或类 Linux 系统上的配置与安装,那就开始吧。

下载与解包

ImageMagick 可以在多种 Linux 及类 Linux 操作系统上构建,包括 Linux、Solaris、FreeBSD、macOS 等。需要一个编译器,幸运的是几乎所有现代 Linux 系统都自带编译器。从 GitHub 下载 ImageMagick-7.1.2-25.7z

用以下命令解包发行版:

tar xvzf ImageMagick.tar.gz

既然你已经解包了 ImageMagick 的 Linux/Linux 源代码发行版,那就来配置它吧。

配置

configure 脚本会检查你的环境,并判断它能拼凑出什么来在你的系统上编译并安装 ImageMagick。这包括找到一个编译器、确定编译器头文件的位置(例如 stdlib.h),以及检查是否有可供 ImageMagick 使用的委托库(例如 JPEG、PNG、TIFF 等)。如果你愿意接受 configure 的默认选项,并在源代码目录内构建,只需输入:

cd ImageMagick-7.1.2-25
./configure

观察 configure 脚本的输出,确认它找到了你认为它应该找到的所有东西。请特别注意脚本输出的最后几行。例如,以下是我们系统最近的一份报告:

ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.

Host system type: x86_64-unknown-linux-gnu
Build system type: x86_64-unknown-linux-gnu

                  Option                     Value
-------------------------------------------------------------------------------
Shared libraries  --enable-shared=yes       yes
Static libraries  --enable-static=yes       yes
Module support    --with-modules=yes        yes
GNU ld            --with-gnu-ld=yes     yes
Quantum depth     --with-quantum-depth=16   16
High Dynamic Range Imagery
                  --enable-hdri=no      no

Delegate Configuration:
BZLIB             --with-bzlib=yes      yes
Autotrace         --with-autotrace=yes  yes
DJVU              --with-djvu=yes       no
DPS               --with-dps=yes        no
FlashPIX          --with-fpx=yes        no
FontConfig        --with-fontconfig=yes yes
FreeType          --with-freetype=yes       yes
GhostPCL          None          pcl6 (unknown)
GhostXPS          None          gxps (unknown)
Ghostscript       None          gs (8.63)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib   --with-gslib=yes      no (failed tests)
Graphviz          --with-gvc=yes        yes
JBIG              --with-jbig=      no
JPEG v1           --with-jpeg=yes       yes
JPEG-2000         --with-jp2=yes        yes
LCMS              --with-lcms=yes       yes
LQR               --with-lqr=yes        no
Magick++          --with-magick-plus-plus=yes   yes
OpenEXR           --with-openexr=yes        yes
PERL              --with-perl=yes       /usr/bin/perl
PNG               --with-png=yes        yes
RSVG              --with-rsvg=yes       yes
TIFF              --with-tiff=yes       yes
result_windows_font_dir='none'
Windows fonts     --with-windows-font-dir=
WMF               --with-wmf=yes        yes
X11               --with-x=         yes
XML               --with-xml=yes        yes
ZLIB              --with-zlib=yes       yes

X11 Configuration:
      X_CFLAGS        =
      X_PRE_LIBS      = -lSM -lICE
      X_LIBS          =
      X_EXTRA_LIBS    =

Options used to compile and link:
  PREFIX          = /usr/local
  EXEC-PREFIX     = /usr/local
  VERSION         = 6.4.8
  CC              = gcc -std=gnu99
  CFLAGS          = -fopenmp -g -O2 -Wall -W -pthread
  MAGICK_CFLAGS   = -fopenmp -g -O2 -Wall -W -pthread
  CPPFLAGS        = -I/usr/local/include/ImageMagick
  PCFLAGS         = -fopenmp
  DEFS            = -DHAVE_CONFIG_H
  LDFLAGS         = -lfreetype
  MAGICK_LDFLAGS  = -L/usr/local/lib -lfreetype
  LIBS            = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext
                    -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl
  CXX             = g++
  CXXFLAGS        = -g -O2 -Wall -W -pthread

通过在 configure 命令行中设置变量的初始值,你可以影响 configure 脚本对编译器、编译标志或库的选择。其中包括(但不限于)以下这些:

CC
要使用的 C 编译器名称(例如 cc -Xa)。
CXX
要使用的 C++ 编译器名称(例如 CC)。
CFLAGS
编译 C 代码的编译器标志(例如 -g -O2)。
CXXFLAGS
编译 C++ 代码的编译器标志(例如 -g -O2)。
CPPFLAGS
查找头文件的包含路径(例如 -I/usr/local)。
LDFLAGS
查找库的库路径(例如 -L/usr/local)。支持库运行路径(run-path)概念的系统可能需要额外的参数,以便在运行时找到共享库。例如,Solaris 链接器需要 -R/path 形式的参数。一些 Linux 系统可以用 -rpath /usr/local/lib,而另一些 gcc 不将 -rpath 传递给链接器的 Linux 系统则需要 -Wl,-rpath,/usr/local/lib 形式的参数。
LIBS
链接所需的额外库(例如 -l/usr/local/lib)。

以下是一个从命令行设置 configure 变量的示例:

configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix

任何需要目录路径的变量(例如 CPPFLAGS 或 LDFLAGS)都必须指定绝对路径,而不是相对路径。

configure 通常能自动找到 X 的包含文件和库文件,但如果找不到,你可以用 --x-includes=path 和 --x-libraries=path 选项指定它们的位置。

configure 脚本提供了许多 ImageMagick 特定的选项。禁用某个选项时,--disable-something 等价于指定 --enable-something=no,--without-something 等价于 --with-something=no。configure 选项如下(执行 configure --help 可查看所有选项)。

ImageMagick 的选项表示要启用或禁用的功能,或要包含进构建的包。当某个功能被启用时(通过 --enable-something),它会启用 ImageMagick 中已经存在的代码。当某个包被启用时(通过 --with-something),configure 脚本会搜索它,如果它已正确安装且可供使用(编译器能找到头文件和已构建的库),就会将其包含进构建。configure 脚本发行时所有功能都被禁用、所有包都被启用。一般来说,禁用某个包的唯一理由是该包存在但不适合此次构建(可能是旧版本,或未用正确的编译标志编译)。

以下是你可以配置的可选功能:

--enable-shared

构建共享库以及加载编码器和处理模块的支持。共享库更受青睐,因为它们允许程序共享公共代码,使各个程序小得多。此外,要让已安装的 PERL 动态加载 PerlMagick,共享库是必需的(否则必须安装额外的 PERL(PerlMagick))。 带委托构建的 ImageMagick(参见下文的 MAGICK 插件)可能带来额外的挑战。如果 ImageMagick 使用静态库构建(即不带 --enable-shared 的默认情况),那么委托库既可构建为静态库也可构建为共享库。但是,如果 ImageMagick 使用共享库构建,那么所有委托库也必须构建为共享库。静态库通常使用扩展名 .a,而共享库通常使用 .so、.sa 或 .dll 等扩展名。共享库中的代码通常必须使用特殊的编译器选项来编译,以生成位置无关代码(PIC)。只有在平台默认将代码编译为 PIC 时才不需要这样做。 PIC 编译标志因厂商而异(gcc 的是 -fPIC)。但是,你必须用同一个标志编译所有共享库源代码(对 gcc 使用 -fPIC 而非 -fpic)。静态库通常使用 ar 之类的归档工具创建,而共享库则使用特殊的链接器或编译器选项构建(例如 gcc 的 -shared)。 如果未指定 --enable-shared,则会构建一个新的、与 PerlMagick 扩展静态链接的 PERL 解释器(PerlMagick)。这个新解释器会安装到与 ImageMagick 实用程序相同的目录中。如果指定了 --enable-shared,则 PerlMagick 扩展会构建为一个可动态加载的对象,并在运行时加载到你当前的 PERL 解释器中。使用动态加载的扩展优于静态链接的扩展,所以如果可能就使用 --enable-shared(注意,与 ImageMagick 一起使用的所有库都必须是共享库!)。 --disable-static

不构建静态归档库(扩展名为 .a)。如果你正在构建共享库,那么构建静态库几乎没有价值。构建静态库的理由包括:1) 它们更易于调试;2) 客户端没有外部依赖(即 libMagick.so);3) 构建委托库的 PIC 版本可能需要额外的专业知识和精力;4) 你无法构建共享库。 --disable-installed

禁用构建已安装的 ImageMagick(默认启用)。 默认情况下,ImageMagick 构建被配置为正式安装到一个目录树中。这是安装 ImageMagick 最安全、最可靠的方式。使用此选项可将 ImageMagick 配置为不使用硬编码路径,而是通过从可执行文件(或从 MAGICK_HOME 环境变量指定的位置)计算偏移路径来定位支持文件。非安装配置非常适合那些预期在任何位置解压并运行的二进制发行版。 --enable-ccmalloc

启用 'ccmalloc' 内存调试支持(默认禁用)。 --enable-prof

启用 'prof' 性能分析支持(默认禁用)。 --enable-gprof

启用 'gprof' 性能分析支持(默认禁用)。 --enable-gcov

启用 'gcov' 性能分析支持(默认禁用)。 --disable-openmp

禁用 OpenMP(默认启用)。 某些 ImageMagick 算法,例如卷积,在现代双核和四核处理器上运行时,借助 OpenMP API 的帮助可以实现显著的加速。 --disable-largefile

禁用对大(64 位)文件偏移量的支持。 默认情况下,如果操作系统支持大文件,ImageMagick 会带着大文件支持(在 32 位 CPU 上 > 2GB)进行编译。一些使用 ImageMagick 库的应用程序可能也需要大文件支持。通过 --disable-largefile 禁用大文件支持后,依赖的应用程序就无需为使用该库而提供大文件的特殊编译选项。

以下是你可以配置的可选包:

--with-quantum-depth

像素量子的位数(默认 16)。 使用此选项指定每个像素量子使用的位数(红、绿、蓝和 alpha 像素分量的大小)。例如,--with-quantum-depth=8 会使用 8 位量子构建 ImageMagick。大多数计算机显示适配器使用 8 位量子。当前支持的参数为 8、16 或 32。我们推荐默认的 16,因为某些图像格式支持每像素 16 位。但是,此选项在决定 ImageMagick 的整体运行时性能方面很重要。 量子的位数决定了它可以包含多少个值。每个量子级别支持的值数量是前一级别的 256 倍。下表显示了各种量子大小可用的范围。

Quantum Depth     Valid Range (Decimal)   Valid Range (Hex)
    8             0-255                   00-FF
   16             0-65535                 0000-FFFF
   32             0-4294967295            00000000-FFFFFFFF

较大的像素量子会使 ImageMagick 运行变慢并需要更多内存。例如,使用 16 位像素量子可能使 ImageMagick 比构建为支持 8 位像素量子时慢 15% 至 50%(并消耗两倍的内存)。 图像消耗的虚拟内存量可以用公式 (5 * Quantum Depth * Rows * Columns) / 8 计算。当资源有限时,这是一个重要的考虑因素,特别是因为处理图像时可能需要同时将多个图像放在内存中。下表显示了一张 1024x768 图像的内存消耗值。

Quantum Depth   Virtual Memory
     8               3MB
    16               8MB
    32              15MB

--enable-hdri

准确表示宽范围的强度级别。 --enable-osx-universal-binary

在 OS X 上构建通用二进制(universal binary)。 --without-modules

禁用对动态可加载模块的支持。 图像编码器和处理模块构建为可加载模块,安装在目录 [prefix]/lib/ImageMagick-X.X.X/modules-QN(其中 'N' 等于 8、16 或 32,取决于量子深度)下的 coders 和 filters 子目录中。模块构建选项仅在与 --enable-shared 一起使用时可用。如果未同时指定 --enable-shared,则构建模块的支持被禁用。注意,如果同时指定 --enable-shared 和 --disable-modules,则模块加载器是激活的(只需将模块复制到位即可扩展已安装的 ImageMagick),但 ImageMagick 本身不是使用模块构建的。 --with-cache

设置像素缓存阈值(默认为可用内存)。 使用此选项指定一个不同的图像像素缓存阈值。它设置 ImageMagick 在切换到使用内存映射临时文件来存储原始像素数据之前允许消耗的最大堆内存量。 --without-threads

禁用线程支持。 默认情况下,ImageMagick 库带着多线程支持进行编译。如果不希望如此,请指定 --without-threads。 --with-frozenpaths

启用冻结的委托路径。 通常,外部程序名在替换进 delegates.xml 配置文件时不带完整路径。指定此选项可启用使用 configure 确定的位置保存程序的完整路径。这在程序存储于多个路径下、且用户使用的 PATH 设置与构建 ImageMagick 的人不同的环境中很有用。 --without-magick-plus-plus

禁用 Magick++ 的构建/安装。 禁用构建 Magick++,即 ImageMagick 的 C++ 应用程序编程接口。构建 Magick++ 需要一个合适的 C++ 编译器。指定 CXX configure 变量来选择要使用的 C++ 编译器(默认 g++),用 CXXFLAGS 来选择所需的编译器优化和调试标志(默认 -g -O2)。陈旧的 C++ 编译器通常会被 configure 测试拒绝,所以只有在 Magick++ 编译失败时才需要指定此选项。 --without-perl

禁用 PerlMagick 的构建/安装,或 默认情况下,PerlMagick 会作为 ImageMagick 正常的 configure、make、sudo make install 流程的一部分被方便地编译和安装。当指定 --without-perl 时,你必须先安装 ImageMagick,下载 PerlMagick 源代码发行版,构建,最后再安装 PerlMagick。注意,即使指定了 --without-perl,PerlMagick 仍会被配置。如果提供了参数 --with-perl=/path/to/perl,则 /path/to/perl 会被当作要使用的 PERL 解释器。这在你 PATH 中的 perl 可执行文件不是 PERL5、或不是你想使用的 PERL 时很重要。 --with-perl=PERL

使用指定的 Perl 二进制文件来配置 PerlMagick。 --with-perl-options=OPTIONS

从 Makefile.PL 生成 PerlMagick 的 Makefile 时在命令行上传递的选项。 PerlMagick 模块通常使用 Perl 解释器的安装 PREFIX 来安装,而不是 ImageMagick 的。如果 ImageMagick 的安装前缀与 PERL 的 PREFIX 不同,你可能会发现 PerlMagick 的 sudo make install 步骤试图安装到你没有写权限的目录树中。当 PERL 随操作系统一起分发,或在互联网服务提供商(ISP)的 Web 服务器上时,这种情况很常见。如果你想让 PerlMagick 安装到别处,则通过 "--with-perl-options=PREFIX=/some/place" 向 PERL 的配置步骤提供一个 PREFIX 选项。MakeMaker 接受的其他选项有 'LIB'、'LIBPERL_A'、'LINKTYPE' 和 'OPTIMIZE'。有关配置 PERL 扩展的更多信息,请参阅 ExtUtils::MakeMaker(3) 手册页。 --without-bzlib

禁用 BZLIB 支持。 --without-dps

禁用 Display Postscript 支持。 --with-fpx

启用 FlashPIX 支持。 --without-freetype

禁用 TrueType 支持。 --with-gslib

启用 Ghostscript 库支持。 --without-jbig

禁用 JBIG 支持。 --without-jpeg

禁用 JPEG 支持。 --without-jp2

禁用 JPEG v2 支持。 --without-lcms

禁用 LCMS 支持。 --without-lzma

禁用 LZMA 支持。 --without-png

禁用 PNG 支持。 --without-tiff

禁用 TIFF 支持。 --without-wmf

禁用 WMF 支持。 --with-fontpath

添加到默认字体搜索路径的前面。 --with-gs-font-dir

包含 Ghostscript 字体的目录。 指定包含 Ghostscript Postscript Type 1 字体文件(例如 n022003l.pfb)的目录,以便它们能用 FreeType 库渲染。如果字体文件安装在默认的 Ghostscript 安装路径(${prefix}/share/ghostscript/fonts)中,configure 应该会自动发现它们,无需指定此选项。如果 Ghostscript 字体未能被自动定位,或需要覆盖其位置,则指定此选项。 --with-windows-font-dir

包含 MS-Windows 字体的目录。 指定包含 MS-Windows 兼容字体的目录。当 ImageMagick 在 MS-Windows 下运行时不需要此选项。 --without-xml

禁用 XML 支持。 --without-zlib

禁用 ZLIB 支持。 --without-x

不使用 X Window System。 默认情况下,如果 X11 委托库可用,ImageMagick 会使用它们。当指定 --without-x 时,X11 的使用被禁用。display、animate 和 import 子命令将不被包含。其余子命令的功能会减少,例如无法访问 X11 字体(可考虑改用 Postscript 或 TrueType 字体)。 --with-share-path=DIR

share 目录的备用路径(默认 share/ImageMagick)。 --with-libstdc=DIR

使用 DIR 中的 libstdc++(用于 GNU C++)。

虽然 configure 旨在简化 ImageMagick 的安装,但它常常会发现一些原本要等到后续编译 ImageMagick 时才会遇到的问题。configure 脚本通过用指定的编译标志(CFLAGS)、预处理器标志(CPPFLAGS)和链接器标志(LDFLAGS)执行编译器(CC)来测试头文件和库。所有错误都会记录到文件 config.log 中。如果 configure 未能发现某个头文件或库,请查看此日志文件以确定原因;不过请注意,config.log 中的错误是正常的,因为 configure 的工作方式就是尝试某件事并看它是否失败。只有当某项测试本应在你的系统上通过时,config.log 中的错误才算是问题。

configure 失败的常见原因有:1) 委托头文件不在头文件包含路径中(CPPFLAGS 的 -I 选项);2) 委托库不在链接器的搜索/运行路径中(LDFLAGS 的 -L/-R 选项);3) 委托库缺少某个函数(旧版本?);或 4) 编译环境有缺陷。

如果尝试了所有合理的纠正措施后,问题似乎仍是由 configure 脚本的缺陷引起的,请向 ImageMagick Defect Support Forum 发送一份缺陷报告。所有缺陷报告都应包含操作系统类型(由 uname -a 报告)和编译器/编译器版本。configure 脚本输出的副本和/或 config.log 文件的相关部分可能有助于发现问题。如果你贴出 config.log 的部分内容,也请附上 configure 输出的记录,以及你期望看到什么(以及为什么)的说明,以便能够识别并解决你所观察到的失败。

ImageMagick 现已配置完毕,可以进行构建了。

构建

ImageMagick 配置完成后,生成的 make 文件提供以下标准构建目标:

make
构建 ImageMagick。
sudo make install
安装 ImageMagick。
make check
使用已安装的 ImageMagick 运行测试(必须先执行 sudo make install)。Ghostscript 和 Freetype 是先决条件,否则某些渲染文本以及 EPS、PS 和 PDF 格式的单元测试很可能会失败。这些单元测试需要 open 安全策略才能通过。
make clean
删除 make 在构建目录中创建的所有内容。
make distclean
删除 configure 和 make 在构建目录中创建的所有内容。如果你想从头开始,这很有用。
make uninstall
从系统中删除当前配置下由 sudo make install 安装(或会安装)的所有文件。注意,由于 Perl 不再支持 uninstall 目标,此目标对 PerlMagick 而言并不完善。

在大多数情况下,你只是想用以下命令编译 ImageMagick:

make

构建完成后,你可以按下文所述,选择性地将 ImageMagick 安装到你的系统上。

安装

既然 ImageMagick 已配置并构建完成,请输入:

make install

来安装它。

默认情况下,ImageMagick 将二进制文件安装到 /usr/local/bin,库安装到 /usr/local/lib,头文件安装到 /usr/local/include,文档安装到 /usr/local/share。你可以通过给 configure 提供 --prefix=PATH 选项,指定 /usr/local 之外的备用安装前缀。当你没有权限安装到默认路径下,或想改为安装到系统目录时,这很有用。

要确认 ImageMagick 发行版安装成功,请确保安装目录在你的可执行文件搜索路径中,然后输入:

magick logo: logo.gif
identify logo.gif

ImageMagick 徽标会显示在你的 X11 显示器上。

要验证 ImageMagick 的构建配置,请输入:

magick identify -list configure

要列出支持哪些图像格式,请输入:

magick identify -list format

要进行更全面的测试,你可以输入以下命令运行 ImageMagick 测试套件:

make check

Ghostscript 是先决条件,否则 EPS、PS 和 PDF 测试将失败。注意,由于开发者的环境与你自己的环境存在差异,即使结果没问题,也可能有少数测试失败。开发者环境与你自己环境的差异可能包括编译器、CPU 类型以及所用的库版本。ImageMagick 开发者使用所有依赖库的当前版本。

Linux 特定的构建说明

imagemagick.org 或其 镜像 下载 ImageMagick.src.rpm

用以下命令构建 ImageMagick:

rpmbuild --rebuild ImageMagick.src.rpm

构建之后,找到 RPMS 文件夹并安装 ImageMagick 二进制 RPM 发行版:

rpm -ivh ImageMagick-7.1.2.-?.*.rpm

macOS 特定的构建说明

以管理员身份或使用 sudo 命令执行以下步骤:

安装 MacPorts。下载并安装 MacPorts,然后输入以下命令:

sudo port -v install freetype +bytecode
sudo port -v install librsvg
sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms

这会安装许多 ImageMagick 将要使用的委托库,例如 JPEG 和 FreeType。

从 Apple 安装最新的 Xcode

使用 port 命令安装你需要的任何委托库,例如:

sudo port install jpeg

现在来构建 ImageMagick:

下载 ImageMagick 源代码发行版,并对照其 来源凭证 验证该发行版。

解包并进入顶层 ImageMagick 目录:

tar xvzf ImageMagick-7.1.2-25.tar.gz
cd ImageMagick-7.1.2-25

配置 ImageMagick:

./configure --prefix=/opt --with-quantum-depth=16 \
  --disable-dependency-tracking --with-x=yes \
  --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
  --without-perl"

构建 ImageMagick:

make

安装 ImageMagick:

sudo make install

要验证你的安装,请输入

/opt/local/bin/identify -list font

来列出 ImageMagick 所知道的所有字体。

要测试 ImageMagick 的 GUI,在一个新 shell 中输入:

display -display :0

MinGW 特定的构建说明

虽然你可以自己下载并安装委托库,但许多库已经在 GnuWin32 发行版中提供。下载并安装你需要的任何委托库,例如 JPEG、PNG、TIFF 等。安装包时务必指定开发头文件。接下来输入:

tar jxvf ImageMagick-7.1.2-?.tar.bz2
cd ImageMagick-7.1.2-25
export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
./configure --without-perl
make
sudo make install

处理意外问题

很可能 ImageMagick 的下载、配置、构建和安装会如预期那样顺利完成,但某些系统和环境可能会导致一个或多个步骤失败。我们讨论几个我们遇到过的问题,以及如何采取纠正措施以确保你拥有一个可用的 ImageMagick 版本。

构建问题

如果构建抱怨缺少依赖(例如 .deps/source.PLO),请在你的 configure 命令行中添加 --disable-dependency-tracking。

某些系统可能因未解析的符号而在构建时链接失败。请尝试在 configure 命令行中添加 LDFLAGS:

configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'

动态链接器运行时绑定

在某些系统上,ImageMagick 可能找不到它的共享库 libMagick.so。请尝试用库路径运行 ldconfig:

/sbin/ldconfig /usr/local/lib

Solaris 和 Linux 系统有 ldd 命令,它有助于追踪 ImageMagick 依赖哪些库:

ldd `which convert`

委托库

偶尔你可能会收到这些警告:

no decode delegate for this image format
no encode delegate for this image format

此异常表明在构建 ImageMagick 时,某个外部委托库或其头文件不可用。要添加对该图像格式的支持,请下载并安装所需的委托库及其头文件,然后重新配置、重新构建并重新安装 ImageMagick。举个例子,我们来添加对 JPEG 图像格式的支持。首先安装 JPEG RPMS:

yum install libjpeg libjpeg-devel

现在重新配置、重新构建并重新安装 ImageMagick。要验证 JPEG 现在已在 ImageMagick 中得到正确支持,请使用以下命令:

magick identify -list format

你应该会看到与 JPEG 标签关联的模式为 rw-。此模式意味着图像可以被读取或写入,且每个图像文件只能支持一张图像。

PerlMagick

如果 PerlMagick 链接失败并显示类似 libperl.a is not found 的消息,请用 --enable-shared 或 --enable-shared --with-modules 选项重新运行 configure。