空Tkinter窗口出现在图像的位置

时间:2014-03-15 12:42:05

标签: python tkinter python-imaging-library

我正在尝试通过浏览按钮动态加载图片到Tkinter窗口但是我得到了空窗口。这是浏览按钮的回调函数代码

supformats = [
('Windows Bitmap','*.bmp'),
('Portable Network Graphics','*.png'),
('JPEG ','*.jpg'),
('CompuServer GIF','*.gif'),
]
filename = askopenfilename(filetypes=supformats)
FILENAME = filename
im=Image.open(FILENAME)
w=im.size[0]
h=im.size[1]
root = Tkinter.Tk()
#canvas = Tkinter.Canvas(root, width=w, height=h)
#canvas.grid(row=0,column=0)
#tk_img = ImageTk.PhotoImage(file = FILENAME)
#canvas.create_image(image=tk_img)
im.show()
root.mainloop()

提前感谢所有愿意帮助的人

1 个答案:

答案 0 :(得分:0)

来自effbot的解释http://effbot.org/tkinterbook/photoimage.htm请注意,文件只访问一次,而不是两次。这假设您在Tkinter中使用Python Imaging Library,因为您没有说明正在使用的图像工具包。

from PIL import Image, ImageTk

image = Image.open("lenna.jpg")
photo = ImageTk.PhotoImage(image)

You can use a PhotoImage instance everywhere Tkinter accepts an image object.
An example:
label = Label(image=photo)
label.image = photo # keep a reference!
label.pack()