Pythonのタートルモジュールで図面を作成した後、ビットマップまたはベクターグラフィックス画像を保存する方法を理解したいと思います。少しグーグルした後、私は簡単な答えを見つけることができません。私はcanvas2svgというモジュールを見つけましたが、Pythonは非常に初めてで、モジュールのインストール方法がわかりません。タートルキャンバスの画像を保存するための組み込みの方法はありますか?そうでない場合は、UbuntuマシンのPython用のカスタムモジュールをどこに配置しますか?
2 に答える
from tkinter import * # Python 3
#from Tkinter import * # Python 2
import turtle
turtle.forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
これはあなたを助けます。私は同じ問題を抱えていました、私はそれをグーグルで検索しました、しかしタートルモジュールのソースを読むことによってそれを解決しました。
キャンバス(tkinter)オブジェクトにはpostscript関数があります。あなたはそれを使うことができます。
タートルモジュールには、タートルが描画しているTiknterキャンバスを提供する「タートルスクリーン」を提供する「getscreen」があります。
これにより、カプセル化されたPostScript形式で保存されるため、GIMPで確実に使用できますが、他のビューアもあります。または、これから.gifを作成する方法をGoogleで検索できます。無料のオープンソースのInkscapeアプリケーションを使用して、.epsファイルも表示し、ベクターまたはビットマップイメージファイルに保存できます。
Pythonの標準Turtleインターフェースをサポートするsvg -turtleパッケージを作成し、 svgwriteモジュールを使用してSVGファイルを作成しました。でインストールしpip install svg-turtle
、次のように呼び出します。
from svg_turtle import SvgTurtle
def draw_spiral(t):
t.fillcolor('blue')
t.begin_fill()
for i in range(20):
d = 50 + i*i*1.5
t.pencolor(0, 0.05*i, 0)
t.width(i)
t.forward(d)
t.right(144)
t.end_fill()
def write_file(draw_func, filename, width, height):
t = SvgTurtle(width, height)
draw_func(t)
t.save_as(filename)
def main():
write_file(draw_spiral, 'example.svg', 500, 500)
print('Done.')
if __name__ == '__main__':
main()
canvasvgパッケージは別のオプションです。タートルコードを実行すると、tkinter
キャンバス上のすべてのアイテムがSVGファイルに変換されます。これにはtkinter
サポートと表示が必要ですが、svg-turtleは必要ありません。