Bonjour, je travaille actuellement sur un projet python avec Tkinter.

Je souhaite créer un canevas dans lequel j'affiche une image.
Mais je souhaite redimensionner l'image avant, a l'aide de resize.

voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from Tkinter import *
from PIL import Image
 
fen1 = Tk()
 
# cr?ation de widgets 'Label' et 'Entry' :
txt1 = Label(fen1, text ='Premier champ :')
txt2 = Label(fen1, text ='Second :')
txt3 = Label(fen1, text ='Troisi?me :')
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
 
# cr?ation d'un widget 'Canvas' contenant une image bitmap :
photo = Image.open('diable.gif')
resolution = (160,160)
photo.resize(resolution)
can1 = Canvas(fen1, width =160, height =160, bg ='white')
 
item = can1.create_image(160, 160, image =photo)
 
 
 
# Mise en page ? l'aide de la m?thode 'grid' :
txt1.grid(row =1, sticky =E)
txt2.grid(row =2, sticky =E)
txt3.grid(row =3, sticky =E)
entr1.grid(row =1, column =2)
entr2.grid(row =2, column =2)
entr3.grid(row =3, column =2)
can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
 
# d?marrage :
fen1.mainloop()
quand je le lance, j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Traceback (most recent call last):
  File "H:\Travail\ISN\Projet ISN Fin annee\Insertion image.py", line 34, in <module>
    item = can1.create_image(160, 160, image =photo)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2198, in create_image
    return self._create('image', args, kw)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2189, in _create
    *(args + self._options(cnf, kw))))
TclError: image "<PIL.GifImagePlugin.GifImageFile image mode=P size=1024x968 at 0xEDDA08>" doesn't exist
je ne vois pas d'où vient l'erreur.