Python播放GIF图片(ChatGPT代码参考)
|
在网上找了好几个方法, 最后还是出现各种问题,解决不了播放GIF的功能。
最后,通过ChatGPT给出了简单明了的方案(使用第三方库imageio和matplotlib.animation来实现),调试直接通过。
但有小瑕疵,就是显示gif时隐藏掉坐标轴的功能无效,于是再做了一下优化。
[最终代码]
显示GIF动画:- import matplotlib.pyplot as plt
- import matplotlib.animation as animation
- import imageio
- import numpy as np
- import os
- # -------------display gif---------------
- def display_gif_file():
- # 加载GIF文件
- gif_path = "mygif.gif"
- gif = imageio.mimread(gif_path)
- # 创建图形窗口
- fig = plt.figure()
-
- # 定义更新函数,用于更新图像
- def update(frame):
- plt.clf() # 清空图形窗口
- plt.imshow(frame) # 显示当前帧
- <strong>plt.axis('off') # 隐藏x轴和y轴</strong>
- """ #方法二#
- # 创建图形窗口和子图
- fig, ax = plt.subplots()
-
- # 定义更新函数,用于更新图像
- def update(frame):
- ax.clear() # 清空子图
- ax.imshow(frame) # 显示当前帧
- ax.set_axis_off() # 隐藏x轴和y轴
- """
- # 创建动画
- ani = animation.FuncAnimation(fig, update, frames=gif, interval=60)
- # 显示动画
- plt.show()
复制代码
GIF图片生成方法:- # -------------generate gif-----------------
- def generate_gif_file():
- y = np.random.randint(30,90, size=(20))
- filenames = []
- num = 0
- for i in y:
- num += 1
- # 绘制40张折线图
- plt.plot(y[:num])
- plt.ylim(10, 300)
- # 保存图片文件
- filename = f'{num}.png'
- filenames.append(filename)
- plt.savefig(filename)
- plt.close()
- print("save:"+filename)
- # 生成gif
- finalImgName =r'mygif.gif'
- with imageio.get_writer(finalImgName, mode='I') as writer:
- for filename in filenames:
- image = imageio.imread(filename)
- writer.append_data(image)
- print(filename)
-
- # 删除折线图
- for filename in set(filenames):
- os.remove(filename)
- print("gif done.")
复制代码
GIF效果演示:
来源:https://www.cnblogs.com/gaoxihan/p/17499434.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-6-23 16:42:39
举报
回复
分享
|
|
|
|