Python:无法在Zelle graphics.py中显示图像,tkinter无法读取图像数据

时间:2017-05-17 14:17:50

标签: python graphics zelle-graphics

我正在尝试显示图像" picture.gif"在这段代码中:

from graphics import *
import tkinter

win = GraphWin("Self Portrait", "1000", "500")
image = Image(Point(5,5), "picture.gif")
image.draw(win)
window.mainloop()

但是,我一直收到这个错误:

Traceback (most recent call last):
  File "/Users/jstorrke/Desktop/Python/graphicsProject.py", line 6, in <module>
    image = Image(Point(5,5), "picture.gif")
  File "/Users/jstorrke/Desktop/Python/graphics.py", line 827, in __init__
    self.img = tk.PhotoImage(file=pixmap[0], master=_root)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 3394, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 3350, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "picture.gif"

2 个答案:

答案 0 :(得分:0)

图形模块为显示图像提供了极少的支持。尝试将图像放在与图形库相同的文件夹中,看看它是否有帮助。

有关图形模块的更多信息,请查看此文档。 http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf

答案 1 :(得分:0)

  

_tkinter.TclError:无法识别图像文件“picture.gif”中的数据

我看了几十个这个错误信息的例子,其原因似乎分为两类:

1)该文件不是受支持的类型(例如* .jpg,* .png,* .tif),这在扩展名中很明显。

2)使用的文件被错误标记为* .gif,而不是。 (比我预期的更常见。)在Unix系统上,您可以使用file命令来验证您的GIF:

> file p7Q6O.gif 
p7Q6O.gif: GIF image data, version 89a, 520 x 416
> 

如果它是不受支持的动画GIF,则会发生有效GIF文件的实际失败。但是,这可能是静默失败 - 没有错误消息,也没有显示图像。