star - Python Turtle Module- Guardando una imagen
turtle python graphs (2)
Me gustaría averiguar cómo guardar un mapa de bits o una imagen de gráficos vectoriales después de crear un dibujo con el módulo de tortuga de Python. Después de un poco de googlear no puedo encontrar una respuesta fácil. Encontré un módulo llamado canvas2svg , pero soy muy nuevo en python y no sé cómo instalar el módulo. ¿Hay alguna forma incorporada para guardar imágenes del lienzo de tortuga? Si no, ¿dónde pongo los módulos personalizados para python en una máquina Ubuntu?
Escribí una clase SvgTurtle
que admite la interfaz estándar de Turtle de Python, y svgwrite un archivo SVG usando el módulo svgwrite . Instale svgwrite, descargue svg_turtle.py
, y luego svg_turtle.py
así:
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()
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
Esto te ayudara; Tuve el mismo problema, lo busqué en Google, pero lo resolví leyendo la fuente del módulo de tortuga.
El objeto canvas (tkinter) tiene la función postscript; puedes usarlo.
El módulo de tortuga tiene "getscreen" que le da la "pantalla de tortuga" que le da el lienzo Tiknter en el que la tortuga está dibujando.
Esto lo guardará en formato PostScript encapsulado, por lo que puede usarlo en GIMP con seguridad, pero también hay otros espectadores. O, puedes buscar en Google cómo hacer un .gif a partir de esto.