9

我尝试了两种不同的方法来尝试在标签中显示图像

#This gives " TclError: couldn't recognize data in image file "TestImage.gif" "
imgPath = "TestImage.gif"
photo = PhotoImage(file = imgPath)
label = Label(image = photo)
label.image = photo # keep a reference!
label.grid(row = 3, column = 1, padx = 5, pady = 5)

#This gives no error but the image doesn't show
imgPath = "TestImage.gif"
photo = PhotoImage(imgPath)
label = Label(image = photo)
label.image = photo # keep a reference!
label.grid(row = 3, column = 1, padx = 5, pady = 5)

该图像与所有代码位于同一文件夹中。关于如何显示图像的任何建议?

4

1 回答 1

7

Bryan Oakley 是正确的,就其内容而言,图像不是 jpg,即使您的文件系统认为它是 gif。

最后,我尝试使用您的程序打开 jpg 并得到相同的错误“TclError:无法识别图像文件“hello.jpg”中的数据。

所以你可以这样做:用 mspaint 打开你的图像,然后转到文件 > 另存为,然后从“另存为类型”下拉菜单中选择 GIF。然后代码应该可以工作。这是我使用的:

from Tkinter import *

root = Tk()

imgPath = r"hello.gif"
photo = PhotoImage(file = imgPath)
label = Label(image = photo)
label.image = photo # keep a reference!
label.grid(row = 3, column = 1, padx = 5, pady = 5)

root.mainloop()

(顺便说一句,如果我将上面的第 7 行更改为photo = PhotoImage(imgPath)和你一样,则不会出现任何图像。所以将其保留为photo = PhotoImage(file = imgPath)

于 2013-04-04T06:17:32.987 回答