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

How to set the color of individual pixels with moviepy

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

我该怎么做呢?另外,有没有更好的插件可以做这种事情?

您应该将 VideoClip class 与 make_frame 函数(一个函数 t -> frame at time t 其中 frame 是表示像素的 w*h*3 RGB 数组)。 [Docs]

这是一个使用 numpymake_frame 函数示例;它为每个 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)

结果,我们得到: