《学习日记之Python》——GIF分解成图片
本次学习将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分解成图片相关推荐
- 用python把视频分解成图片
# 用python把视频分解成图片 import cv2 # 读取一段视频 cap=cv2.VideoCapture("d:/1.mp4") # 用作计数 i=0 # 循环判断视频 ...
- 如何把视频分解成图片?怎么逐帧提取视频中的图片?
在工作中遇到需要将一段视频逐帧分解成图片该怎么做?小编在这这里给大家分享一款视频提取图片(https://www.yasuoshipin.com工具,一起来了解一下吧. 在所有功能中,选择视频提取图片 ...
- 动图怎么分解成图片?Gif图片如何在线分解
Gif动图就是由一帧一帧的静态画面合成的.那么,当我们想要将gif动图分解成静图的时候要怎么拆分gif图呢?给大家,推荐一款简单实用的gif分解(https://www.gif.cn/giffenji ...
- Python—SVD分解压缩图片
奇异值分解压缩图片 对任意的A∈Crm×n有SVD分解,A=U(ΣOOO)VH其中U,V为酉矩阵,U=(u1,..,um)∈Cmm×mVH=(v1T..vnT)∈Cnn×nΣ=diag(σ1,..,σ ...
- python偶数分解成两个素数之和_偶数 2021218918 ,有多少种方法分解成两个素数之和?...
对于上面问题2N=2021218918,满足"p+q=2N"的素数对(p,q)的个数真值为3289208个.下面对这个值进行理论探求分析,请大家不吝赐教! 下面先来进行基于小素数因 ...
- 前端学习日记3-如何设置网页背景图片
方法1: 在html页面body中直接设置background 并将资源图片放置的目录写在双引号中间 <body background="image/A.jpeg"> ...
- 用OpenCV将视频分解成单帧图片,图片合成视频
本文做的是基于opencv将视频帧转成图片输出,由于一个视频包含的帧数过多,经常我们并不是需要它的全部帧转成图片,因此我们希望可以设置每隔多少帧再转一次图片(本文设置为30帧),若有人需求是只需要前多 ...
- python将视频分解为图片+将图片合成为视频
系列文章目录 文章目录 系列文章目录 前言 一.python视频拆分+图片合成(源码一) 1.python视频拆分 1.python图片合成 二.python视频拆分+图片合成(源码二) 三.pyth ...
- python在线学习pdf_扣丁学堂Python在线学习之将pdf转成图片的方法
扣丁学堂Python在线学习之将pdf转成图片的方法 2018-05-23 11:29:01 1266浏览 Python将pdf转成图片的方法,不论是参加 本篇文章记录如何使用python将pdf文件 ...
- 机器学习笔记(二)矩阵和线性代数 例:用Python实现SVD分解进行图片压缩
线性代数基本只要是理工科,都是必修的一门课.当时学习的时候总是有一个疑惑,这个东西到底是干嘛用的?为什么数学家发明出这么一套方法呢,感觉除了解方程没发现有什么大用啊!但随着学习的深入,慢慢发现矩阵的应 ...
最新文章
- 原创|一文读懂主成分分析(PCA)
- 你知道现在的.net是什么样的吗,一张图告诉你
- Lunar New Year and Cross Counting
- 20145233《网络对抗》Exp8 Web基础
- 详述 IntelliJ IDEA 插件的安装及使用方法
- Redisson 实现分布式锁
- javastring转long的方法_被JDK坑的没商量?来试试这些方法吧
- 【病毒分析】——熊猫烧香 专杀工具C源码
- python断言使用方法
- CPU框架~ 什么是X86 ?~什么是ARM ? 华为鲲鹏云是什么?
- python填充nan_Python Pandas Dataframe填充NaN值
- 【Day4.4】堵车去暹罗商圈吃午餐
- Python实现头条自动发文章,赚点广告费!
- c++串口配置及DCB结构体
- class.forName
- 推荐 5 款私藏的优质 Chrome 插件
- 清者自清!国际泳联为孙杨“药检风波”盖棺定论
- Java各种加密和解密方式
- 手机屏幕比例秘密:16:9还是15:9
- VS2015 通过Shockwave Flash Object 播放flash