如何使用moviepy设置单个像素的颜色

时间:2016-06-09 01:35:19

标签: python-3.x pixel moviepy

我想创建一个自定义视频,其中每个像素代表数学函数的结果。我已经尝试了clip.get_frame(f)[y][x] = (r, g, b),但这不起作用,视频保持不变。

我怎么能这样做?还有,有没有更好的插件来做这种事情?

1 个答案:

答案 0 :(得分:1)

您应该使用VideoClip类和make_frame函数(函数) t -> frame at time t其中frame是表示像素的w*h*3 RGB数组。 [Docs]

这是使用make_frame的示例numpy函数;它为每个t生成一个随机像素数组。

from moviepy.editor import *
import numpy as np

def make_frame(t):
    w, h = 320, 180  # Width an height.
    return np.random.random_integers(0, 255, (h,w,3))

clip = VideoClip(make_frame, duration=2)
clip.write_gif('random.gif', fps=15)

结果,我们得到:

Random Pixels Animation