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

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

from PIL import Image
#注意把gif动图放在该程序的相同目录下
ImageSequenceim = Image.open(r'./zr651.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
ImageSequenceim = 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的过程中大家务必要自己亲手去敲每一行代码。

Scroll Up