ImageMagick PNG 委托安装问题

gva*_*nto 12 png imagemagick

Ubuntu 14.04:

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

root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared --with-png=yes
Run Code Online (Sandbox Code Playgroud)

但是,安装后,我的内置代表列表中有零个项目:

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):
Run Code Online (Sandbox Code Playgroud)

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

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

将libpng1621.tar.gz解压到自己的文件夹中,然后:Ran 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
Run Code Online (Sandbox Code Playgroud)

and*_*.46 21

你让事情对自己来说有点太难了,这里有一个快速而肮脏的指南,在 Trusty Tahr 上对我来说运行良好:

首先挑几个已知的依赖:

sudo apt-get install build-essential checkinstall \
             libx11-dev libxext-dev zlib1g-dev libpng12-dev \
             libjpeg-dev libfreetype6-dev libxml2-dev
Run Code Online (Sandbox Code Playgroud)

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

Dash >> Software & Updates >> Source Code
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令:

sudo apt-get build-dep imagemagick
Run Code Online (Sandbox Code Playgroud)

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

mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build
Run Code Online (Sandbox Code Playgroud)

最后,只需将下面的整个代码框复制并粘贴到终端窗口中,即可下载、解压缩、编译和安装:

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
Run Code Online (Sandbox Code Playgroud)

最后测试一下,特别是寻找你自己安装中缺少的 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:~$ 
Run Code Online (Sandbox Code Playgroud)

还有你缺少的 png 选项:)。

  • 很高兴听到这一切都有效!我不想要钱,我更喜欢把它作为一个开源的东西来做,但感谢你的想法:)。 (2认同)
  • 经过数小时的其他“答案”,这个终于为我工作了。我认为对我来说最关键的部分是已知的依赖项和 `sudo apt-get build-dep imagemagick`。谢谢! (2认同)