Pythonのタートルモジュールで図面を作成した後、ビットマップまたはベクターグラフィックスイメージを保存する方法を見つけたいと思います。少しググってみた後、簡単な答えが見つかりません。 canvas2svg というモジュールを見つけましたが、pythonを初めて使用するので、モジュールのインストール方法がわかりません。組み込みの方法はありますか?カメのキャンバスの画像を保存する方法?ない場合、どこにpythonのカスタムモジュールをUbuntuマシンに配置しますか?
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
これはあなたを助けます。私も同じ問題を抱えていましたが、Googleで検索しましたが、タートルモジュールのソースを読んで解決しました。
Canvas(tkinter)オブジェクトにはpostscript関数があります。使用できます。
タートルモジュールには、タートルが描画されているTiknterキャンバスを提供する「タートルスクリーン」を提供する「getscreen」があります。
これによりカプセル化されたPostScript形式で保存されるため、GIMPで確実に使用できますが、他のビューアも存在します。または、これから.gifを作成する方法をグーグルできます。
私はPythonからの標準TurtleインターフェースをサポートするSvgTurtle
クラスを作成し、 svgwrite モジュールを使用してSVGファイルを書き込みました。 svgwriteをインストールしてダウンロード svg_turtle.py
とし、次のように呼び出します。
from turtle import * # @UnusedWildImport
import svgwrite
from svg_turtle import SvgTurtle
def draw_spiral():
fillcolor('blue')
begin_fill()
for i in range(20):
d = 50 + i*i*1.5
pencolor(0, 0.05*i, 0)
width(i)
forward(d)
right(144)
end_fill()
def write_file(draw_func, filename, size):
drawing = svgwrite.Drawing(filename, size=size)
drawing.add(drawing.rect(fill='white', size=("100%", "100%")))
t = SvgTurtle(drawing)
Turtle._screen = t.screen
Turtle._pen = t
draw_func()
drawing.save()
def main():
write_file(draw_spiral, 'example.svg', size=("500px", "500px"))
print('Done.')
if __name__ == '__main__':
main()