gpt4 book ai didi

xml - GhostScript 在 ImageMagick 中的文件路径

转载 作者:可可西里 更新时间:2023-11-01 14:15:01 26 4
gpt4 key购买 nike

我正在尝试使用 ImageMagick 在 PC 和 OSX 上将 PDF 转换为 PNG——但实际上我无法在将使用我的软件的任何计算机上安装 GhostScript。

有没有办法将 GhostScript 与 ImageMagick 捆绑在一起,并将 ImageMagick 的路径重定向到该包,这样我就可以使用它而无需在用户计算机上正式“安装”它?

I found this page ,但我无法理解如何更改 ImageMagick 中的 delegates.xml 文件以使其正常工作。我想我必须更改此行的某些部分:

  <delegate decode="pdf" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite "-sOutputFile=%o" -- "%i"" /> 

但我不确定该怎么做——将路径放在哪里,或者路径应该基于什么——ImageMagick 的位置,或者其他什么?任何帮助将不胜感激。

更新 v1.2:我试图将上面的委托(delegate)更改为以下内容,并在命令行中使用可执行文件:

 <delegate decode="pdf" encode="eps" mode="bi" command="&quot;F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe&quot; -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>

但是当我运行程序时,在cmd提示符下出现如下错误:

Microsoft Windows XP [Version 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

F:\Documents and Settings\Administrator>F:\ImageMagickTest\ImageMagick\convert.e
xe F:\ImageMagickTest\PDFs\Appointment.pdf F:\ImageMagickTest\ConvertedPDFs\Appo
intment.png
convert.exe: `%s' (%d) "F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe"
-q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -d
EPSCrop -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -d
GraphicsAlphaBits=4 "-r72x72" "-sOutputFile=F:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/
magick-5996ZNQmVN7RFumY--0000001" "-fF:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-5
996r7pmg8XgvrNB" "-fF:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/magick-5996yhTQgwoLswnn"
@ error/utility.c/SystemCommand/1890.
convert.exe: Postscript delegate failed `F:\ImageMagickTest\PDFs\Appointment.pdf
': No such file or directory @ error/pdf.c/ReadPDFImage/679.
convert.exe: no images defined `F:\ImageMagickTest\ConvertedPDFs\Appointment.png
' @ error/convert.c/ConvertImageCommand/3044.

对我来说,这似乎表明它没有找到文件“Appointment.pdf”。但它就在那里。我不是在摸索什么?

为了好玩,这里是 gs 的完整路径,取自 Windows 资源管理器:

F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe

为了更有趣,这里是从 Unity 3D 应用程序中调用它的 c# 脚本(我没有收到任何错误):

    string currDir = System.Environment.CurrentDirectory;
string convertPath = currDir + @"\ImageMagick\convert.exe";
string convertedDir = currDir + @"\ConvertedPDFs\";
string pdfFolder = currDir + @"\PDFs\";
string fileName = "Appointment";
string argumentForImageMagick;


argumentForImageMagick = pdfFolder + fileName + ".pdf" + " " + convertedDir + fileName + ".png";
ProcessStartInfo info = new ProcessStartInfo {Arguments = argumentForImageMagick , FileName = convertPath};
System.Diagnostics.Process.Start(info).WaitForInputIdle();

最佳答案

尝试将该行的 ""@PSDelegate"-q 部分替换为 "/usr/local/bin/gs -q(或任何你想要的路径)我们将安装 Ghostscript 可执行文件)。

根据您的环境,您可能需要向该命令/行添加额外的参数来告诉 gs(在 Windows 上:gswin32c.exegswin64c. exe) 其库所在的位置:
-I/usr/local/share/ghostscript/9.06/lib/


更新:尝试直接在 cmd.exe 窗口中运行这个 Ghostscript 命令,看看它是否有效(或者它产生了哪些错误):

"F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe" \
-o F:/ImageMagickTest/PDFs/test.png \
-dEPSCrop \
-dAlignToPixels=0 \
-dGridFitTT=2 \
-sDEVICE=pngalpha \
-dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 \
-r72 \
F:/ImageMagickTest/PDFs/Appointment.pdf

不要担心我使用正斜杠 ('/') 作为目录分隔符——Windows 上的 Ghostscript 可以很好地处理这些问题。

我希望你的 Ghostscript 安装是最新版本(否则它无法理解输出文件的 -o 语法)。

如果此命令不起作用,您应该会在窗口中看到某种错误消息(因为我跳过了 -q -dQUIET 参数)。

可能 Ghostscript 没有找到它的库,因为您可能只复制了 .exe 文件,而没有正确安装完整的包。

也许您需要添加 -I"F:/ImageMagickTest/ImageMagick/gs9.06/lib" 或类似于命令行的内容(我不知道您的 Ghostscript /lib 目录确实位于——这只是一个猜测!):

"F:/ImageMagickTest/ImageMagick/gs9.06/bin/gswin32c.exe" \
-o F:/ImageMagickTest/PDFs/test.png \
-I"F:/ImageMagickTest/ImageMagick/gs9.06/lib" \
-dEPSCrop \
-dAlignToPixels=0 \
-dGridFitTT=2 \
-sDEVICE=pngalpha \
-dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 \
-r72 \
F:/ImageMagickTest/PDFs/Appointment.pdf

只有在 cmd.exe 窗口中直接运行 Ghostscript 成功后,您才应该继续修改 delegates.xml 中的行。

关于xml - GhostScript 在 ImageMagick 中的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com