1. import os
  2. from PIL import Image, ImageSequence
  3.  
  4. def parseGIF(gifname):
  5. # 将gif解析为图片
  6. # 读取GIF
  7. im = Image.open(gifname)
  8. # GIF图片流的迭代器
  9. iter = ImageSequence.Iterator(im)
  10. # 获取文件名
  11. file_name = gifname.split(".")[0]
  12. index = 1
  13. # 判断目录是否存在
  14. pic_dirct = "imgs/{0}".format(file_name)
  15. mkdirlambda = lambda x: os.makedirs(
  16. x) if not os.path.exists(x) else True # 目录是否存在,不存在则创建
  17. mkdirlambda(pic_dirct)
  18. # 遍历图片流的每一帧
  19. for frame in iter:
  20. print("image %d: mode %s, size %s" % (index, frame.mode, frame.size))
  21. frame.save("imgs/%s/frame%d.png" % (file_name, index))
  22. index += 1
  23.  
  24. # frame0 = frames[0]
  25. # frame0.show()
  26.  
  27. # 把GIF拆分为图片流
  28. imgs = [frame.copy() for frame in ImageSequence.Iterator(im)]
  29. # 把图片流重新成成GIF动图
  30. imgs[0].save('out.gif', save_all=True, append_images=imgs[1:])
  31.  
  32. # 图片流反序
  33. imgs.reverse()
  34. # 将反序后的所有帧图像保存下来
  35. imgs[0].save('./reverse_out.gif', save_all=True, append_images=imgs[1:])
  36.  
  37. if __name__ == "__main__":
  38. parseGIF("03.gif")
  39.  
  40. 附件地址: https://files.cnblogs.com/files/fly-kaka/GIF%E5%8F%8D%E5%90%91%E8%A7%A3%E6%9E%90%E4%B8%BA%E5%9B%BE%E7%89%87.zip

python 将GIF拆分成图片方法的更多相关文章

  1. 【PyMuPDF和pdf2image】Python将PDF转成图片

    前言: 在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python ...

  2. IOS-将长文字转化成图片方法

    我们在看微博时,会看到一些长图片上的显示文章,现在就介绍下如何实现.分析下还是很简单的,总结如下:1.计算文字区域的高 2.利用UIGraphics图形上下文方法来实现 3.验证方法:UIImageW ...

  3. Python - 将iterable拆分成等长的数据块

    说明 看文档发现一个有趣的应用(利用zip函数) 例如[1, 2, 3, 4] --> [(1, 2), (3, 4)],拆分成长度为2的数据块 Code >>> a = [1 ...

  4. byte[] 转成图片方法

    /// <summary> /// ImageData 的摘要说明 /// </summary> public class ImageData : IHttpHandler { ...

  5. opencv 将视频分解成图片和使用本地图片合成视频

    代码如下: // cvTest.cpp : Defines the entry point for the console application. #include "stdafx.h&q ...

  6. python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别

    1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABE ...

  7. 用JavaScript将Canvas内容转化成图片的方法

    上周我们花了半天时间开发下一个准备放进Mozilla Marketplace的应用.有一个应用现在非常的火热,那就是Instagram,Facebook花了100万美元收购了它.我们也想有100万美元 ...

  8. [Python] 将视频转成ASCII符号形式、生成GIF图片

    一.简要说明 简述:本文主要展示将视频转成ASCII符号形式展示出来,带音频. 运行环境:Win10/Python3.5. 主要模块: PIL.numpy.shutil. [PIL]: 图像处理 [n ...

  9. python实现读取并显示图片的两种方法

    https://www.cnblogs.com/lantingg/p/9259840.html 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片. ...

随机推荐

  1. LeetCode_121. Best Time to Buy and Sell Stock

    121. Best Time to Buy and Sell Stock Easy Say you have an array for which the ith element is the pri ...

  2. shuffle 打乱一维数组

    <?php $arr = range(,); print_r($arr); echo '<br />'; shuffle($arr); print_r($arr); ?> Ar ...

  3. 获取src 内容

    获取(代码): ].src; // 测试无效 修改(代码): 1 $("#img").attr('src',path);

  4. using 关键字有两个主要用途

    转自:https://www.jianshu.com/p/5357dc4efcf8 using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型. (二) ...

  5. react 组装table列表带分页

    2.组装编辑界面 /** * Created by hldev on 17-6-14. */ import React, {Component} from "react"; imp ...

  6. Python编译出现错误SyntaxError: Non-ASCII character '\xe7' 时解决方法

    转载个解决办法:https://blog.csdn.net/wangchao701123/article/details/57084244 转自https://blog.csdn.net/jim742 ...

  7. 域账号修改后,导致vs中的git连接失败

    域账号修改后,导致vs中的git连接失败, fatal: Authentication failed for https://blog.csdn.net/qq_34665539/article/det ...

  8. python之bytes和string相互转换

    来源:https://www.cnblogs.com/skiler/p/6687337.html 1.bytes主要是给计算机看的,string主要是给人看的 2.中间有个桥梁就是编码规则,现在大趋势 ...

  9. 网络编程(socket).WinSocket_recvfrom出错,GetLastError()为10054

    1.在写 我的Qt598(vs2017)x64版本的 shadowsocks程序时遇到的. 具体问题情况 大概是这样:QUdpSocket(假设是sktA) connect接收函数,sktA侦听 端口 ...

  10. 最新 阿里java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.阿里等10家互联网公司的校招Offer,因为某些自身原因最终选择了阿里.6.7月主要是做系统复习.项目复盘.LeetCode ...