ImageMagick PNG 委托安装问题

ImageMagick PNG 委托安装问题

Ubuntu 14.04:

我已经下载了最新的 imagemagick 源并安装,使用下面的选项进行配置:

root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared --with-png=yes

然而,安装之后,我的内置代表列表中没有任何项目:

root@usve59445:~/im/ImageMagick-6.9.3-7# identify -version
Version: ImageMagick 6.9.3-7 Q16 x86_64 2016-03-14
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC License:  
Features: Cipher DPC OpenMP
Delegates (built-in):

我遇到的问题是执行convert命令时“未找到 PNG 格式的委托”。

我从以下位置安装了 libpng 委托: http://www.imagemagick.org/download/delegates/

将 libpng1621.tar.gz 解压到其自己的文件夹中,然后:运行 configure、make、make install(无错误消息)

现在,当我尝试重新编译 imagemagick 时,它仍然显示'正在检查 PNG ...否'并且 --with-png 值为'否'(即使我使用 --with-png=yes 对其进行了配置)。

不确定我做错了什么?

尝试使用以下方法重新编译 IM:

root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared=yes --with-png=yes LDFLAGS='-L /usr/local/lib' LIBS=-lpng16

(我思考我使用了正确的 LDFLAGS,但不确定)

root@usve59445:~/im/libpng-1.6.21# libpng16-config --L_opts
-L/usr/local/lib 

root@usve59445:~/im/libpng-1.6.21# libpng16-config --libs
-lpng16


root@usve59445:~/im/libpng-1.6.21# locate libpng
/lib/x86_64-linux-gnu/libpng12.so.0
/lib/x86_64-linux-gnu/libpng12.so.0.46.0
/usr/bin/libpng-config
/usr/bin/libpng12-config
/usr/include/libpng
/usr/include/libpng12
/usr/include/libpng12/png.h
/usr/include/libpng12/pngconf.h
/usr/lib/x86_64-linux-gnu/libpng.a
/usr/lib/x86_64-linux-gnu/libpng.so
/usr/lib/x86_64-linux-gnu/libpng.so.3
/usr/lib/x86_64-linux-gnu/libpng12.a
/usr/lib/x86_64-linux-gnu/libpng12.so
/usr/lib/x86_64-linux-gnu/libpng12.so.0
/usr/lib/x86_64-linux-gnu/pkgconfig/libpng.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/libpng12.pc
/usr/local/bin/libpng-config
/usr/local/bin/libpng16-config
/usr/local/include/libpng16
/usr/local/include/libpng16/png.h
/usr/local/include/libpng16/pngconf.h
/usr/local/include/libpng16/pnglibconf.h
/usr/local/lib/libpng.a
/usr/local/lib/libpng.la
/usr/local/lib/libpng.so
/usr/local/lib/libpng16.a
/usr/local/lib/libpng16.la
/usr/local/lib/libpng16.so
/usr/local/lib/libpng16.so.16
/usr/local/lib/libpng16.so.16.21.0
/usr/local/lib/pkgconfig/libpng.pc
/usr/local/lib/pkgconfig/libpng16.pc
/usr/local/share/man/man3/libpng.3
/usr/local/share/man/man3/libpngpf.3
/usr/share/doc/libpng12-0
/usr/share/doc/libpng12-dev
/usr/share/doc/libpng3
/usr/share/doc/libpng12-0/ANNOUNCE
/usr/share/doc/libpng12-0/KNOWNBUG
/usr/share/doc/libpng12-0/README.Debian
/usr/share/doc/libpng12-0/README.gz
/usr/share/doc/libpng12-0/TODO
/usr/share/doc/libpng12-0/changelog.Debian.gz
/usr/share/doc/libpng12-0/copyright
/usr/share/doc/libpng12-0/libpng-1.2.46.txt.gz
/usr/share/doc/libpng12-dev/changelog.Debian.gz
/usr/share/doc/libpng12-dev/copyright
/usr/share/doc/libpng12-dev/examples
/usr/share/doc/libpng12-dev/examples/example.c.gz
/usr/share/doc/libpng12-dev/examples/pngtest.c.gz
/usr/share/doc/libpng12-dev/examples/pngtest.png
/usr/share/doc-base/libpng12
/usr/share/man/man1/libpng-config.1.gz
/usr/share/man/man1/libpng12-config.1.gz
/usr/share/man/man3/libpng.3.gz
/var/cache/apt/archives/libpng12-0_1.2.46-3ubuntu4.2_amd64.deb
/var/cache/apt/archives/libpng12-dev_1.2.46-3ubuntu4.2_amd64.deb
/var/cache/apt/archives/libpng3_1.2.46-3ubuntu4.2_amd64.deb
/var/lib/dpkg/info/libpng12-0:amd64.list
/var/lib/dpkg/info/libpng12-0:amd64.md5sums
/var/lib/dpkg/info/libpng12-0:amd64.postinst
/var/lib/dpkg/info/libpng12-0:amd64.postrm
/var/lib/dpkg/info/libpng12-0:amd64.shlibs
/var/lib/dpkg/info/libpng12-dev.list
/var/lib/dpkg/info/libpng12-dev.md5sums
/var/lib/dpkg/info/libpng3:amd64.list

