首页 > 解决方案 > GraphicsMagick:命令失败:识别:没有此图像格式的解码委托`'@error/constitute.c/ReadImage/562

问题描述

重新发布:我一直在尝试将 PDF 转换为缩略图(PNG 格式)。这完全适用于我的本地设置。但是当我在 asure 服务器(操作系统:UBUNTU)上安装 GraphicsMagick、ImageMagick 和 ghostScript 时,它会抛出错误,例如 Command failed: identify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/562..

我已经在本地安装了 GraphicsMagick、ImageMagick 和 ghostScript 来将 pdf 页面转换为缩略图,而且效果很好(不在服务器上)。

正如错误中提到的,我已经在本地机器和服务器上列出了解码委托。我有很多不同之处,例如 bmp 委托存在于本地机器上,但不在服务器上(UBUNTU)。

我在网上搜索了很多有关此问题的信息,但没有找到任何解决方案。

谁能帮我解决这个问题?提前致谢

标签: imagemagickgraphicsmagick

解决方案


GraphicsMagick需要 Ghostscript 来阅读 PDF。您的系统找不到 Ghostscript,因此有两件事要做:

  • 找到 Ghostscript
  • 告诉GraphicsMagick它在哪里

您应该能够Ghostscript通过在终端中运行以下命令找到完整路径:

type gs             # or maybe "which gs", or maybe "which gs-64"

如果这不起作用,请使用您的系统必须使用的任何包管理器来列出您安装的任何包中包含的文件的名称来获取Ghostscript.

如果这不起作用,您可以尝试:

find  /usr  /opt -name gs 2> /dev/null

接下来,您需要找到您的GraphicsMagick委托的配置位置。这因系统而异。我认为该文件总是被称为delegates.mgk

  • 您可以尝试让您的包管理器列出GraphicsMagick中包含的文件
  • 你可以运行gm convert -debug all SomeFile.pdf junk.png并找到它在哪里寻找它的编码器和代表——它将在大量输出的开始附近。

如果这不起作用,您可以尝试:

find /usr /opt /etc -name delegates.mgk 2> /dev/null

最后,您需要编辑刚刚找到的配置文件,使其包含Ghostscript.

我希望这会有所帮助,抱歉在某些地方有点模糊,但是配置有很多不同的可能性。


推荐阅读