py:用moviepy生成动画

File : movie.py (直接右键另存为下载)
Type : python
Brief : python生成gif动画的库


参考:用Python和MoviePy将数据动态可视化

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d as plt3d
import moviepy.editor as mpy
from moviepy.video.io.bindings import mplfig_to_npimage

dura = 2    # 2s动画

fig = plt.figure("movie", figsize=(5, 3))
ax = fig.add_subplot(111, projection='3d')
time = np.linspace(-2*np.pi, 2*np.pi, 1000)
x,y = np.meshgrid(time, time)
z = np.sin(np.sqrt(x**2 + y**2))
ax.plot_surface(x, y, z, cmap='jet')

def make_frame(t):
    """生成时间t的gif帧数据
    :Parameters: 
        - t: t时刻,其范围从0开始,到设置的gif时间长度
    :Returns: 
        返回Numpy array表示的图像数据(Height x Width x 3),
        绘制图像可以用任何工具,只要返回满足格式要求。
    """
    ax.view_init(elev=50, azim=t*180)
    return mplfig_to_npimage(fig) # RGB image of the figure

anim = mpy.VideoClip(make_frame, duration=dura)
anim.write_videofile("3d.mp4", fps=24)  # 生成mp4视频
anim.write_gif("3d.gif", fps=24)        # 生成gif动画

效果:3d


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:py:用moviepy生成动画

本文作者:Y

发布时间:2018-06-12, 23:33:10

最后更新:2019-08-15, 16:58:34

原始链接:http://yehuohan.github.io/2018/06/12/Gist/python/py-%E7%94%A8moviepy%E7%94%9F%E6%88%90%E5%8A%A8%E7%94%BB/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。