【问题标题】:GraphicsMagick : Command failed: identify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/562GraphicsMagick:命令失败:识别:没有此图像格式的解码委托`'@error/constitute.c/ReadImage/562
【发布时间】:2020-09-29 14:28:46
【问题描述】:

重新发布:我一直在尝试将 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)。

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

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

【问题讨论】:

    标签: imagemagick graphicsmagick


    【解决方案1】:

    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 的完整路径。

    希望对您有所帮助,抱歉有些地方有点含糊,但配置有很多不同的可能性。

    【讨论】:

    • 感谢您提供的信息。我会让你知道它是否有效
    【解决方案2】:

    检查服务器上的/etc/ImageMagick-6/policy.xml。由于可能的安全问题,默认情况下 Ghostscript 委托经常被禁用。

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 2012-11-23
      • 2019-05-15
      相关资源
      最近更新 更多