Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Kandungan Kanvas Tkinter kepada Imej?
Menukar Kandungan Kanvas kepada Imej
Menukar kandungan kanvas Tkinter kepada imej membolehkan manipulasi selanjutnya, seperti putaran, penskalaan, dan penyelarasan penyelarasan. Untuk mencapai penukaran ini, beberapa pendekatan tersedia.
Penjanaan PostScript
Salah satu kaedah ialah menjana dokumen PostScript yang boleh diproses selanjutnya oleh alatan luaran seperti ImageMagick atau Ghostscript . Berikut ialah contoh:
<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>
Lukisan Selari dengan PIL
Pendekatan lain melibatkan lukisan imej yang sama pada kedua-dua kanvas dan imej PIL secara selari. Ini membolehkan manipulasi imej dan penjimatan pada bahagian PIL sambil mengekalkan kanvas yang boleh dilihat. Berikut ialah contoh berdasarkan pendekatan yang disebut dalam "Menyimpan Lukisan Kanvas 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>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Kandungan Kanvas Tkinter kepada Imej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!