前提:今天在用PIL生成gif时被帧率困扰了一会,看了一下PIL的文档终于彻底理解了。
frames[0].save(outPath, format='GIF',save_all=True, append_images=frames[1:],loop=1,duration=41.6,transparency=0,disposal=2)
其中duration表示每一帧的持续时间,毫秒为单位,那么当帧率是24时,duration=1/24✖1000,也就是duration与帧率的计算关系为 duration=1/fps✖1000。
除此之外,duration还可以设置为列表,比如你想把某一帧的持续时间加长,你可以这样设置,durations=[200,400,600…]。
有时间大家不懂的地方一定要查看背后的数学原理以及相应的文档,这样很快就能解决问题。。。