Python Turtle Module-保存图像

jjc*_*son 27 python vector-graphics turtle-graphics

我想弄清楚如何在使用python的turtle模块创建绘图后保存位图或矢量图形图像.经过一番谷歌搜索后,我找不到一个简单的答案.我找到了一个名为canvas2svg的模块,但我对python很新,我不知道如何安装模块.是否有一些内置的方法来保存龟帆布的图像?如果不是我在哪里将自定义模块放在Ubuntu机器上?

Kil*_*Ors 34

from Tkinter import *
from turtle import *
import turtle


forward(100)
ts = turtle.getscreen()

ts.getcanvas().postscript(file="duck.eps")
Run Code Online (Sandbox Code Playgroud)

这会对你有所帮助; 我有同样的问题,我用Google搜索,但通过阅读海龟模块的来源解决了它.

canvas(tkinter)对象具有postscript函数; 你可以用它.

乌龟模块有"getscreen",它为您提供了"乌龟屏幕",它为您提供了乌龟正在绘制的Tiknter画布.

这将以封装的PostScript格式保存您,因此您可以在GIMP中使用它,但也有其他查看器.或者,你可以谷歌如何从这里制作.gif文件.

  • 在python 2.7的乌龟中,它已经有了postscript函数.因此,您无需单独导入Tkinter. (2认同)
  • 我只想补充一点,EPS 文件与脚本保存在同一位置。 (2认同)

Don*_*kby 9

我编写了svg-turtle 包,它支持 Python 的标准 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()
Run Code Online (Sandbox Code Playgroud)

canvasvg是另一种选择。运行一些 Turtle 代码后,它会将画布上的所有项目转换tkinter为 SVG 文件。这需要tkinter支持和显示,而 svg-turtle 不需要。