Convertir imágenes dibujadas por tortugas a PNG en Python

Estoy haciendo un generador de plantillas de arte abstracto en Python que toma entradas de radio mínimo, radio máximo y número de círculos. Dibuja círculos aleatorios en lugares aleatorios, que también cumplen con las especificaciones del usuario. Quiero convertir los gráficos de Turtle en un PNG para que el usuario pueda editar la plantilla como quiera, pero no sé cómo proceder. Aquí está mi código:

import random import time import turtle print("Abstract Art Template Generator") print() print("This program will generate randomly placed and sized circles on a blank screen.") num = int(input("Please specify how many circles you would like to be drawn: ")) radiusMin = int(input("Please specify the minimum radius you would like to have: ")) radiusMax = int(input("Please specify the maximum radius you would like to have: ")) screenholder = input("Press ENTER when you are ready to see your circles drawn: ") t = turtle.Pen() win = turtle.Screen() def mycircle(): x = random.randint(radiusMin,radiusMax) t.circle(x) t.up() y = random.randint(0,360) t.seth(y) if t.xcor()  300: t.goto(0, 0) elif t.ycor()  300: t.goto(0, 0) z = random.randint(0,100) t.forward(z) t.down() for i in range(0, num): mycircle() turtle.done() 

La conversión de un archivo postscript (* .ps) a un PNG se puede hacer con ghostscript. Este progtwig de código abierto está disponible en múltiples plataformas. Otra opción es ImageMagick, también de código abierto y multiplataforma.

Simplemente busque en Internet “convertir ps a ghostscript PNG” o “convertir ps a PNG Imagemgick”.

Si desea automatizar la conversión, consulte el módulo de subprocess (documentación de python) para llamar al progtwig desde su progtwig de python.

Puedes usar turtle.getcanvas() para generar el canvas Tkinker. Luego guárdalo como archivo postscript.

 ... cv = turtle.getcanvas() cv.postscript(file="file_name.ps", colormode='color') turtle.done() 

Luego puedes convertirlo a png (creo que encontrarás cómo hacerlo). O use PIL con Tkinker – más sobre este método aquí