擅长:python、mysql、java
<p>所以,这个问题的主要目的是生成一个由3D数组(帧)或4D矩阵(以宽度、高度、颜色和时间为维度)表示的gif动画,而不使用Python“外部”的工具。在</p>
<p>看起来PIL库不能做到这一点。至少在没有黑客或解决方法的情况下,不会以简单的方式出现。但是,这个目标可以通过使用<code>moviepy</code>库来实现。以下是该库提供的优雅解决方案:</p>
<pre><code>import numpy as np
import moviepy.editor as mpy
def make_frame(t):
h = 100
w = 100
ar = np.zeros((h, w, 3))
for hi in range(h):
for wi in range(w):
for ci in range(3):
ar[hi, wi, ci] = 255.0*t/15.0
return ar
if __name__ == '__main__':
clip = mpy.VideoClip(make_frame, duration=15.0)
clip.write_gif('ani.gif', fps=15)
</code></pre>