大数跨境
0
0

Python之GIF图倒放,沙雕快乐源泉

Python之GIF图倒放,沙雕快乐源泉 数据皮皮侠
2020-06-04
0
导读:点击进入,开启“斗图王”的巅峰人生!

GIF图现在已经融入了我们的日常网络生活,微信群、QQ群、朋友圈......一言不合就斗图,你怕了吗?

不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”。

咱们直接开始本文的内容!


使用的工具

1


PIL(Python Image Library)——它是python的第三方图像处理库,功能非常的强大,几乎被认定为Python的官方图像处理库。


功能如下:

1、图像归档(Image Archives)。

PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。

2、图像展示(Image Display)。

PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。

3、图像处理(Image Processing)。

PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。


操作步骤

2


Step1:导入PIL库的模块


Image是PIL库的基本核心类,用来实现导入GIF


from PIL import Image, ImageSequence  #导入PIL库的Image和 ImageSequence 模块im = Image.open('1.gif')   #导入需要倒放的gif



Step2:GIF图片分解成帧


ImageSequence模块包括了一个wrapper类,它能够让用户迭代访问图形序列中每一帧图像。利用ImageSequence中的Iterator函数创建一个迭代器实例,让用户循环访问序列中的全部图像。


sequence = []  #用来存放GIF分解成帧的序列i=0for f in ImageSequence.Iterator(im):  #循环访问GIF中的逐帧    sequence.append(f.copy())     i+=1         f.save('out_'+str(i)+'.png')     #将每次分离出来的帧保存



可以看到文件夹中已经有分解的静态图片了,每张图都是gif动图的某一帧,把所有的静态图按倒序连起来就是倒放的gif动图。



Step3:将得到的序列通过reverse()函数倒序


sequence.reverse()     #将帧序列倒叙



Step4:将得到的帧序列重新还原成GIF:


sequence[0].save('out1.gif',save_all=True,append_images=sequence[1:])  #生成新的GIF



Step5:得到倒放GiF图片


倒放效果:


正放效果:


大家可以自己亲手去试试看,其实在学习python的过程中也是欢乐无穷呢!


下面为大家带来一些实例:



浣熊被投喂VS 人类被投喂

3




修复破碎乒乓球

4




感受化学反应之美

5





Python学习虽然枯燥,但是却极为实用,GIF动图倒放你学会了吗?快来,我们一起开启“斗图王”的巅峰人生。

关注数据皮皮虾

开启沙雕斗图模式!


本期作者:文萌

本期编辑校对:张惠宁



【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 2137
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读615
粉丝0
内容2.1k