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