Python海龟重复之美彩色图形生成gif图形

Python海龟重复之美彩色图形gif图

"""Python海龟重复之美彩色图形"""

from turtle import Turtle,Screen   # 从海龟模块导入Turtle类和Screen命令到全局名字空间
from random import choice          # 从随机模块导入选择命令
from time import sleep             # 从时间模块导入睡眠(延时)命令
import os,io
from PIL import Image

def savepng(canvas,path):
    """把canvas.postscript的内容转换成png写入文件"""     
    global counter
    psimage = canvas.postscript(colormode = 'color')    # 生成ps字符串
    filename = path + os.sep + str(counter) + ".png"    # 形成文件名
    im = Image.open(io.BytesIO(psimage.encode('utf-8')))# 打开图像
    im.save(filename,format="PNG")                      # 保存图像
    im.close()                                          # 关闭图像
    counter = counter + 1
    
"""把颜色字符串以逗号隔开放在中括号中,取名为color_list,这叫列表"""
color_list = ['red','orange','yellow','green','cyan','blue','purple']
ghostscrpit = 'C:\\Program Files\\gs\\gs9.26\\bin'    
counter = 0
"以下是添加搜索ghostscript的路径"
path = os.environ['path']
path = path.split(";")
path.append(ghostscrpit) 
path = ';'.join(path)
os.environ['path'] = path


screen = Screen()                  # 新建屏幕对象名为screen
screen.setup(800,600)              # 设置屏幕宽高为800和600
screen.delay(0)                    # 设置屏幕绘画延时为0豪秒
screen.bgcolor("black")            # 设置屏幕背景颜色为黑色
screen.title("Python海龟重复之美彩色图形lixingqiu")

t = Turtle()                       # 新建海龟对象名为t
t.color("red","blue")              # 设定t的画笔颜色和填充颜色

for i in range(1,301):             # 重复300次
    c = choice(color_list)         # 选择从color_list选择一种颜色
    t.shapesize(3,i/10)            # 设定t的长度缩放倍数为 i/10
    t.color(c,c)                   # 设定画笔颜色和填充颜色
    t.rt(10)                       # 向右旋转30度
    sleep(0.01)                    # 延时0.01秒
    t.stamp()                      # 图章
    screen.title(str(i))
    savepng(screen.cv,"images")    # 每个步骤都保存为图片

    
 
screen.mainloop()