Comment insérer une image dans mon code python à l'aide de Tkinter ?
Résolu
SimFasa
Messages postés
10
Statut
Membre
-
Phil_1857 Messages postés 1956 Statut Membre -
Phil_1857 Messages postés 1956 Statut Membre -
Bonjour, voila nous sommes débutants en programmation et nous avons comme projet de fin d'année de programmer un "PACMAN", seulement on arrive pas à insérer les photos des fantomes. Voila nous avons 3 photos ( Fantomes rouges, rose et jaune ) en format .gif mais je n'arrive pas à les inclure dans mon code sachant que nous avons déja réussie à faire se déplacer les fantômes. Après des recherches sur internet je suis parvenu à trouver une "solution" mais elle ne fonctionne pas :/
Voila le début de mon code est :
from PIL import Image, ImageTk
import tkinter as tk
import ctypes
import random
Ensuite il y a pour le fantômes rouge, c'est le seul que j'ai tester pour le moment :
imageRed = Image.open("5IPe.gif")
photoRed = ImageTk.PhotoImage(imageRed)
fantome1 = terrain.create_imageRed(200,500, imageRed=photoRed)
Seulement quand j'essaie de lancer le jeu, j'ai un message d'erreur qui s'affiche :
File "D:\Ne_Pas_Supprimer\Documents\ICN\PACMAN-20042020.py", line 161, in <module>
fantome1 = terrain.create_imageRed(200,500, imageRed=photoRed)
AttributeError: 'Canvas' object has no attribute 'create_imageRed'
Et je ne sais pas pourquoi cela me met un message d'erreur.... Est ce que vous auriez une solution ? Est ce que c'est une erreur ailleurs dans mon code ou alors est ce que je n'utilise pas du tout la bonne manière pour insérer une image ? Merci de vos réponses.
Voila le début de mon code est :
from PIL import Image, ImageTk
import tkinter as tk
import ctypes
import random
Ensuite il y a pour le fantômes rouge, c'est le seul que j'ai tester pour le moment :
imageRed = Image.open("5IPe.gif")
photoRed = ImageTk.PhotoImage(imageRed)
fantome1 = terrain.create_imageRed(200,500, imageRed=photoRed)
Seulement quand j'essaie de lancer le jeu, j'ai un message d'erreur qui s'affiche :
File "D:\Ne_Pas_Supprimer\Documents\ICN\PACMAN-20042020.py", line 161, in <module>
fantome1 = terrain.create_imageRed(200,500, imageRed=photoRed)
AttributeError: 'Canvas' object has no attribute 'create_imageRed'
Et je ne sais pas pourquoi cela me met un message d'erreur.... Est ce que vous auriez une solution ? Est ce que c'est une erreur ailleurs dans mon code ou alors est ce que je n'utilise pas du tout la bonne manière pour insérer une image ? Merci de vos réponses.
A voir également:
- Comment insérer une image dans mon code python à l'aide de Tkinter ?
- Code ascii - Guide
- Insérer une vidéo dans powerpoint - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Citizen code python - Accueil - Outils
- Insérer une image dans word sans bouger le texte - Guide
4 réponses
Bonjour Simfasa,
"terrain", c'est bien un Canvas ?
Et tu as vu dans la doc tkinter que les Canvas ont un attribut create_imageRed ?
Moi pas … par contre je vois un attribut create_image ….
Je ne sais pas si tu maitrise bien ce que tu fais, ou si tu as copié/collé au hasard, mais ce n'est pas parce que tu créé une image rouge que tu peux inventer un attribut create_imageRed
Moi, je fais simplement ça (pas besoin de PIL, juste tkinter) :
"terrain", c'est bien un Canvas ?
Et tu as vu dans la doc tkinter que les Canvas ont un attribut create_imageRed ?
Moi pas … par contre je vois un attribut create_image ….
Je ne sais pas si tu maitrise bien ce que tu fais, ou si tu as copié/collé au hasard, mais ce n'est pas parce que tu créé une image rouge que tu peux inventer un attribut create_imageRed
Moi, je fais simplement ça (pas besoin de PIL, juste tkinter) :
red_image = tk.PhotoImage(file='5IPe.gif') terrain.create_image(200, 500, image = red_image)
SimFasa
Messages postés
10
Statut
Membre
D'accord merci beaucoup, je vais essayer avec votre explication.
Holà Simfasa,
Tu n'as pas dit si ça fonctionne ou pas ?
:-)
Tu n'as pas dit si ça fonctionne ou pas ?
:-)
Bonjour ! Vraiment désolé du retard pour la réponse.
En utilisant ce que vous m'avez proposez j'en suis arrivée avec mon amie à :
rouge=tk.PhotoImage(master=fenetre, file='rouge.png')
fantome_rouge=terrain.create_image(15, 45, image=rouge)
rose= tk.PhotoImage(master=fenetre, file='rose.png')
fantome_rose=terrain.create_image(45, 75, image=rose)
orange= tk.PhotoImage(master=fenetre, file='orange.png')
fantome_orange=terrain.create_image(75, 105, image=orange)
bleu= tk.PhotoImage(master=fenetre, file='bleu.png')
fantome_bleu=terrain.create_image(105, 135, image=bleu)
Et voila, ça fonctionne très bien. Merci beaucoup pour l'idée :)
En utilisant ce que vous m'avez proposez j'en suis arrivée avec mon amie à :
rouge=tk.PhotoImage(master=fenetre, file='rouge.png')
fantome_rouge=terrain.create_image(15, 45, image=rouge)
rose= tk.PhotoImage(master=fenetre, file='rose.png')
fantome_rose=terrain.create_image(45, 75, image=rose)
orange= tk.PhotoImage(master=fenetre, file='orange.png')
fantome_orange=terrain.create_image(75, 105, image=orange)
bleu= tk.PhotoImage(master=fenetre, file='bleu.png')
fantome_bleu=terrain.create_image(105, 135, image=bleu)
Et voila, ça fonctionne très bien. Merci beaucoup pour l'idée :)