Python Turtle Module-sauvegarder une image
je voudrais savoir comment sauvegarder une image graphique bitmap ou vector après avoir créé un dessin avec le module turtle de python. Après un peu de googling Je ne peux pas trouver une réponse facile. J'ai trouvé un module appelé canvas2svg, mais je suis très nouveau pour python et je ne sais pas comment installer le module. Est-il construit de façon à enregistrer des images de la tortue toile? Si ce n'est pas le cas, où puis-je mettre des modules personnalisés pour python sur une machine Ubuntu?
2 réponses
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
cela vous aidera; j'ai eu le même problème, je L'ai googlé, mais je l'ai résolu en lisant la source du module tortue.
l'objet canvas (tkinter) a la fonction postscript; vous pouvez l'utiliser.
le module tortue a "getscreen" qui vous donne l '"écran tortue" qui vous donne la toile de Tiknter dans laquelle la tortue dessine.
cela vous sauvera dans le format PostScript encapsulé, de sorte que vous pouvez l'utiliser dans GIMP à coup sûr, mais il y a les autres téléspectateurs. Ou, vous pouvez Google comment faire un .gif à partir de ce.
j'ai écrit un SvgTurtle
classe qui supporte L'interface standard Turtle de Python, et écrit un fichier SVG en utilisant le svgwrite module. Installer svgwrite, télécharger svg_turtle.py
, et ensuite appeler comme ceci:
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()