Maison > Article > développement back-end > Comment puis-je convertir le contenu du canevas Tkinter en images ?
Conversion du contenu du canevas en images
La conversion du contenu d'un canevas Tkinter en image permet d'autres manipulations, telles que la rotation, la mise à l'échelle, et ajustement des coordonnées. Pour réaliser cette conversion, plusieurs approches sont disponibles.
Génération PostScript
Une méthode consiste à générer un document PostScript qui peut être traité ultérieurement par des outils externes comme ImageMagick ou Ghostscript. . Voici un exemple :
<code class="python">from Tkinter import * root = Tk() cv = Canvas(root) cv.create_rectangle(10,10,50,50) cv.pack() root.mainloop() cv.update() cv.postscript(file="file_name.ps", colormode='color') root.mainloop()</code>
Dessin parallèle avec PIL
Une autre approche consiste à dessiner la même image sur la toile et sur une image PIL en parallèle. Cela permet la manipulation et la sauvegarde des images côté PIL tout en conservant le canevas visible. Voici un exemple basé sur l'approche mentionnée dans « Sauvegarder un dessin sur toile Tkinter (Python) » :
<code class="python">from Tkinter import * import Image, ImageDraw width = 400 height = 300 center = height//2 white = (255, 255, 255) green = (0,128,0) root = Tk() # Tkinter create a canvas to draw on cv = Canvas(root, width=width, height=height, bg='white') cv.pack() # PIL create an empty image and draw object to draw on # memory only, not visible image1 = Image.new("RGB", (width, height), white) draw = ImageDraw.Draw(image1) # do the Tkinter canvas drawings (visible) cv.create_line([0, center, width, center], fill='green') # do the PIL image/draw (in memory) drawings draw.line([0, center, width, center], green) # PIL image can be saved as .png .jpg .gif or .bmp file (among others) filename = "my_drawing.jpg" image1.save(filename) root.mainloop()</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!