キャンバス コンテンツを画像に変換する
Tkinter では、キャンバス上でグラフィカル コンテンツを作成および操作するのが一般的です。ただし、キャンバス コンテンツの回転、拡大縮小、座標の変更などの操作を実行する必要がある場合は、画像形式に変換すると有利な場合があります。
解決策:
キャンバスのコンテンツを画像に変換するには、主に 2 つの方法があります。
方法 1: Postscript ドキュメントを生成する
このメソッドは、次のような Postscript ドキュメントを生成します。 ImageMagick や Ghostscript などのツールを使用してさらに処理されます。以下に例を示します。
<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>
メソッド 2: PIL による並列描画
このメソッドは、PIL イメージと Tkinter Canvas の両方に同じコンテンツを並列に描画します。 PNG、JPG、GIF などのさまざまな形式で画像を保存できます。
<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 canvas cv = Canvas(root, width=width, height=height, bg='white') cv.pack() # PIL image image1 = Image.new("RGB", (width, height), white) draw = ImageDraw.Draw(image1) # Tkinter drawings on canvas (visible) cv.create_line([0, center, width, center], fill='green') # PIL drawings in memory draw.line([0, center, width, center], green) # Save PIL image to file filename = "my_drawing.jpg" image1.save(filename) root.mainloop()</code>
どちらの方法でも、キャンバスのコンテンツを画像に変換できます。要件と画像処理のニーズに最適な方法を選択してください。
以上がTkinter で Canvas コンテンツを画像に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。