在 Ubuntu 上获取支持 PNG 的 ImageMagick 7 的最简单过程是什么?

在 Ubuntu 上获取支持 PNG 的 ImageMagick 7 的最简单过程是什么?

我花了几个小时试图找到一个简单的解释,但似乎找不到任何有用的东西。我主要是一名 Windows 程序员,对基于 Linux 的操作系统有一些经验。出于某种原因,这样做apt install imagemagick只会给我一个非常旧的版本(2012 年之前),而我需要的后续版本有一个变化,这意味着我需要从源代码构建。

在 Ubuntu 18.04 上编译 IM 7 非常简单:下载 tar.gz、提取、./configure然后makemake install但是似乎默认不包含 PNG 支持(为什么??)。

我尝试过,./configure --with-png但一无所获(我明白了--with-png=yes no,这大概意味着“是的,你要求 PNG 支持,但我没有给你”)。我看过很多论坛帖子和 SE 问题,但每个提问的人似乎都有一些我显然没有的先验知识,而且问题似乎是关于流程中的一些后续步骤。

所以,我实际上需要做什么才能获得 PNG 支持?

(还有一些附加问题:为什么没有这方面的文档?为什么它不包含开箱即用的 PNG 支持?为什么没有针对 Ubuntu 的预构建二进制文件?)

相关问题:apt remove 之后 Imagemagick 仍然存在吗?

答案1

我强烈推荐 ImageMagick Easy Install (IMEI):

https://github.com/SoftCreatR/imei/

它会追踪附加 ImageMagick“委托”(IM 术语中的图像格式)所需的所有源/开发库。此外,它还可以在初始安装后从较新的源逐步更新您的本地安装。

目前的安装步骤:

git clone https://github.com/SoftCreatR/imei
cd imei
sudo ./imei.sh

答案2

图像魔术师无法libpng自行查找。告诉它如何查找、编译和链接的最简单方法libpng是安装, libpng然后执行pkg-config

sudo apt install build-essential libpng-dev pkg-config
 

现在你可以看看它是否有效:

./configure | grep -i png

checking for libpng >= 1.0.0... yes
  PNG               --with-png=yes      yes
  CFLAGS          = -I/usr/include/libpng16  -fopenmp -Wall -g -O2 -mtune=amdfam10 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
  LIBS            =           -lpng16 -lz                         -lz     -lm    -lpthread 
  DELEGATES       = png zlib

答案3

我不确定您收到了什么错误消息,但我convert: no decode delegate for this image format `JPG' @ error/constitute.c/ReadImage/562在使用从源代码安装的全新 ImageMagick 处理 jpeg 时收到了该错误消息。

解决此问题:

  1. deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted取消/etc/apt/sources.list 中的注释

  2. 安装依赖项

sudo apt update
sudo apt build-dep imagemagick
  1. 重新安装 ImageMagick
./configure
make
sudo make install
sudo ldconfig /usr/local/lib

来源:https://linuxconfig.org/how-to-install-imagemagick-7-on-ubuntu-18-04-linux

相关内容