Ada*_*itz 4 python tkinter python-imaging-library tkinter-canvas
我在这里要做的是使用PIL将Tkinter Canvas的内容保存为.png图像.
这是我的保存功能('graph'是画布).
def SaveAs():
filename = tkFileDialog.asksaveasfilename(initialfile="Untitled Graph", parent=master)
graph.postscript(file=filename+".eps")
img = Image.open(filename+".eps")
img.save(filename+".png", "png")
Run Code Online (Sandbox Code Playgroud)
但它得到了这个错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\Users\Adam\Desktop\Graphing Calculator\Graphing Calculator.py", line 352, in SaveAs
img.save(filename+".png", "png")
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1406, in save
self.load()
File "C:\Python27\lib\site-packages\PIL\EpsImagePlugin.py", line 283, in load
self.im = Ghostscript(self.tile, self.size, self.fp)
File "C:\Python27\lib\site-packages\PIL\EpsImagePlugin.py", line 72, in Ghostscript
gs.write(s)
IOError: [Errno 32] Broken pipe
Run Code Online (Sandbox Code Playgroud)
我在Windows 7,Python 2.7.1上运行它.
我该如何工作?
小智 5
哦,我得到同样的错误.我现在已经解决了
安装PIL和Ghostscript后,请执行以下操作
1)打开C:\ Python27\Lib\site-packages\PIL\EpsImagePlugin.py 2)更改第50行附近的代码,使其如下所示:
command = ["gswin32c",
"-q", # quite mode
"-g%dx%d" % size, # set output geometry (pixels)
"-dNOPAUSE -dSAFER", # don't pause between pages, safe mode
"-sDEVICE=ppmraw", # ppm driver
"-sOutputFile=%s" % file,# output file
"-"
]
Run Code Online (Sandbox Code Playgroud)
确保gswin32c.exe位于PATH中
祝好运
| 归档时间: |
|
| 查看次数: |
1953 次 |
| 最近记录: |