Imagemagick无法执行命令“gswin32c.exe”

3
我正在测试我的文件转换在测试服务器上,但我得到了下面的错误。我在本地测试过这个案例,没有任何问题。在服务器上它给我带来了一些麻烦。

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:

任何帮助或提示将不胜感激。
编辑2:

我还发现一个链接,那里的imagemagick管理员建议在delegates.xml中更改gs路径。这个解决方案看起来很有前途,但是delegate文件中有一个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添加到路径变量中并/或修改了delegates.xml文件以修复此问题。

编辑3:

我从imagemagick转换命令中得到一个“未定义图像”的错误,如下所示。我需要为gs设置一些权限吗?因为我在Temp目录中找不到临时文件夹。这些在我的本地似乎可以神奇地工作,但在测试服务器上却犹豫不决。

convert: Postscript代理失败[ghostscript库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:未定义任何图像D:\ inetpub \ IndependenceAWS \ Conversion_DEV_DCHI \ 78 \ 20190208-121606-797-QSAX2N0OVB \ JPG \ icam_logo_ToJPG.JPG' @ error / convert.c / ConvertImageCommand / 3300

@MarkSetchell,谢谢,那个方法可行。我有一个新问题。我将编辑我的帖子并附上新问题。 - Binoy Cherian
我很困惑,我应该为编辑3提出一个新问题吗? - Binoy Cherian
它在我的本地运行良好 :( - Binoy Cherian
你为什么隐藏了我需要看的部分?[ghostscript library 9.22]是什么? - Mark Setchell
请参考 https://dev59.com/pVQJ5IYBdhLWcg3w5aIc#52863413,了解如何编辑您的 policy.xml 文件以授予处理 PDF 文件的权限。 - fmw42
显示剩余13条评论
5个回答

4
针对第一个问题,出现了"FailedToExecuteCommand `"gswin32c.exe"`"错误提示。
请在系统变量中配置ghostscript二进制文件夹的路径和/或配置delegates.xml。该文件可在以下文件路径找到:C:\Program Files\ImageMagick-7.0.8-Q16
按照以下格式修改delegate:

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}"

感谢所有评论我的问题并帮助我解决这些问题的人们。

4

您需要安装ghostscript。

您可以在这里下载并安装它,错误将会消失。

例如,下载64位版本,双击它并按照安装说明操作。然后重新运行您的magick命令,FailedToExecuteCommand "gswin32c.exe"错误就会消失。

注意:如一条评论所述:GS 9.26有一些bug--尝试降级到9.23、9.24或9.25。3,使用9.27既不产生错误也不输出内容,但更换为9.24后,一切都很好。


我已经解决了这个问题,我在所有的转换中使用了9.26版本。谢谢。 - Binoy Cherian

1
如果任何人在使用MSYS2构建的ImageMagick时遇到此问题,您需要通过MSYS2安装GhostScript:运行以下命令之一:
  • 在MSYS2 MinGW 64位上: pacman -S mingw-w64-x86_64-ghostscript
  • 在MSYS2 MinGW 32位上: pacman -S mingw-w64-i686-ghostscript

0

将gs更改为完整路径。 问题在这里....


执行CSharp OwnCode操作失败。无法执行命令`"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r300x300" "-sOutputFile=C:/Users/jaka1/AppData/Local/Temp/magick-1036ZB1XMRWW69ck%d" "-fC:/Users/jaka1/AppData/Local/Temp/magick-1036BTEZSnFkS7OO" "-fC:/Users/jaka1/AppData/Local/Temp/magick-10364Moh1w6TXqtX"'(��� ������� ����� ��������� ����。)@错误/Delegate.c/ExternalDelegateCommand/475 - Mis Urb
1
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

-1

我知道这是一个旧的帖子,但我想分享一下我的经验,希望能对某人有所帮助。

我遇到了和你一样的错误,但问题最终是因为内存不足导致的。 我在一个分配了很少内存的虚拟机上运行,升级到4GB后一切都正常了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接