在Python中将turtle绘制的图像转换为PNG

Posted

技术标签:

【中文标题】在Python中将turtle绘制的图像转换为PNG【英文标题】:Convert images drawn by turtle to PNG in Python 【发布时间】:2016-06-08 08:36:00 【问题描述】:

我正在用 Python 制作一个抽象艺术模板生成器,它接受最小半径、最大半径和圆数的输入。它在随机的地方绘制随机的圆圈,也符合用户的规格。我想将 Turtle 图形转换为 PNG,以便用户可以随心所欲地编辑模板,但我不知道如何继续。这是我的代码:

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()

【问题讨论】:

我不是 python 之神,但也许这些代码示例会有所帮助:code.activestate.com/recipes/… 【参考方案1】:

您可以使用turtle.getcanvas() 来生成 Tkinker 画布。然后将其保存为 postscript 文件。

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

turtle.done()

然后您可以将其转换为 png(我想您会找到方法)。或者将 PIL 与 Tkinker 一起使用 - 有关此方法的更多信息here

【讨论】:

【参考方案2】:

可以使用 ghostscript 将 postscript 文件 (*.ps) 转换为 PNG。这个开源程序可在多个平台上使用。 另一个选择是 ImageMagick,它也是开源和多平台的。

只需在互联网上搜索“将 ps 转换为 PNG ghostscript”或“将 ps 转换为 PNG Imagemagick”。

如果您想自动转换,请查看subprocess 模块(python 文档)以从您的 python 程序中调用该程序。

【讨论】:

以上是关于在Python中将turtle绘制的图像转换为PNG的主要内容,如果未能解决你的问题,请参考以下文章

Python的turtle库有啥用

python使用turtle库绘制如下的五角星

Turtle库的学习积累

求教python中的turtle

Python实用工具(情人节献礼)turtle函数绘制动态玫瑰花

Python实用工具(情人节献礼)turtle函数绘制动态玫瑰花