Pergunta

Gostaria de descobrir como salvar uma imagem gráfica de bitmap ou vetor depois de criar um desenho com o módulo Turtle da Python. Depois de um pouco de pesquisa no Google, não consigo encontrar uma resposta fácil. Eu encontrei um módulo chamado canvas2svg, mas sou muito novo no Python e não sei como instalar o módulo. Existe alguma maneira de salvar imagens da tela da tartaruga? Se não, onde eu coloco módulos personalizados para Python em uma máquina Ubuntu?

Foi útil?

Solução

from Tkinter import *
from turtle import *
import turtle


forward(100)
ts = turtle.getscreen()

ts.getcanvas().postscript(file="duck.eps")

Isso irá ajudá -lo; Eu tive o mesmo problema, pesquisei no Google, mas resolvi lendo a fonte do módulo da tartaruga.

O objeto Canvas (tknter) tem a função PostScript; você pode usar isso.

O módulo Turtle possui "GetScreen", que oferece a "tela da tartaruga", que oferece a tela do Tiknter em que a tartaruga está desenhando.

Isso o salvará em formato PostScript encapsulado, para que você possa usá -lo no GIMP, com certeza, mas também existem outros espectadores. Ou você pode pesquisar no Google como fazer um .gif a partir disso.

Outras dicas

Eu escrevi um SvgTurtle classe que suporta a interface padrão da tartaruga do Python e grava um arquivo SVG usando o svgwrite módulo. Instale svgwrite, download svg_turtle.py, e então chame assim:

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()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top