import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
fig.set_tight_layout(True)
# 询问图形在屏幕上的大小和DPI(每英寸点数)
# 注意当把图形保存为文件时,需要为此单独再提供一个DPI
print('fig size: {0} DPI, size in inches {1}'.format(
fig.get_dpi(), fig.get_size_inches()))
# 绘制一个保持不变(不会被重新绘制)的散点图以及初始直线
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line, = ax.plot(x, x - 5, 'r-', linewidth=2)
def update(i):
label = 'timestep {0}'.format(i)
print(label)
# 更新直线和轴(用一个新X轴标签)
# 以元组形式返回这一帧需要重新绘制的物体
line.set_ydata(x - 5 + i)
ax.set_xlabel(label)
return line, ax
if __name__ == '__main__':
# 会为每一帧调用Update函数
# 这里FunAnimation设置一个10帧动画,每帧间隔200ms
anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
if len(sys.argv) > 1 and sys.argv[1] == 'save':
anim.save('line.gif', dpi=80, writer='imagemagick')
else:
# Plt.show()会一直循环动画
plt.show()
可以生成下面这种图
大多博客给的生成GIF图都是要手打图片名字,觉得太麻烦,整了个把所有图片放在一个文件夹里,就可以就这些图片生成GIF图的工具
# user:Yollison
# Author: Yollison
# createtime: 2021/9/23 9:41
'''
这个程序是把某个文件夹里所有图片生成GIF动图
里面的功能不包括整理图片格式,直接暴力生成,所以图片最好在保存时就整理好格式
'''
import imageio
import os
def create_gif(image_list, gif_name, duration=0.35):
frames = []
for image_namein image_list:
frames.append(imageio.imread(image_name))
imageio.mimsave(gif_name, frames, 'GIF', duration=duration)
return
def main():
image_list = []
# 自动读取文件夹里图片的名字
for filenamein os.listdir(r"D:/results"):# 图片所在文件夹的路径
image_list.append('D:\\results\\'+filename)# 此路径与上一条语句路径保持一致
gif_name ='result.gif' # 保存路径在此程序这里,也可自己指定路径
duration =0.35
# 生成gif
create_gif(image_list, gif_name, duration)
if __name__ =='__main__':
main()
首先找到要制作动图的视频。点击打开观看。
视频观看过程中,打开动图制作软件。
选择需要截取的画面。
点击录制几秒钟后,点击停止并保存。
保存到电脑,然后可以传到手机进行使用。