Tkinter / image jpg
Phil_1857 -
Bonjour,
Je me permets de demander de l'aide à des programmeurs ou autres personnes ayant des connaissances en python, j'ai un programme de jeux memories, mais celui-ci me met à chaque fois une erreur de chargement des images, je vous serai reconnaissant de bien vouloir apporter les correctifs nécessaires à ce programme pour son bon fonctionnement, je vous le copie colle ci-dessous.
import tkinter as tk import random from tkinter import messagebox # Définition de la taille de la fenêtre principale LARGEUR_FENETRE = 1100 HAUTEUR_FENETRE = 600 TAILLE_GRILLE = 6 TAILLE_IMAGE = 220 # Variables globales pour le jeu premier_clic = None paires_trouvées = 0 tentatives = 0 # Création de la fenêtre principale racine = tk.Tk() racine.title("Jeu de Mémoire") # Définissez ici les chemins de vos images chemins_images = [ "E:\\memories paul enzo\\image1.jpg", "E:\\memories paul enzo\\image2.jpg", "E:\\memories paul enzo\\image3.jpg", "E:\\memories paul enzo\\image4.jpg", "E:\\memories paul enzo\\image5.jpg", "E:\\memories paul enzo\\image6.jpg", "E:\\memories paul enzo\\image7.jpg", "E:\\memories paul enzo\\image8.jpg", "E:\\memories paul enzo\\image9.jpg", "E:\\memories paul enzo\\image10.jpg","E:\\memories paul enzo\\image11.jpg", "E:\\memories paul enzo\\image12.jpg", "E:\\memories paul enzo\\image13.jpg", "E:\\memories paul enzo\\image14.jpg", "E:\\memories paul enzo\\image15.jpg", "E:\\memories paul enzo\\image16.jpg", "E:\\memories paul enzo\\image17.jpg", "E:\\memories paul enzo\\image18.jpg" ] # Mélangez les chemins des images random.shuffle(chemins_images) # Fonction pour charger les images depuis les fichiers JPEG def charger_images(): images = [] for chemin in chemins_images: try: tk_image = tk.PhotoImage(file=chemin) images.extend([tk_image, tk_image]) except Exception as e: messagebox.showerror("Erreur", f"Une erreur s'est produite lors du chargement des images : {str(e)}") racine.destroy() exit() return images # Création d'une grille de boutons avec des images def créer_grille(racine, images): boutons = [] for i in range(TAILLE_GRILLE): ligne = [] for j in range(TAILLE_GRILLE): bouton = tk.Button(racine, width=TAILLE_IMAGE, height=TAILLE_IMAGE, command=lambda i=i, j=j: révéler(i, j)) bouton.grid(row=i, column=j) ligne.append(bouton) boutons.append(ligne) return boutons # Fonction pour révéler une image def révéler(i, j): global premier_clic, tentatives, paires_trouvées boutons[i][j].config(image=images[i * TAILLE_GRILLE + j], state="disabled") if premier_clic is None: premier_clic = (i, j) else: x, y = premier_clic if chemins_images[i * TAILLE_GRILLE + j] == chemins_images[x * TAILLE_GRILLE + y]: paires_trouvées += 1 if paires_trouvées == 18: messagebox.showinfo("Victoire!", f"Vous avez gagné en {tentatives} tentatives!") racine.quit() else: racine.after(1000, cacher, i, j, x, y) premier_clic = None tentatives += 1 # Fonction pour cacher deux images def cacher(i1, j1, i2, j2): boutons[i1][j1].config(image="", state="active") boutons[i2][j2].config(image="", state="active") # Charger les images images = charger_images() # Créer la grille de boutons avec des images boutons = créer_grille(racine, images) # Initialiser les variables globales premier_clic = None paires_trouvées = 0 tentatives = 0 racine.mainloop()
Cordialement.
Windows / Chrome 124.0.0.0
- Tkinter / image jpg
- Image iso - Guide
- Image jpg gratuite - Guide
- Convertir hevc en jpg - Guide
- Réduire taille jpg - Guide
- Acronis true image - Télécharger - Sauvegarde
2 réponses
Salut,
tkinter ne gère pas le jpg, il va falloir que tu convertisses tes images en png ou gif.
Tu peux réduire avantageusement la construction de images en :
chemins_images = [f'E:/memories paul enzo/image{i}.jpg' for i in range(1, 19)]
Préfère utiliser le / que le \\
Évite aussi les caractères accentués dans tes identifiants (noms de variables, noms de fonctions, etc) ;)
Bonjour,
Tkinter ne gérant pas les jpg, tu peux aussi installer le module pillow
qui permet de les afficher
from tkinter import * from PIL import Image, ImageTk def display_image(img): graph_area.create_image(10, 10,anchor = NW, image=img) WIDTH, HEIGHT = 400, 200 main_win = Tk() main_win.title('Test') main_win.geometry(str(WIDTH)+'x'+str(HEIGHT)+'+100+100') graph_area = Canvas(main_win, width = WIDTH-20, height = HEIGHT-20, bg = 'ivory') graph_area.place(x=10, y = 10) img = Image.open('rt_1.jpg') img = ImageTk.PhotoImage(img) display_image(img) main_win.mainloop()