我知道这个问题已经被多次询问了,但我仍然无法找到问题的答案。我一直得到同样的错误,不知道如何解决它。
这是我的代码:
from Tkinter import *
from PIL import Image, ImageTk
import os
window = Tk()
i = Image.open(pathToImage)
if os.path.isfile(pathToImage):
print 'image exists'
else:
print 'image does not exits'
label=Label(window, image=i)
label.pack()
window.mainloop()
它表示图像存在于指定的路径中,但我不断收到此错误消息:
Traceback (most recent call last):
File "ImageTest.py", line 31, in <module>
label=Label(window, image=i)
File "C:\Users\username\Anaconda2\lib\lib-tk\Tkinter.py", line 2597, in __init__
Widget.__init__(self, master, 'label', cnf, kw)
File "C:\Users\username\Anaconda2\lib\lib-tk\Tkinter.py", line 2096, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=640x480 at 0x36DF278>" doesn't exist
我无法弄清楚如何解决这个问题。任何帮助将不胜感激!
答案 0 :(得分:5)
您应该将PhotoImage
实例用作image
值。此外,您需要保留图像的参考。
im = Image.open(pathToImage)
ph = ImageTk.PhotoImage(im)
label = Label(window, image=ph)
label.image=ph #need to keep the reference of your image to avoid garbage collection
答案 1 :(得分:5)
一个快速的漏洞修复方法是为PhotoImage提供正确的母版:
i = ImageTk.PhotoImage(pathToImage, master=window)
答案 2 :(得分:0)
似乎是Anaconda-Spyder-Iphyton问题。 解决方案在这里: _tkinter.TclError: image "pyimage" doesn't exist