Python:使用PIL进行动画
我想要一个动画图片。不过我需要一个刷新功能,因为每次用plt.show()的时候,它总是会打开一个新窗口。有没有人能给点建议?谢谢!
import numpy as np
import scipy
from scipy import *
import matplotlib.pyplot as plt
#array
aa = []
for x in range(44):
aa.append([])
for z in range(44):
aa[x].append(3*sin(x/3.0)+2*cos(z/3.0))
b = aa
plt.imshow(b)
plt.show()
time = 0
dt = 0.1
while(time<3):
b = sin(aa)
time += dt
2 个回答
5
除了关于图形用户界面工具包的其他回答,你还可以先保存图片,然后再制作动画。
如果图片的颜色不多,PIL可以直接保存为gif格式,具体可以参考这篇博客。
相关部分如下:
frames = []
x, y = 0, 0
for i in range(10):
new_frame = create_image_with_ball(400, 400, x, y, 40) # your imgs here
frames.append(new_frame)
x += 40 # you wont need these
y += 40 #
# Save into a GIF file that loops forever
frames[0].save('moving_ball.gif', format='GIF', append_images=frames[1:], save_all=True, duration=100, loop=0)
这段代码可能需要根据你的需求进行修改,不过我已经添加了一些注释,帮助你入门。