使用python在windows cmd

时间:2015-10-21 08:20:07

标签: python image cmd subprocess postscript

我有一个程序,它将画布保存到postscript文件中。程序然后用IrfanView打开文件,在那里我可以手动将它保存为.png然后我可以从python运行另一个函数,它用它做另一个操作并再次将它保存为.png 。我的问题是,是否有办法切断中间手动位(我必须单击另存为按钮)或者是否可以通过python代码完成IrfanView的保存?

到目前为止,我发现我无法保存画布及其上的任何内容(使用海龟)只能使用postscript保存。

同样在python中将postscript转换为png或jpeg似乎也是一个很高的顺序。

注意:基本上我使用Irfan来进行.png转换的postscript,但是我想隐藏用户的这一步骤,所以如果程序可以做的话会很好它适合我。

新注意:我曾尝试使用python子进程模块调用cmd并使用它进行转换,但每当我尝试运行.Popen或{时{1}}函数我收到一个错误 - 访问被拒绝或找不到文件,这两种命令都不希望从python程序运行。我甚至尝试从python打开一个文件,只通过cmd得到一个错误(当直接输入cmd时同样的命令工作):

.call

1 个答案:

答案 0 :(得分:0)

假设您有一个名为saved.ps的postscript文件要使用设备pngalpha转换为带有Ghostscript的png文件,您可以这样做:

gspath = "/path/to/gs" # would be gspath="c:\path\to\gswin32c" on Windows...
infile = "saved.ps"
outfile = "output.png"
gs = subprocess.Popen(["gs", "-o", "output.png", "-sDEVICE=pngalpha",
              "-dBatch", infile], executable=gspath,
              stdout=subprocess.PIPE, stderr = subprocess.PIPE)
out, err = gs.communicate()

if gs.returncode != 0:
    # do error processing, at least display out and err