Tkinter enregistrement canvas
ekip667
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait un code me permettant de prendre les coordonnées dans un fichier .dat et de faire bouger mon cercle. Le probléme est que je veux enregistrer en .gif ce deplacement pour cela je veux enregistrer chaque deplacements en format image donc si j'ai 3 deplacements je veux 4 fichier image (ensuite je peux transformer des png en gif). Dans mon code j'ai reussi à enregistrer une image qui est l'image initiale mais je ne sais pas comment enregistré toutes les images. Voici mon code :
Ce que j'ai actuellement c'est l'image enregistré en format png de mon cercle dans sa position initiale (ce qui est normale par rapport à l'endroit ou j'ai placé les lignes de codes permettant d'enregistrer mon image) mais je voudrais pouvoir enregistrer pour chaque deplacement, une image et je ne vois pas comment faire.
Merci pour votre aide
j'ai fait un code me permettant de prendre les coordonnées dans un fichier .dat et de faire bouger mon cercle. Le probléme est que je veux enregistrer en .gif ce deplacement pour cela je veux enregistrer chaque deplacements en format image donc si j'ai 3 deplacements je veux 4 fichier image (ensuite je peux transformer des png en gif). Dans mon code j'ai reussi à enregistrer une image qui est l'image initiale mais je ne sais pas comment enregistré toutes les images. Voici mon code :
from tkinter import * import numpy as np def move_(datay,datax, i): print("i=", i, "x=", datax[i],"y=" , datay[i]) if i>= len(datax)-1: print("Fin") return x = datax[i] y = datay[i] Canevas.move(Balle, x, y) i += 1 Mafenetre.after(500, move_, datax,datay, i) Mafenetre = Tk() Mafenetre.geometry('500x500') Canevas = Canvas(Mafenetre, height=550, width=550, bg='white') oval = Canevas.create_oval(5, 8, 480, 480) Canevas.pack(padx=5, pady=5) x0 = 495/2 y0 = 495/2 x1 = 455/2 y1 = 449/2 # Balle = Canevas.create_oval(x0, y0, x1, y1, width=3) def lire(file,n = 0,enc = 'utf-8'): x,y = [],[] with open(file,'r',encoding = enc) as file: i = 0 for k in file: if i >= n: ligne = k.split(" ") y.append(float(ligne[2])) x.append(float(ligne[1])) i = i+1 return y,x y,x=lire("mon_fichier.dat",enc="latin-1") x = np.array(x) y = np.array(y) datax = x *100 datay = y *100 Mafenetre.after(500, move_, datax,datay, 0) # move_(data, 0) Canevas.update() Canevas.postscript(file="fileName.ps", colormode='color') def save_as_png(canvas,fileName): canvas.postscript(file = fileName + '.eps') img = Image.open(fileName + '.eps') img.save(fileName + '.png', 'png') save_as_png(Canevas,"test") Mafenetre.mainloop()>
Ce que j'ai actuellement c'est l'image enregistré en format png de mon cercle dans sa position initiale (ce qui est normale par rapport à l'endroit ou j'ai placé les lignes de codes permettant d'enregistrer mon image) mais je voudrais pouvoir enregistrer pour chaque deplacement, une image et je ne vois pas comment faire.
Merci pour votre aide
Configuration: Linux / Chrome 80.0.3987.132
A voir également:
- Tkinter enregistrement canvas
- Canvas gratuit - Télécharger - Divers Photo & Graphisme
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Enregistrement - Guide
- Comment couper un enregistrement audio - Guide
6 réponses
Bonjour,
Merci de penser à attribuer à ton code la couleur syntaxique et la forme correcte avec le bouton
Merci de penser à attribuer à ton code la couleur syntaxique et la forme correcte avec le bouton
<>
▼.
... ou alors tu appelles save_as_png après Canevas.move(Balle, x, y)
mais en changeant le nom du fichier png à chaque fois, sinon le fichier s'appellera toujours
"test", et a la fin il ne restera que la photo du dernier déplacement …
par exemple:
i += 1
filename= 'test_' + str(i)
mais en changeant le nom du fichier png à chaque fois, sinon le fichier s'appellera toujours
"test", et a la fin il ne restera que la photo du dernier déplacement …
par exemple:
i += 1
filename= 'test_' + str(i)
En fait je suppose qu'il faut que j'integre la fonction qui enregistre mes images dans la boucle mais je ne vois pas comment. Au final je voudrais un fichier image par deplacement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Holà ekipp667,
tu as trouvé tout seul : l'appel save_as_png dans la boucle et il y a bien une boucle là-dedans, non ?
par exemple celle qui sert à déplacer la balle …
il faut prendre une photo après chaque déplacement, mais attention, il reste un truc à modifier sinon, le fichier s'appellera toujours "test", et a la fin il ne restera que la photo du dernier déplacement ...
tu as trouvé tout seul : l'appel save_as_png dans la boucle et il y a bien une boucle là-dedans, non ?
par exemple celle qui sert à déplacer la balle …
il faut prendre une photo après chaque déplacement, mais attention, il reste un truc à modifier sinon, le fichier s'appellera toujours "test", et a la fin il ne restera que la photo du dernier déplacement ...