首页 > 服务器 > Linux > GraphicsMagick 安装后不支持jpg及png格式图片的解决办法
2014
11-07

GraphicsMagick 安装后不支持jpg及png格式图片的解决办法

1. 下载最新版GraphicsMagick-1.3.18

2. ./configure 后的结果

GraphicsMagick 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            Configure option              Configured value
-----------------------------------------------------------------
Shared libraries  --enable-shared=no            no
Static libraries  --enable-static=yes           yes
GNU ld            --with-gnu-ld=yes             yes
Quantum depth     --with-quantum-depth=8        8

Delegate Configuration:
BZLIB             --with-bzlib=yes              no
DPS               --with-dps=yes                no
FlashPIX          --with-fpx=no                 no
FreeType 2.0      --with-ttf=yes                no
Ghostscript       None                          gs (unknown)
Ghostscript fonts --with-gs-font-dir=default    none
Ghostscript lib   --with-gslib=no               no
JBIG              --with-jbig=yes               no
JPEG v1           --with-jpeg=yes               no (需安装 jpeg delegate library
JPEG-2000         --with-jp2=yes                no
LCMS              --with-lcms=yes               no
Magick++          --with-magick-plus-plus=yes   yes
PERL              --with-perl=no                no
PNG               --with-png=yes                no(需安装 png delegate library
TIFF              --with-tiff=yes               no
TRIO              --with-trio=yes               no
Windows fonts     --with-windows-font-dir=      none
WMF               --with-wmf=yes                no
X11               --with-x=                     no
XML               --with-xml=yes                no
ZLIB              --with-zlib=yes               yes

make

sudo make install

3.Delegate Library安装

JPEG delegate library

> gm convert 470f1bb8c5a98.jpg -resize 100x100 out.jpg

gm convert: No decode delegate for this image format (470f1bb8c5a98.jpg).

官方建议:This exception indicates that an external delegate library or its headers were not available when ImageMagick was built. To add support for the image format, download and install the requisite delegate library and its header files and reconfigure, rebuild, and reinstall ImageMagick. As an example, lets add support for the JPEG image format. First we install the JPEG RPMS:

原因是没有安装jpeg的包,这个可以在之前configure的结果中看出来,此时GraphicsMagick需要重新configure及build。

1)在GraphicsMagick官方网站提供的delegates下载页面中找到jpeg的包:libjpeg-6b.tar.gz

2)安装jpeg delegate library. configure -> make -> sudo make install

3)重新安装GraphicsMagick (configure时会发现jpeg已安装)

 

PNG delegate library

gm convert: No decode delegate for this image format (ben3.png).

1)在GraphicsMagick官方网站提供的delegates下载页面下载libpng-1.6.2.tar.gz 

2)安装png delegate library. configure -> make -> sudo make install

3)重新安装GraphicsMagick (configure时会发现png已安装)

注: 由于之前安装过一次libpng-1.5.2,rm /usr/local/lib/libpng*,在重新安装了1.4.7后,仍有错误:gm: error while loading shared libraries: libpng14.so.14: cannot open shared object file: No such file or directory.

运行sudo ldconfig进行自动清理。

特别说明:

如果系统之前已经下载安装了其他版本的libpng和jpeg,可以参考这篇文章在配置GM的时候去配置相关参数:Linux下编译安装GraphicsMagick及PHP扩展gmagick

编程技巧