我花了几个小时试图找到一个简单的解释,但似乎找不到任何有用的东西。我主要是一名 Windows 程序员,对基于 Linux 的操作系统有一些经验。出于某种原因,这样做apt install imagemagick
只会给我一个非常旧的版本(2012 年之前),而我需要的后续版本有一个变化,这意味着我需要从源代码构建。
在 Ubuntu 18.04 上编译 IM 7 非常简单:下载 tar.gz、提取、./configure
然后make
。make install
但是似乎默认不包含 PNG 支持(为什么??)。
我尝试过,./configure --with-png
但一无所获(我明白了--with-png=yes no
,这大概意味着“是的,你要求 PNG 支持,但我没有给你”)。我看过很多论坛帖子和 SE 问题,但每个提问的人似乎都有一些我显然没有的先验知识,而且问题似乎是关于流程中的一些后续步骤。
所以,我实际上需要做什么才能获得 PNG 支持?
(还有一些附加问题:为什么没有这方面的文档?为什么它不包含开箱即用的 PNG 支持?为什么没有针对 Ubuntu 的预构建二进制文件?)
答案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 时收到了该错误消息。
解决此问题:
deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
取消/etc/apt/sources.list 中的注释安装依赖项
sudo apt update
sudo apt build-dep imagemagick
- 重新安装 ImageMagick
./configure
make
sudo make install
sudo ldconfig /usr/local/lib
来源:https://linuxconfig.org/how-to-install-imagemagick-7-on-ubuntu-18-04-linux