imagemagick - 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)。
我在网上搜索了很多有关此问题的信息,但没有找到任何解决方案。
谁能帮我解决这个问题?提前致谢
解决方案
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
.
我希望这会有所帮助,抱歉在某些地方有点模糊,但是配置有很多不同的可能性。
推荐阅读
- c# - C# - 正则表达式不匹配输入字符串
- excel - Excel 2016 中的高 DPI 感知任务窗格(或 ActiveX 控件)!?如何?
- android - 在有根的 7.x 设备上以编程方式激活热点
- ionic-framework - 如何用 ion-footer 按钮颜色填充 iphoneX 缺口
- amazon-web-services - CloudFormation模板中如何同时使用Sub和GetAtt函数?
- sql - 如何优化视图?
- php - CakePhp 编辑表单不发送帖子数据
- symfony - 为什么 Symfony 不推荐在 php7 中加载类缓存
- ios - ios11.4升级后没有调用Locationmanager didEnterRegion
- java - 带有语言和地区的 REST API 请求