1、下载相应源码
zlib-1.2.8.tar.gz
jpegsrc.v9b.tar.gz
libpng-1.6.26.tar.gz
freetype-2.7.tar.gz(可选,如果要使用文字转图片操作,这个依赖必不可少)
libwebp-1.0.3.tar.gz
ImageMagick.tar.gz
2、解压相应源码包(安装顺序按照上述源码列表从上到下)
2.1、除了ImageMagick之外,其他的软件包编译的命令为
1)、./configure --prefix=/usr/local/
2)、make && make install
2.2、编译ImageMagick
1)、./configure --prefix=/usr/local/ImageMagick
查看终端中配置的结果,如果下面几条在终端中存在则说明ImageMagick开启了对相应图片格式的支持
JPEG v1 --with-jpeg=yes yes
PNG --with-png=yes yes
ZLIB --with-zlib=yes yes
如果不与上面相符,则说明ImageMagick未能对其进行支持,相应的库可能安装失败了。
特别是png和zlib,可能是ImageMagick-7.0.3-5的configure脚本的问题,
明明已经编译安装了libpng和zlib,但是就是无法添加对其的支持。
首先有可能是libpng,zlib等文件编译生成的pc文件没有生成到pkg-config默认路径下,需要手动将相关路径引入pkg-configue中
在终端中输入如下命令去引入相关变量
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
注:
/usr/local/lib/pkgconfig路径下需要存在libpng.pc,zlib.pc等文件,如果编译时指定了新的路径需要根据文件实际生成路径去修改
如果这两个库一直是no的话,在联网的情况下可以用yum安装libpng和libpng-devel,使用yum安装时会自动安装依赖zlib和zlib-devel,所有只需要yum install libpng libpng-devel即可。
如果上述三条均为yes则进入下一步;
2)、make && make install
3)、cd /usr/local/ImageMagick/bin
输入./convert --version
如果出现如下信息,则说明安装成功
Version: ImageMagick 7.0.3-5 Q16 x86_64 2016-11-08 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in): jng jpeg png zlib
3、错误列表:
3.1、如果出现
./convert:error while loading shared libraries:libjpeg.so.9:cannot open shared object file:No such file or directory;
并且前面编译安装jpegsrc.v9b时没有出现任何问题,则可能是因为系统的动态链接库中没有这个库,因为
Linux中系统默认的存放动态链接库的目录中没有/usr/local/lib,需要添加进去;
解决方法:
1)、临时方案,直接输入 ldconfig /usr/local/lib即可,这个立即在相应终端中生效,缺点系统重启后就会造成失效
2)、永久方案,在/etc/ld.so.conf.d/目录下创建一个ld.conf文件,在其中添加上/usr/local/lib,保存后在终端中输入ldconfig让配置文件生效即可
3.2、如果编译libpng出现
./.libs/libpng16.so: undefined reference to `inflateValidate'
需要在./configure 中指定zlib的LDFLAGS
./configure --prefix=/usr/local/ LDFLAGS="-L/usr/local/lib -lz"
相关路径应该根据实际情况填写