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文件.
我编写了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 不需要。