我正在尝试将jpg图像放到tkinter画布上。tkinter给我这个错误:
无法识别图像文件中的数据
我使用文档中的代码:
canv = Canvas(root, width=80, height=80, bg='white') canv.grid(row=2, column=3) img = PhotoImage(file="bll.jpg") canv.create_image(20,20, anchor=NW, image=img)
png图像也是如此。甚至尝试将图像放入标签小部件中,但出现相同的错误。怎么了?
我在Mac上使用Python 3。Python文件和图像位于同一文件夹中。
您的代码似乎正确,这在Windows 7(Python 3.6)上为我运行:
from tkinter import * root = Tk() canv = Canvas(root, width=80, height=80, bg='white') canv.grid(row=2, column=3) img = PhotoImage(file="bll.jpg") canv.create_image(20,20, anchor=NW, image=img) mainloop()
导致此tkinter GUI:
该图像为bll.jpg:
bll.jpg
(imgur将其转换为,bll.png但这也对我有用。)
bll.png
更多的选择:
gif
.gif
PIL
更新: 解决方案PIL:
from tkinter import * from PIL import ImageTk, Image root = Tk() canv = Canvas(root, width=80, height=80, bg='white') canv.grid(row=2, column=3) img = ImageTk.PhotoImage(Image.open("bll.jpg")) # PIL solution canv.create_image(20, 20, anchor=NW, image=img) mainloop()