小编典典

Tkinter错误:无法识别图像文件中的数据

python

我正在尝试将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文件和图像位于同一文件夹中。


阅读 223

收藏
2021-01-20

共1个答案

小编典典

您的代码似乎正确,这在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图片

(imgur将其转换为,bll.png但这也对我有用。)


更多的选择:

  • 这个答案提到,tkinter仅适用于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()
2021-01-20