前言

GIF图现在已经融入了我们的日常网络生活,微信群、QQ群、朋友圈......一言不合就斗图,你怕了吗?不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”。

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

PIL(Python Image Library)

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

1:导入PIL库的模块

from PIL import Image, ImageSequence  #导入PIL库的Image和 ImageSequence 模块
im = Image.open(r'./1.gif') #注意把gif动图放在该程序的相同目录下

2:将GIF图分解

为了能更直观的理解这个程序的原理,我们可以将程序分解gif动图的图片都保存下来看看

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

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

sequence.reverse()

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

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

效果展示:

你想不到的沙雕,10行代码Python实现GIF图倒放,每天的快乐源泉的更多相关文章

  1. 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学

    编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...

  2. 《zw版·Halcon-delphi系列原创教程》简单的令人发指,只有10行代码的车牌识别脚本

    <zw版·Halcon-delphi系列原创教程>简单的令人发指,只有10行代码的车牌识别脚本 简单的令人发指,只有10行代码的车牌识别脚本      人脸识别.车牌识别是opencv当中 ...

  3. [Unity Editor]10行代码搞定Hierarchy排序

    在日常的工作和研究中,当给我们的场景摆放过多的物件的时候,Hierarchy面板就会变得杂乱不堪.比如这样:    过多的层次结构充斥在里面,根层的物件毫无序列可言,整个层次面板显示非常的杂乱不堪,如 ...

  4. 10行代码搞定移动web端自定义tap事件

    发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...

  5. delphi 牛逼 了 app (已在软件界掀起波澜)10分钟10行代码做出让人惊叹的程序

    (已在软件界掀起波澜)10分钟10行代码做出让人惊叹的程序 http://v.qq.com/x/page/m0328h73bs7.html?ptag=bbs_csdn_net

  6. 10行代码,用python能做出什么骚操作

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小栗子 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  7. 第一行代码 Android 思维导图

    第一行代码 Android  思维导图

  8. 示例 - 10行代码在C#中获取页面元素布局信息

    最近研究一个如何在网页定位验证码并截图的问题时, 用SS写了一段C#小脚本可以轻松获取页面任意元素的布局信息 (top, left, width, height). 10行功能代码, 觉得有点用, 现 ...

  9. Spring Boot 中 10 行代码构建 RESTful 风格应用

    RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 ...

随机推荐

  1. jsp学习笔记:mvc开发模式

    jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...

  2. 【C++】常见易犯错误之数值类型取值溢出与截断(3)

    0.  前言 本节是“[C++]常见易犯错误之数值类型取值溢出与截断(1)” 的补充,主要探讨浮点型的取值溢出. 1. 相关知识 (1) 浮点型数据取值范围如下: 单精度型 float 3.4 * 1 ...

  3. [安卓基础] 003.建立你的第一个App

    创建一个android工程项目 我们使用android提供的集成开发工具(Eclipse+ADT)来创建android工程项目.用这个集成开发工具创建项目,简单,方便,快捷,且自动帮助我们生成基础的文 ...

  4. Mysql面试的技术名词

    面试的技术名词 面试一般会遇到一些名词,其实可能自己都知道其中的道理,但是因为没了解过,当时心里就一句WC,然后弱弱答一句:不好意思这个我只是听过,具体还没了解过: 回表 覆盖索引 最左前缀匹配 索引 ...

  5. 【转】sql用逗号连接多张表对应哪个join?

    逗号连接查询(用where连接条件): select order.id, order.orderdate,employee.id,employee.name from order,employee w ...

  6. 动态生成Person类的对象 代码参考

    #include <iostream> #include <string> using namespace std; class Person { private: strin ...

  7. ActiveMQ 反序列化漏洞(CVE-2015-5254)复现

    1.运行漏洞环境 sudo docker-compose up -d 环境运行后,将监听61616和8161两个端口.其中61616是工作端口,消息在这个端口进行传递:8161是Web管理页面端口.访 ...

  8. 50个SQL语句(MySQL版) 问题七

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  9. Netty源码学习系列之1-NioEventLoopGroup的初始化

    前言 NioEventLoopGroup是netty对Reactor线程组这个抽象概念的具体实现,其内部维护了一个EventExecutor数组,而NioEventLoop就是EventExecuto ...

  10. 【Hadoop高级】Hadoop HA、hdfs安全模式

    Hadoop HA Safemode(安全模式) During start up the NameNode loads the file system state from the fsimage a ...