I am using Tkinter to write a GUI and want to display a png file in a Tkiner.Label
.
So I have some code like this:
self.vcode.img = PhotoImage(data=open('test.png').read(), format='png')
self.vcode.config(image=self.vcode.img)
This code runs correctly on my Linux machine. But when I run it on my windows machine, it fails. I also tested on several other machines (include windows and linux), it failed all the time.
The Traceback is:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:Python27liblib-tkTkinter.py", line 1486, in __call__
return self.func(*args)
File "C:Documents and SettingsStclientGUI.py", line 150, in showrbox
SignupBox(self, self.server)
File "C:Documents and SettingsStclientGUI.py", line 197, in __init__
self.refresh_vcode()
File "C:Documents and SettingsStclientGUI.py", line 203, in refresh_vcode
self.vcode.img = PhotoImage(data=open('test.png').read(), format='png')
File "C:Python27liblib-tkTkinter.py", line 3323, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:Python27liblib-tkTkinter.py", line 3279, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: image format "png" is not supported
If I delete format='png'
in the source code, the traceback will become:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:Python27liblib-tkTkinter.py", line 1486, in __call__
return self.func(*args)
File "C:Documents and SettingsStclientGUI.py", line 150, in showrbox
SignupBox(self, self.server)
File "C:Documents and SettingsStclientGUI.py", line 197, in __init__
self.refresh_vcode()
File "C:Documents and SettingsStclientGUI.py", line 203, in refresh_vcode
self.vcode.img = PhotoImage(data=open('test.png').read())
File "C:Python27liblib-tkTkinter.py", line 3323, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:Python27liblib-tkTkinter.py", line 3279, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: couldn't recognize image data
So, what should I do to make it support png files?
See Question&Answers more detail:
os