python实现倒放gif动图

版权声明:原创文章转载请注明来源。 https://blog.csdn.net/samll_snail/article/details/84673186

现在的各种动图层出不穷,深受大家喜欢,今天给大家介绍一个可以把gif动图倒放的python程序,先来看下效果。

gif动图简单理解就是由一组若干张图片按照一定的顺序循环播放,如果我们能把一张gif动图分解成若干张图,然后再把这若干张图倒序排列,不就可以实现了gif动图倒放了,没错在python中还真就有这么个第三方库ImageSequence,我们先来看下完成的代码实现。

from PIL import Image, ImageSequence

im = Image.open(r'./zr651.gif') #注意把gif动图放在该程序的相同目录下
sequence = []

for f in ImageSequence.Iterator(im):
    sequence.append(f.copy())    

sequence.reverse()
sequence[0].save(r'./out_zr651.gif',save_all = True, append_images=sequence[1:]) #倒放的gif图保存在当前目录下

为了能更直观的理解这个程序的原理,我们对程序再稍作处理,我们可以将程序分解gif动图的图片都保存下来看看,下面是改动后的代码。

from PIL import Image, ImageSequence
im = Image.open(r'./zr651.gif')
sequence = []
i = 0
for f in ImageSequence.Iterator(im):
    sequence.append(f.copy())
    i+=1
    f.save(r'./out_'+str(i)+'.png') #这里把分解到的每一张静态图保存到当前目录下
sequence.reverse()
# sequence[0].save(r'./out_zr651.gif',save_all = True, append_images=sequence[1:])

我们可以看到文件夹中已经有分解的静态图片了,每张图都是gif动图的某一帧,把所有的静态图按倒序连起来就是倒放的gif动图了,大家可以自己亲手去试试看,在学习python的过程中大家务必要自己亲手去敲每一行代码。

猜你喜欢

转载自blog.csdn.net/samll_snail/article/details/84673186