ImageMagick: How do I convert pdf to jpg? I get ERROR: no decode delegate for this image format
ImageMagick: How do I convert pdf to jpg? I get ERROR: no decode delegate for this image format
问题
我需要将多页 pdf 转换为 jpg 文件,但 ImageMagick 不断抛出难以解释的错误。
正在安装 ImageMagick
起初我使用 apt-get 安装它,但我了解到有几个人在这样做时遇到问题,我最终从源代码安装它。
我的 linux 分布(一张 Docker 图片):
>lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
正在从源安装 ImageMagick:
# Installing build tools and ghostscript
apt update
apt-get install -y build-essential make ghostscript
# Downloading imagemagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
# Installing and cleaning up
tar xvzf ImageMagick.tar.gz && cd ImageMagick-7* && ./configure && make && make install && ldconfig /usr/local/lib && cd .. && rm -r ImageMagick-7*
# Checking ImageMagick version
>magick -version
Version: ImageMagick 7.0.10-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): jpeg x xml zlib
正在转换文件
# Image to image
>convert test.jpg test.png
# PDF to image
>convert test.pdf test.jpg
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/572.
convert: no images defined `test.jpg' @ error/convert.c/ConvertImageCommand/3304.
Ghostscript 是问题所在吗?
Ghostscript 安装是很多人的常见问题,但 Ghostscript 似乎工作正常并生成 jpg 文件
# PDF to image with Ghostscript
gs -sDEVICE=pngalpha -sOutputFile=test.jpg test.pdf
我是否必须安装更多代理?
该错误提示我的受限委托有问题,所以我想预先安装所有依赖项。
# Listing dependencies
>apt update && apt build-dep imagemagick
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list
这就是我卡住的地方。
解决方案
原来是代表少了。我没有在文档或其他任何地方看到对此的详细描述。
注意: 应在安装 ImageMagick 之前 安装委托
这是我修复它的方法:
# Adding source URI
echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list
apt update
# Installing dependencies
apt-get build-dep imagemagick
现在我可以将 pdf 转换为 jpg 了!
问题
我需要将多页 pdf 转换为 jpg 文件,但 ImageMagick 不断抛出难以解释的错误。
正在安装 ImageMagick
起初我使用 apt-get 安装它,但我了解到有几个人在这样做时遇到问题,我最终从源代码安装它。
我的 linux 分布(一张 Docker 图片):
>lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
正在从源安装 ImageMagick:
# Installing build tools and ghostscript
apt update
apt-get install -y build-essential make ghostscript
# Downloading imagemagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
# Installing and cleaning up
tar xvzf ImageMagick.tar.gz && cd ImageMagick-7* && ./configure && make && make install && ldconfig /usr/local/lib && cd .. && rm -r ImageMagick-7*
# Checking ImageMagick version
>magick -version
Version: ImageMagick 7.0.10-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): jpeg x xml zlib
正在转换文件
# Image to image
>convert test.jpg test.png
# PDF to image
>convert test.pdf test.jpg
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/572.
convert: no images defined `test.jpg' @ error/convert.c/ConvertImageCommand/3304.
Ghostscript 是问题所在吗?
Ghostscript 安装是很多人的常见问题,但 Ghostscript 似乎工作正常并生成 jpg 文件
# PDF to image with Ghostscript
gs -sDEVICE=pngalpha -sOutputFile=test.jpg test.pdf
我是否必须安装更多代理?
该错误提示我的受限委托有问题,所以我想预先安装所有依赖项。
# Listing dependencies
>apt update && apt build-dep imagemagick
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list
这就是我卡住的地方。
解决方案
原来是代表少了。我没有在文档或其他任何地方看到对此的详细描述。
注意: 应在安装 ImageMagick 之前 安装委托
这是我修复它的方法:
# Adding source URI
echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list
apt update
# Installing dependencies
apt-get build-dep imagemagick
现在我可以将 pdf 转换为 jpg 了!