我想弄清楚如何在使用 python 的 turtle 模块创建绘图后保存位图或矢量图形图像。经过一番谷歌搜索后,我找不到简单的答案。我确实找到了一个名为canvas2svg的模块,但我对 python 很陌生,我不知道如何安装该模块。是否有一些内置方法可以保存海龟画布的图像?如果不是,我应该在 Ubuntu 机器上将 python 的自定义模块放在哪里?
问问题
39668 次
2 回答
48
from tkinter import * # Python 3
#from Tkinter import * # Python 2
import turtle
turtle.forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
这将对您有所帮助;我有同样的问题,我用谷歌搜索了它,但通过阅读海龟模块的源代码解决了它。
canvas(tkinter)对象具有postscript功能;你可以使用它。
turtle 模块有“getscreen”,它为您提供“turtle screen”,它为您提供了海龟正在绘制的 Tiknter 画布。
这会将您保存为封装的 PostScript 格式,因此您可以肯定地在 GIMP 中使用它,但也有其他查看器。或者,您可以谷歌如何从中制作 .gif。您也可以使用免费和开源的 Inkscape 应用程序来查看 .eps 文件,然后将它们保存为矢量或位图图像文件。
于 2011-05-18T18:27:57.557 回答
6
我从 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 不需要。
于 2017-08-11T00:17:45.587 回答