Comment insérer une image dans mon code python à l'aide de Tkinter ?

Résolu/Fermé
SimFasa Messages postés 10 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 11 avril 2022 - 22 avril 2020 à 15:26
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 29 avril 2020 à 12:13
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.
A voir également:

4 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
22 avril 2020 à 16:32
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) :

red_image = tk.PhotoImage(file='5IPe.gif')
terrain.create_image(200, 500, image = red_image)
1
SimFasa Messages postés 10 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 11 avril 2022
22 avril 2020 à 18:03
D'accord merci beaucoup, je vais essayer avec votre explication.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
22 avril 2020 à 18:30
Dis moi si ca marche, ce serait sympa :-)
1
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
27 avril 2020 à 17:58
Holà Simfasa,

Tu n'as pas dit si ça fonctionne ou pas ?

:-)
1
SimFasa Messages postés 10 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 11 avril 2022
29 avril 2020 à 11:17
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 :)
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
29 avril 2020 à 12:13
Ah super !!

Tu peux marquer cet appel comme "résolu" pour le fermer :-)
1