Je voudrais savoir comment enregistrer une image bitmap ou une image graphique vectorielle après avoir créé un dessin avec le module tortue 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 sur python et je ne sais pas comment installer le module. Y a-t-il un moyen intégré de sauvegarder les images de la toile de la tortue? Sinon, où dois-je mettre des modules personnalisés pour python sur une machine Ubuntu?Python Turtle Module- Enregistrement d'une image
Répondre
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 l'ai résolu en lisant la source du module de tortue.
L'objet canvas (tkinter) a la fonction postscript; tu peux l'utiliser. Le module de tortue a "écran" qui vous donne le "écran tortue" qui vous donne la toile Tiknter dans lequel la tortue dessine. Cela vous permettra d'économiser au format PostScript encapsulé, de sorte que vous pouvez l'utiliser dans GIMP, mais il y a aussi d'autres visionneuses. Ou, vous pouvez Google comment faire un .gif à partir de cela.
En tortue de python 2.7, il a déjà une fonction postscript. Ainsi, vous n'avez pas besoin d'importer Tkinter séparément. –
Je voudrais juste ajouter que le fichier EPS est enregistré au même endroit que le script. –
J'ai écrit une classe SvgTurtle
qui prend en charge l'interface Turtle standard de Python, et écrit un fichier SVG en utilisant le module svgwrite. Installer svgwrite, téléchargez svg_turtle.py
, puis l'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()
Je crois que vous devriez avoir 'draw_spiral()' -> 'draw_spiral()' Dans 'def fichier_écriture' –
Je suppose que vous vouliez dire' draw_spiral() '->' draw_func() ', @ Mr.Weathers. Tu as raison, c'est ce que je voulais faire, donc je l'ai réparé. –
Dans le cas où vous souhaitez enregistrer en toute transparence une image à la fin de l'exécution du programme (semi-utile pour aider à des travaux d'étudiants de notation qui mettent fin), S'il vous plaît vérifier: https://github.com/ucsb-cs/cTurtle_screenshot – bboe