本次学习将GIF拆分成一张张图片用python实现的过程。
具体实现结果如下:


具体实现代码如下:

import os
from PIL import Imagedef analyseImage(path):'''Pre-process pass over the image to determine the mode (full or additive).Necessary as assessing single frames isn't reliable. Need to know the modebefore processing all frames.预处理通过图像来确定模式(全模式或加法模式)。必要的,因为评估单个框架是不可靠的。需要知道模式在处理所有帧之前。'''im = Image.open(path)results = {'size': im.size,'mode': 'full',}try:while True:if im.tile:tile = im.tile[0]update_region = tile[1]update_region_dimensions = update_region[2:]if update_region_dimensions != im.size:results['mode'] = 'partial'breakim.seek(im.tell() + 1)except EOFError:passreturn resultsdef processImage(path):'''Iterate the GIF, extracting each frame.'''mode = analyseImage(path)['mode']im = Image.open(path)i = 0p = im.getpalette()last_frame = im.convert('RGBA')try:while True:print"saving %s (%s) frame %d, %s %s" % (path, mode, i, im.size, im.tile)'''If the GIF uses local colour tables, each frame will have its own palette.If not, we need to apply the global palette to the new frame.如果GIF使用本地颜色表,每个框架都有自己的调色板。如果没有,我们需要将全局调色板应用到新框架上。'''if not im.getpalette():im.putpalette(p)new_frame = Image.new('RGBA', im.size)'''Is this file a "partial"-mode GIF where frames update a region of a different size to the entire image?If so, we need to construct the new frame by pasting it on top of the preceding frames.这个文件是一个“部分”模式的GIF,其中帧更新一个不同大小的区域到整个图像?如果是这样,我们需要通过将新框架粘贴到前面的框架上来构建新框架。'''if mode == 'partial':new_frame.paste(last_frame)new_frame.paste(im, (0, 0), im.convert('RGBA'))new_frame.save('%s-%d.png' % (''.join(os.path.basename(path).split('.')[:-1]), i), 'PNG')i += 1last_frame = new_frameim.seek(im.tell() + 1)except EOFError:passdef main():processImage('kobe.gif')if __name__ == "__main__":main()

《学习日记之Python》——GIF分解成图片相关推荐

  1. 用python把视频分解成图片

    # 用python把视频分解成图片 import cv2 # 读取一段视频 cap=cv2.VideoCapture("d:/1.mp4") # 用作计数 i=0 # 循环判断视频 ...

  2. 如何把视频分解成图片?怎么逐帧提取视频中的图片?

    在工作中遇到需要将一段视频逐帧分解成图片该怎么做?小编在这这里给大家分享一款视频提取图片(https://www.yasuoshipin.com工具,一起来了解一下吧. 在所有功能中,选择视频提取图片 ...

  3. 动图怎么分解成图片?Gif图片如何在线分解

    Gif动图就是由一帧一帧的静态画面合成的.那么,当我们想要将gif动图分解成静图的时候要怎么拆分gif图呢?给大家,推荐一款简单实用的gif分解(https://www.gif.cn/giffenji ...

  4. Python—SVD分解压缩图片

    奇异值分解压缩图片 对任意的A∈Crm×n有SVD分解,A=U(ΣOOO)VH其中U,V为酉矩阵,U=(u1,..,um)∈Cmm×mVH=(v1T..vnT)∈Cnn×nΣ=diag(σ1,..,σ ...

  5. python偶数分解成两个素数之和_偶数 2021218918 ,有多少种方法分解成两个素数之和?...

    对于上面问题2N=2021218918,满足"p+q=2N"的素数对(p,q)的个数真值为3289208个.下面对这个值进行理论探求分析,请大家不吝赐教! 下面先来进行基于小素数因 ...

  6. 前端学习日记3-如何设置网页背景图片

    方法1: 在html页面body中直接设置background 并将资源图片放置的目录写在双引号中间 <body background="image/A.jpeg">  ...

  7. 用OpenCV将视频分解成单帧图片,图片合成视频

    本文做的是基于opencv将视频帧转成图片输出,由于一个视频包含的帧数过多,经常我们并不是需要它的全部帧转成图片,因此我们希望可以设置每隔多少帧再转一次图片(本文设置为30帧),若有人需求是只需要前多 ...

  8. python将视频分解为图片+将图片合成为视频

    系列文章目录 文章目录 系列文章目录 前言 一.python视频拆分+图片合成(源码一) 1.python视频拆分 1.python图片合成 二.python视频拆分+图片合成(源码二) 三.pyth ...

  9. python在线学习pdf_扣丁学堂Python在线学习之将pdf转成图片的方法

    扣丁学堂Python在线学习之将pdf转成图片的方法 2018-05-23 11:29:01 1266浏览 Python将pdf转成图片的方法,不论是参加 本篇文章记录如何使用python将pdf文件 ...

  10. 机器学习笔记(二)矩阵和线性代数 例:用Python实现SVD分解进行图片压缩

    线性代数基本只要是理工科,都是必修的一门课.当时学习的时候总是有一个疑惑,这个东西到底是干嘛用的?为什么数学家发明出这么一套方法呢,感觉除了解方程没发现有什么大用啊!但随着学习的深入,慢慢发现矩阵的应 ...

最新文章

  1. 原创|一文读懂主成分分析(PCA)
  2. 你知道现在的.net是什么样的吗,一张图告诉你
  3. Lunar New Year and Cross Counting
  4. 20145233《网络对抗》Exp8 Web基础
  5. 详述 IntelliJ IDEA 插件的安装及使用方法
  6. Redisson 实现分布式锁
  7. javastring转long的方法_被JDK坑的没商量?来试试这些方法吧
  8. 【病毒分析】——熊猫烧香 专杀工具C源码
  9. python断言使用方法
  10. CPU框架~ 什么是X86 ?~什么是ARM ? 华为鲲鹏云是什么?
  11. python填充nan_Python Pandas Dataframe填充NaN值
  12. 【Day4.4】堵车去暹罗商圈吃午餐
  13. Python实现头条自动发文章,赚点广告费!
  14. c++串口配置及DCB结构体
  15. class.forName
  16. 推荐 5 款私藏的优质 Chrome 插件
  17. 清者自清!国际泳联为孙杨“药检风波”盖棺定论
  18. Java各种加密和解密方式
  19. 手机屏幕比例秘密:16:9还是15:9
  20. VS2015 通过Shockwave Flash Object 播放flash

热门文章

  1. 同义替换:哈工大同义词词林扩展版
  2. 联想昭阳E46A不能上网
  3. Qt 之 QQ系统表情(三)
  4. PreparedStatement 不定参数处理
  5. 如何安装Chrome OS系统
  6. 安全测试简历项目经验怎么写?
  7. 掘金15W沸点简单分析(一)
  8. 逆波兰表达式(Java)
  9. 小米蓝牙耳机持续白灯_小米蓝牙耳机不能自动串联问题
  10. PHP集成环境Visual-AMP