我想弄清楚如何在使用python的turtle模块创建绘图后保存位图或矢量图形图像。经过一番谷歌搜索后,我找不到一个简单的答案。我确实找到了一个名为canvas2svg的模块,但我对python很新,我不知道如何安装模块。是否有一些内置的方法来保存龟帆布的图像?如果不是我在哪里将自定义模块放在Ubuntu机器上?
答案 0 :(得分:32)
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
这会对你有所帮助;我有同样的问题,我用Google搜索,但通过阅读海龟模块的来源解决了它。
canvas(tkinter)对象具有postscript函数;你可以使用它。
乌龟模块有“getscreen”,它为你提供了“乌龟屏幕”,它为你提供了乌龟绘画的Tiknter画布。
这将以封装的PostScript格式保存您,因此您可以在GIMP中使用它,但也有其他查看器。或者,你可以谷歌如何制作.gif。
答案 1 :(得分:2)
我编写了一个SvgTurtle
类,它支持Python的标准Turtle接口,并使用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()
答案 2 :(得分:0)
这对我不起作用。在每个屏幕清除之前,我怎么做才能保存输出?
<form>
<input type='text' class='path'>
<input type='button' class='btn' value='Go!'>
</form>
<script>
let btn = document.querySelector('.btn');
let inputPath = document.querySelector('.path');
// redirect to chosen path
btn.addEventListener('click', function(){
location.href = inputPath.value;
});
</script>
答案 3 :(得分:0)
保存海龟图片的方法是打开python,编写海龟代码按Ctrlshifts。然后会在窗口中弹出一个窗口。双击python3.9,然后双击<script type="text/javascript" src="../dist/main.js"></script>
。继续向下滚动,在 Tkinter 模块下,将有海龟演示文件夹。双击它,然后您可以保存您的海龟文件。
答案 4 :(得分:0)
如果我之前说的在这里不起作用,那就是一步一步的图片:
我在 Windows 10 上执行此操作,我不知道它是否适用于其他类型的计算机。