sunshine
管理员
管理员
  • 最后登录2023-10-30
  • 发帖数170
  • 社区居民
阅读:19660回复:0

python的PhotoImage报错: couldn't recognize data in image file

楼主#
更多 发布于:2017-04-26 11:24
注意:用tkinter只能装入GIF图片,也就是扩展名是.gif的图片文件,想要显示其他类型的图片,如png或jpg,需要用到其它模块

了解到这一点后,将桌面上的一张jpg图片,通过重命名的方法,改成了gif,然后执行如下代码:发现出错了

from tkinter import *
tk = Tk()
canvas = Canvas(tk,width=700,height=700)
canvas.pack()

my_img = PhotoImage(file='C:\\Users\\Administrator\\Desktop\\yy.gif')
canvas.create_image(10,10,anchor=NW,image=my_img)
mainloop()

提示错误:


_tkinter.TclError: couldn't recognize data in image file "C:\Users\Administrator\Desktop\yy.gif"

百度一下:http://stackoverflow.com/questions/28740462/tkinter-couldnt-recognize-data-in-image-file

根据上面文章的解答,了解到,重命名,根本不能改变图片格式,所以PhotoImage报错了。

于是,网上找了一张GIF图,下载下来,保存为a.jpg; 注意后缀名是jpg,不是gif,然后执行代码:

from tkinter import *
tk = Tk()
canvas = Canvas(tk,width=700,height=700)
canvas.pack()
my_img = PhotoImage(file='C:\\Users\\Administrator\\Desktop\\aa.jpg')
canvas.create_image(10,10,anchor=NW,image=my_img)
mainloop()


执行上面的代码,居然正常运行,图片显示出来了,但是注意,它只显示的是静态图片,图片是不会动的.

总结:通过重命名不能修改图片的类型的,PhotoImage也不是看图片后缀名,而是图片本身的类型
游客


返回顶部

公众号

公众号