哗啦啦的下雨啦_海龟显示gif动图原理程序

如本文章标有价格,需议价或其它事情商议请加微信scratch8

李兴球python海龟拆帧显示动图哗啦啦的下雨啦

在Python海龟画图的屏幕中可以显示gif动态图片吗?答案是可以的。我们可以用屏幕的addshape命令添加gif图到造型字典,然后把海龟的造型设为这张gif图即可。不过遗憾的是,它只会显示第一帧。如果要显示多帧动画,那么就要把gif图进行拆帧处理。所谓的拆帧,就是把gif图中的每一幅图给分离出来。在本例中使用提webp图形。读者把它当成gif图即可。拆帧使用的是pillow模块的ImageSequence子模块的迭代器命令。在下面的代码中,定义了一个叫getframes的函数。它会把gif图所有的帧都包装为PhotoImage对象,把它们放在一个列表中,并且返回,同时返回的还有图片的尺寸。下面是哗啦啦的下雨啦.py的源代码。

"""
   哗啦啦的下雨啦.py
   本程序演示如何在Python的海龟画图屏幕中显示动态图片。
   关键词:拆帧,造型字典,列表推导式,造型类。
"""
import time
import turtle
from PIL import Image,ImageTk,ImageSequence

def getframes(filename):
    """
       拆帧,返回PhotoImage对象列表。
    """
    frames = []                              # 新建列表
    
    im = Image.open(filename)                # 载入图片
            
    pass                                     # 这里省略若干行代码 
    
    return frames,im.size

screen = turtle.getscreen()                  # 获取屏幕    
screen.screensize(1,1)                       # 画布尺寸
frames,size = getframes('giphy.webp')        # 拆帧
screen.setup(*size)                          # 设定窗口大小
screen.title('哗啦啦的下雨啦by李兴球')       # 设定标题 

pass                                          # 这里省略若干行代码  

index = 0
while True:
    turtle.shape(f"gif_{index}")             # 设定造型   
    index = index + 1                        # 索引加1
    index = index % len(shapes)              # 对数量求余
    time.sleep(0.02)                         # 等待0.02秒    

需要所有源代码及素材,请扫码付款后自行下载,或者联系微信pythonxia

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 哗啦啦的下雨啦_海龟显示gif动图原理程序
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页