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
....
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"
相關路徑應該根據實際情況填寫