在Linux服务器上配置ImageMagick上的PNG

Jon*_*817 4 linux png delegates imagemagick libpng

我一直在尝试在Linux服务器上运行ImageMagick上的以下脚本

convert resized.png -gravity Center -crop 1024X768+0+0 +repage flower.png
Run Code Online (Sandbox Code Playgroud)

但一直遇到以下错误:

convert: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert: no images defined `flower.png' @ error/convert.c/ConvertImageCommand/3212.
Run Code Online (Sandbox Code Playgroud)

看起来PNG没有代表.

当我跑:

identify -version
Run Code Online (Sandbox Code Playgroud)

我得到这个结果,表明没有安装PNG委托:

Version: ImageMagick 6.9.0-4 Q16 x86_64 2015-01-25       http://www.imagemagick.org
Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates (built-in): bzlib freetype jpeg lcms tiff x zlib
Run Code Online (Sandbox Code Playgroud)

据我所知,我的服务器上安装了"libpng".

如何在Linux服务器上为ImageMagick配置PNG委托?

我安装了'yum'但不是'apt-get'.

Jon*_*817 8

我做了很多搜索并找到了答案.

看起来ImageMagick不知道要查找哪个库.

我做了一个

locate libpng
Run Code Online (Sandbox Code Playgroud)

并发现它位于

/usr/lib64/
Run Code Online (Sandbox Code Playgroud)

然后我就可以在这个页面上运行命令(从ImageMagick目录中):

http://www.imagemagick.org/discourse-server/viewtopic.php?t=12366

./configure --enable-shared
make libdir=/usr/lib64
make libdir=/usr/lib64 install
./configure --enable-shared=yes --x-libraries=/usr/lib64 --without-perl
make
make install
Run Code Online (Sandbox Code Playgroud)

然后跑

identify -version
Run Code Online (Sandbox Code Playgroud)

显示以下结果:

Version: ImageMagick 6.9.0-4 Q16 x86_64 2015-01-30
 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates (built-in): bzlib freetype jng jpeg lcms png tiff x zlib
Run Code Online (Sandbox Code Playgroud)

这表明PNG现在作为代理安装.

  • 这对我也不起作用.唯一的问题是我还需要安装**libpng-devel**包.然后只运行简单的`./configure`而没有额外的参数(后跟`make`等)就足够了. (2认同)