Python : insertion d'image

Fermé
Cinda06 Messages postés 2 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 26 avril 2009 - 26 avril 2009 à 15:13
Gozmo Messages postés 79 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 13 septembre 2012 - 27 avril 2009 à 22:14
Bonjour à tous !

J'ai un petit soucis : je débute en python et j'essaie d'insérer une image dans un Canvas . Voici mon code :


from Tkinter import *

fen1 = Tk()

can1 = Canvas(fen1, width =160, height =160, bg ='white')
photo = PhotoImage(file ='image.gif')
item = can1.create_image(80, 80, image =photo)
fen1.mainloop()


Lorsque je compile, l'image n'est pas reconnue ; pourtant elle est dans le même dossier que mes fichiers python...
Merci pour votre aide. Bonnee journée

3 réponses

Gozmo Messages postés 79 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 13 septembre 2012
27 avril 2009 à 22:14
Bonsoir,

Un petit bout de code qui te permet d'afficher une image (gif, jpg, png...) dans le canvas. Image et Imagetk font partie de PIL il me semble. Pour le reste faire une classe rend le code plus facilement réutilisable.
 #!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import Image, ImageTk
import Tkinter

class Application(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

    def initialize(self):
        self.grid()
        self.can1 = Tkinter.Canvas(self , width = 160 , height = 160)
        self.can1.grid(row=0 , column=0)
        self.image = Image.open('image.gif')
        self.image = ImageTk.PhotoImage(self.image)
        self.can1.create_image(80, 80, image = self.image)
        Tkinter.Button(self,text = 'Fermer',\
                       command = self.quit).grid(row = 1, column = 0)

if __name__ == "__main__":
    app = Application(None)
    app.title('Mon image')
    app.configure(bg = "#ffffff")
    app.mainloop()
    app.destroy() 
Si tu as des questions, n'hésite pas.
6