Imagemagick FailedToExecuteCommand `"gswin32c.exe"

Imagemagick FailedToExecuteCommand `"gswin32c.exe"

我正在测试服务器上测试我的文件转换,但出现以下错误。我在本地测试了这个案例,它没有问题。在服务器上它给我带来了一些麻烦。

FailedToExecuteCommand `"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -g350x350 -dEPSCrop "-sOutputFile=C:/Windows/TEMP/magick-1520z9_ZtBD3O2dg%d" "-fC:/Windows/TEMP/magick-15203XcyD8hja0LJ" "-fC:/Windows/TEMP/magick-1520fnhOiV0JVLNJ"' (Le fichier spécifié est introuvable.) @ error/delegate.c/ExternalDelegateCommand/475.convert:

任何 help/tips 将不胜感激。

编辑 2:

我还找到了 link,其中 imagemagick 管理员建议更改 delegates.xml 中的 gs 路径。这个解决方案看起来很有希望,但是委托文件有一个 eps 到 ps 转换的条目,如下所示:

<delegate decode="eps" encode="ps" mode="bi" command="&quot;@PSDelegate@&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>

而且我似乎找不到 imagemagick 是如何引用 GS 位置的。我将 gs 添加到路径变量 and/or 修改了 delegates.xml 的位置以修复此问题。

编辑 3:

我在 imagemagick convert 命令中遇到错误 "no images defined",如下所示。我是否需要为 gs 设置一些权限,因为我没有在 Temp 中找到临时文件夹 directory.These 似乎在我的本地神奇地工作,但在测试服务器上犹豫不决。

convert: Postscript delegate failed [ghostscript library 9.22] -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -g350x350 -dEPSCrop "-sOutputFile=C:/Windows/TEMP/magick-110207SjtG6NIBllO%d" "-fC:/Windows/TEMP/magick-1102057mSI5SPZ919" "-fC:/Windows/TEMP/magick-11020HeIOX7qThedE" -c showpage: (null)' @ error/ps.c/ReadPSImage/884.convert: no images definedD:\inetpub\IndependenceAWS\Conversion_DEV_DCHI190208-121606-797-QSAX2N0OVB\JPG\icam_logo_ToJPG.JPG' @ error/convert.c/ConvertImageCommand/3300

对于第一个问题,

FailedToExecuteCommand `"gswin32c.exe"

在系统变量上配置ghostscript bin文件夹的路径and/or配置delegates.xml可以在文件夹路径C:\Program Files\ImageMagick-7.0.8-Q16

修改委托如下:

delegate decode="eps" encode="ps" mode="bi" command=""C:\Program Files\gs\gs9.26\bin\gswin64.exe@" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=ps2write "-sOutputFile=%o" -- "%i""

对于第二个Imagemagick无法访问C盘Temp文件夹的问题

如下添加或取消注释临时文件路径的策略

policy domain="resource" name="temporary-path" value="D:/inetpub/IndependenceAWS/Conversion-Temp"/

与下面相同的 xml 中的另一个编辑解决了问题并允许 imagemagick 使用新文件夹进行临时转换

policy domain="module" rights="read|write" pattern="{PS,PDF,XPS}"

非常感谢所有对我的问题发表评论并帮助我解决这些问题的人。

您需要安装ghostscript。

您可以下载它 here 并安装它,错误就会消失。

例如,下载64bit version,然后双击并按照安装说明进行安装。然后重新运行您的 magick 命令,FailedToExecuteCommand "gswin32c.exe" 错误将消失。

注意:如评论所述:GS 9.26 has some bugs -- try downgrading to 9.23, 9.24 or 9.25. 3,使用9.27既不报错也不输出,改成9.24后一切正常

如果有人在使用 MSYS2 版本的 ImageMagick 时遇到此问题,您需要通过 MSYS2 安装 GhostScript:运行 以下之一:

  • 在 MSYS2 MinGW 64 位上:pacman -S mingw-w64-x86_64-ghostscript
  • 在 MSYS2 MinGW 32 位上:pacman -S mingw-w64-i686-ghostscript

我知道这是一个旧话题,但我想补充一下我的经验,因为它可能会对某人有所帮助。

我遇到了和你一样的错误,但对我来说问题是内存不足。 这是 运行 在分配的 RAM 不多的 VM 上,升级到 4GB 后一切正常。

已将 gs 更改为完整路径。 问题来了....