Python 如何将PIL与Tkinter一起使用?
在使用PIL加载图像并在Tkinter创建的窗口中显示时,我缺少了一些非常基本的东西。我尝试做的最简单的形式是:Python 如何将PIL与Tkinter一起使用?,python,python-imaging-library,tkinter,Python,Python Imaging Library,Tkinter,在使用PIL加载图像并在Tkinter创建的窗口中显示时,我缺少了一些非常基本的东西。我尝试做的最简单的形式是: import Tkinter as TK from PIL import Image, ImageTk im = Image.open("C:\\tinycat.jpg") tkIm = ImageTk.PhotoImage(im) tkIm.pack() TK.mainloop() 当我尝试运行上面的代码时,我得到以下结果: RuntimeError: Too early to
import Tkinter as TK
from PIL import Image, ImageTk
im = Image.open("C:\\tinycat.jpg")
tkIm = ImageTk.PhotoImage(im)
tkIm.pack()
TK.mainloop()
当我尝试运行上面的代码时,我得到以下结果:
RuntimeError: Too early to create image
Exception AttributeError: "PhotoImage instance has no attribute
'_PhotoImage__photo'" in <bound method PhotoImage.__del__ of
<PIL.ImageTk.PhotoImage instance at 0x00C00030>> ignored
运行时错误:创建映像太早
异常AttributeError:“PhotoImage实例没有属性
忽略中的“\u PhotoImage\u photo”
我已经确认该文件存在,可以在图像编辑器中打开,也可以使用im.show()显示。我缺少什么?Tkinter必须在调用ImageTk.PhotoImage()之前实例化:
梅雷迪斯说的很对,你肯定需要加上那一行 我想向您展示我的图像格式,然后将其与您的进行比较,看看是否有任何不同,我的图像代码是
master.image = PhotoImage(file="Banditlogo.gif")
w = Label(master, image=master.image)
w.photo = master
w.pack()
你的代码是
im = Image.open("C:\\tinycat.jpg")
tkIm = ImageTk.PhotoImage(im)
tkIm.pack()
我们都在使用PIL和PhotoImage
我不禁想知道这两种方法都对吗?
此时此刻,我还没有足够的知识来完全回答您的PIL问题,但是比较这两个代码是很有趣的,因为它们是不同的。我只能建议当人们与我分享示例代码时,我会这样做,即“如果我的代码不起作用,请尝试示例代码,看看它是否能修复代码”,当我发现一些有效的代码时,我会坚持使用它
请对Tkinter有更多了解的人解释一下,我如何将PIL与Tkinter一起使用
知识就是力量,请分享 可能重复的
im = Image.open("C:\\tinycat.jpg")
tkIm = ImageTk.PhotoImage(im)
tkIm.pack()