我正在尝试通过浏览按钮动态加载图片到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()
提前感谢所有愿意帮助的人
答案 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()