Ouvrir une image tkinter

Signaler
Messages postés
3
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
PunkFloyd91
Messages postés
3
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
Bonjour, je suis débutant et essais de créer un logiciel de retouche d'images en python 3.
Je ne saisis pas bien le problème au seins de mon code. Le programme se lance, me demande d'ouvrir une image en appuyant sur le bouton ouvrir. Puis je sélectionne une image au format ".gif" puis la fenêtre prend bien la taille de l'image chargée mais cette dernière ne s'affiche pas dans le canevas. Pourriez vous m'aider svp ?

from tkinter import *
from tkinter.filedialog import *


def ouvrir_fichier():
    image=filedialog.askopenfilename()
    photo=PhotoImage(file=image)
    largeur=photo.width(); hauteur=photo.height()
    fen.geometry(str(largeur+2)+'x'+str(hauteur+2))
    can.create_image(largeur/2+1,hauteur/2+1,image=photo)

fen=Tk()

can=Canvas(fen,bg='black')
can.pack()

frame=Frame(fen)

bouton_ouvrir_fichier=Button(frame,text="Ouvrir",command=ouvrir_fichier)
bouton_ouvrir_fichier.pack(side=TOP)

bouton_quitter=Button(frame,text="Quitter",command=fen.destroy)
bouton_quitter.pack(side=BOTTOM)


frame.pack(side=LEFT)

fen.mainloop()

2 réponses

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
Peut-être que le format .gif n'est pas supporté, tout simplement ... essaye avec un bitmap (.bmp), si ça s'affiche pas non plus ça vient du code, sinon c'est à cause du .gif.

Cordialement, Bacterius !
Messages postés
3
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
28 avril 2011

Merci de m'aider.
Pourtant je suis sur que ce format est supporté car voici un bout de code qui marche :

from tkinter import *
from tkinter.filedialog import *

fen=Tk()

image=filedialog.askopenfilename()
photo=PhotoImage(file=image) # ouverture de l'image
largeur=photo.width(); hauteur=photo.height() # determination des dimensions
fen.geometry(str(largeur+2)+'x'+str(hauteur+2))
fen.title(str(largeur)+'x'+str(hauteur))
fond=Canvas(fen, bg='black')
fond.pack()
img=fond.create_image(largeur/2+1,hauteur/2+1,image=photo)

fen.mainloop()


Seulement dans ce cas l'ouverture ce fait à l'ouverture du programme alors que je voudrais l'ouvrir à l'aide d'un bouton.