我尝试在Tkinter标签中显示.png文件,但实际上我只是在应该显示图像的位置获得空白空间。这是非常简单的代码,我不知道出了什么问题。
from Tkinter import *
from PIL import Image, ImageTk
root = Tk()
image = Image.open('image.png')
display = ImageTk.PhotoImage(Image.open(image))
label = Label(root, image=display)
label.pack()
root.mainloop()
答案 0 :(得分:3)
你两次调用Image.open()。它足以称之为一次。使用:
display = ImageTk.PhotoImage(image)
而不是:
display = ImageTk.PhotoImage(Image.open(image))
答案 1 :(得分:1)
我设法以这种方式解决了这个问题:
image = Image.open('image.png').convert("RGB")
我不确定它是否正确,但它确实有效。
答案 2 :(得分:1)
对我来说,它只在添加以下行后才起作用:label.image= display
针对您的问题的完整解决方案:
from Tkinter import *
from PIL import Image, ImageTk
root = Tk()
image = Image.open('image.png')
display = ImageTk.PhotoImage(Image.open(image))
label = Label(root, image=display)
label.image = display
label.pack()
root.mainloop()