答案1

你把事情搞得太复杂了,这里有一个快速而简单的指南,在 Trusty Tahr 上对我来说运行得很好:

首先选择一些已知的依赖项:

sudo apt-get install build-essential checkinstall \
             libx11-dev libxext-dev zlib1g-dev libpng12-dev \
             libjpeg-dev libfreetype6-dev libxml2-dev

这并不能完全捕获所有内容,因此请通过单击此处的“源代码”来激活源代码存储库:

Dash >> Software & Updates >> Source Code

然后运行以下命令:

sudo apt-get build-dep imagemagick

创建一个构建文件夹并更改它:

mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build

最后,只需复制并粘贴即可下载、提取、编译和安装全部的将下面的代码框放入终端窗口:

wget https://www.imagemagick.org/download/ImageMagick-7.0.8-28.tar.bz2 && \
tar xvf ImageMagick-7.0.8-28.tar.bz2 && cd ImageMagick-7.0.8-28 && ./configure && make && \
sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/imagemagick_build" \
     --pkgname imagemagick --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
     --pkgversion "7.0.8-28" && \
make distclean && sudo ldconfig

最后测试一下,特别寻找您自己的安装中缺少的 png:

andrew@corinth:~$ identify -version
Version: ImageMagick 7.0.5-10 Q16 x86_64 2017-06-05 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff wmf x xml zlib
andrew@corinth:~$ 

而且还有您缺少的 png 选项:)。

答案2

我通过提取 tar.gz 文件安装了 ImageMagick7.0.11 和 ImageMagick7.1.0。但是没有用。最后我不得不只使用 rpm 来安装它。'dnf' 命令可以帮你解决问题。如果 apt-get 不起作用,那么 'dnf' 可能是适合你的 RHEL/CentOS 8 的解决方案。请查看此链接以获取参考 -https://unix.stackexchange.com/questions/555466/how-to-install-apt-get-and-dpkg

现在,当我点击魔法版本或转换时

version 命令,我可以看到这个正确的输出:版本:

ImageMagick 7.0.11-13 Q16 x86_64 2021-05-17https://imagemagick.org 版权所有:(C)1999-2021 ImageMagick Studio LLC 许可证: https://imagemagick.org/script/license.php功能: 密码 DPC HDRI 模块 OpenMP(4.5) 代表(内置): bzlib cairo djvu fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib

最初,对我来说,当我不断尝试使用 yum 命令时,这个“代表(内置)”部分也是空白的。

答案3

andrew.46 的答案提供了在任何类似 debian 的发行版上正确构建的解决方案,但并没有真正回答为什么原始海报的构建没有找到 libpng。

找到罪魁祸首的简单方法是运行pkg-config --cflags libpng如下命令

user@mac ~ % pkg-config --cflags libpng
Package zlib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zlib.pc'
to the PKG_CONFIG_PATH environment variable
Package 'zlib', required by 'libpng', not found

这可以让你了解缺少什么。在我的例子中是 zlib。安装 zlib 后:

user@mac ~ % pkg-config --cflags libpng
-I/usr/local/include/libpng16 -I/usr/local/include

相关内容