使用Tkinter和PIL显示.png图像

时间:2015-09-18 10:35:29

标签: python-2.7 tkinter python-imaging-library

我尝试在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()

3 个答案:

答案 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()