tkinter, loading image error, TclError: couldn't recognize data in image file "C:/users/me/desktop/images/blob4.jpg"

Terry Reedy tjreedy at udel.edu
Sun Jun 29 20:54:25 CEST 2008



defn noob wrote:
> from Tkinter import *
> import os
> 
> master = Tk()
> w = Canvas(master, width=800, height=600)
> 
> print os.path.exists('C:/me/saftarn/desktop/images/blob4.jpg')
> 
> im = PhotoImage(file = 'C:/users/saftarn/desktop/images/blob4.jpg')
> #im = file = 'C:/users/me/desktop/images/blob4.jpg'
> pic = w.create_image(0, 0, image = im, anchor = NW)
> 
> #image = open('C:/users/saftarn/desktop/images/blob.png')
> 
> colors = []
> for x in range(1, 800):
>     for y in range(1, 600):
>         pic = w.find_closest(x, y)[0]
>         obj = objects[pic]
>         colors.append(obj.get(int(x), int(y)))
> 
> print colors
> 
> 
> 
> True
> 
> Traceback (most recent call last):
>   File "C:/Python25/Progs/ImageVideoSearch/imId.py", line 9, in
> <module>
>     im = PhotoImage(file = 'C:/users/me/desktop/images/blob4.jpg')
>   File "C:\Python25\lib\lib-tk\Tkinter.py", line 3270, in __init__
>     Image.__init__(self, 'photo', name, cnf, master, **kw)
>   File "C:\Python25\lib\lib-tk\Tkinter.py", line 3226, in __init__
>     self.tk.call(('image', 'create', imgtype, name,) + options)
> TclError: couldn't recognize data in image file "C:/users/me/desktop/
> images/blob4.jpg"
> 
> 
> 
> it has worked before opening and displaying a file like this, anything
> to do with python 2.52, upgraded from 2.5.1

Did it work with that exact file?  Have you tried other files that did 
work with 2.5.1?  The error comes from tcl/tk, not Python.  I expect 
that the version of tcl/tk delivered with 2.5.2 is exactly the same as 
that delivered with 2.5.1, just to avoid such problems.

Note that even if one program displays a file it may still be slightly 
corrupt and properly fail to display with another.  If you have an image 
editor, you might try opening and saving (different name) without changing.

tjr




More information about the Python-list mailing list