在 Python 中将 turtle 绘制的图像转换为 PNG
Convert images drawn by turtle to PNG in Python
我正在 Python 制作一个抽象艺术模板生成器,它接受最小半径、最大半径和圆圈数的输入。它在随机位置绘制随机圆圈,也符合用户的规格。我想将 Turtle 图形转换为 PNG,以便用户随后可以根据 he/she 的意愿编辑模板,但我不知道如何进行。这是我的代码:
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 or t.xcor() > 300:
t.goto(0, 0)
elif t.ycor() < -300 or 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()
您可以使用 turtle.getcanvas()
生成 Tkinker canvas。然后将其保存为 postscript 文件。
...
cv = turtle.getcanvas()
cv.postscript(file="file_name.ps", colormode='color')
turtle.done()
然后您可以将其转换为 png(我想您会找到操作方法)。或者将 PIL 与 Tkinker 一起使用 - 关于此方法的更多信息 here
可以使用 ghostscript 将 postscript 文件 (*.ps) 转换为 PNG。这个开源程序可在多个平台上使用。
另一个选择是 ImageMagick,它也是开源和多平台的。
只需在互联网上搜索 "convert ps to PNG ghostscript" 或 "convert ps to PNG Imagemagick"。
如果您想自动转换,请查看 subprocess
模块(python 文档)以从您的 python 程序中调用该程序。
我正在 Python 制作一个抽象艺术模板生成器,它接受最小半径、最大半径和圆圈数的输入。它在随机位置绘制随机圆圈,也符合用户的规格。我想将 Turtle 图形转换为 PNG,以便用户随后可以根据 he/she 的意愿编辑模板,但我不知道如何进行。这是我的代码:
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 or t.xcor() > 300:
t.goto(0, 0)
elif t.ycor() < -300 or 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()
您可以使用 turtle.getcanvas()
生成 Tkinker canvas。然后将其保存为 postscript 文件。
...
cv = turtle.getcanvas()
cv.postscript(file="file_name.ps", colormode='color')
turtle.done()
然后您可以将其转换为 png(我想您会找到操作方法)。或者将 PIL 与 Tkinker 一起使用 - 关于此方法的更多信息 here
可以使用 ghostscript 将 postscript 文件 (*.ps) 转换为 PNG。这个开源程序可在多个平台上使用。 另一个选择是 ImageMagick,它也是开源和多平台的。
只需在互联网上搜索 "convert ps to PNG ghostscript" 或 "convert ps to PNG Imagemagick"。
如果您想自动转换,请查看 subprocess
模块(python 文档)以从您的 python 程序中调用该程序。