Martin Panter added the comment: Thanks for looking at this. Originally the issue was found by reading the GIF and PNG images on various web pages, such as <http://www.weatherzone.com.au/vic/north-central/castlemaine>. However I was also able to produce the problem with the other formats of that Python logo:
$ python3 -Wall -bt Python 3.4.1 (default, May 19 2014, 17:40:19) [GCC 4.9.0 20140507 (prerelease)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tkinter; tk = tkinter.Tk(); text = tkinter.Text(tk); text.pack() >>> with open("/lib/python3.4/test/imghdrdata/python.png", "rb") as file: data >>> = file.read() ... >>> image = tkinter.PhotoImage(format="png", data=data) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.4/tkinter/__init__.py", line 3384, in __init__ Image.__init__(self, 'photo', name, cnf, master, **kw) File "/usr/lib/python3.4/tkinter/__init__.py", line 3340, in __init__ self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: CRC check failed >>> u8png = tkinter.PhotoImage(format="png", >>> data=data.decode("latin-1").encode("utf-8")) >>> text.image_create(tkinter.END, image=u8png) 'pyimage2' The same problem occurs with the PGM and PPM logos, and the Base-64 encoding trick does not work with those; only UTF-8 encoding. However as you discovered, the GIF format logo works no problem when passed unencoded, although it continues to work if I use my UTF-8 encoding trick, which is a bit strange. Perhaps the internal UTF-8 decoding step is passing the invalid UTF-8 straight through? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21580> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com