在前面做过一个Gif图片合成的小工具,老朋友应该有所印象。但是,近段时间有人反映合成了的Gif图片该如何进行分解呢?

于是,再次了解了一下PIL模块的Image,果真是可以做动图分解的。

1、模块安装

使用PIL库,实际上是来源于pillow库的兼容,因此需要安装pillow非标准库。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

2、模块导入

安装好pillow非标准库之后,将PIL模块中Image图像处理模块导入到代码块中即可。

from PIL import Image

同时,将os系统操作模块导入进来用于对文件夹或文件来进行操作。

import os

导入一个日志模块loguru来记录日志打印,在之前的文章中也介绍过,由于这个模块导入即用比较方便我们这里直接使用它来打印日志。

from loguru import logger

3、分解动图

这里,我们的目的是将一个Gif图片直接分解成png格式的多个图片。首先对单张动态图片完成分解。

创建一个函数sptGif,来实现对单张Gif图片分解的过程。

def spt_gif_one(gif_path, tar_dir, format="png"):'''分解单张Gif图片:param gif_path: Gif 图片路径:param tar_dir: 分解后的存储路径:param format: 分解成的图片格式,默认为PNG格式的图片:return:'''gif_file_name = os.path.basename(gif_path)logger.info("当前gif动态图片路径:{}".format(gif_file_name))base_name = str(gif_file_name).split('.')[0]image = Image.open(gif_path)for n in range(image.n_frames):gen_file_name = base_name + '_' + str(n)image.seek(n)image_new = Image.new("RGBA", image.size)image_new.paste(image)image_new.save(os.path.join(tar_dir, "%s.%s" % (gen_file_name, format)))logger.info('文件名称:{}已生成!'.format(gen_file_name))

4、批量分解

若是在gif图片比较到的情况下,则可以选择批量分解的方式来进行分解。

一般选择将所有需要分解的gif图片直接放在统一的文件夹下面来完成批量分解。实现思路是通过遍历该文件夹下面的所有的gif图片挨个对其完成分解。

def spt_gif_batch(gif_dir, tar_dir):'''批量分解Gif动态图片:param gif_dir::param tar_dir::return:'''if os.path.isdir(gif_dir):files = os.listdir(gif_dir)for file in files:gif_path = os.path.join(gif_dir, file)if os.path.splitext(gif_path)[1] in '.gif':spt_gif_one(gif_path, tar_dir)else:logger.info('{} 文件格式检查不正确!'.format(gif_path))else:logger.info('{} 文件夹不存在!'.format(gif_dir))

5、生成效果

我调用批量生成的函数spt_gif_batch进行了效果测试。

从Google上面直接下载一张Gif的动态图片,原图是这样的效果。

随后,对其进行了批量分解的执行,os.getcwd()表示生成的图片放在当前的路径下面。

spt_gif_batch(os.getcwd(), os.getcwd())

控制台这时也按照预期打印出了日志,日志还是比较漂亮的,哈哈~

完成后,总共生成了25张png格式的图片,我下面跳了其中的几张展示出来。

Gif图片分解(支持批量)相关推荐

  1. C#PDF转图片,支持批量转,支持PDF文件,BASE64转换为图片文件,BASE64,支持合并PDF为一张图

    大家好呀,我是一名Java开发工程师,最近公司项目遇到PDF转图片超时问题,经过排查,PDF文件大概在2-3M左右,使用pdfbox转换大概7-8秒(并且存在转换空白的问题),使用icepdf更长,经 ...

  2. WEBP格式转换成jpg图片【支持批量】

    WebP是一种新型的图片格式,由Google公司开发,它可以在保持高质量的同时,大幅减少图片的文件大小,从而提高页面加载速度.WebP格式的图片通常比JPEG格式的图片小30%到50%. 使用小左图工 ...

  3. jQuery图片批量上传插件源码,支持批量上传、预览、删除、放大,可配置上传数量、上传大小、追加方式,含详细使用文档

    jQuery图片批量上传插件源码,支持批量上传.预览.删除.放大,可配置上传数量.上传大小.追加方式,含详细使用文档 程序包内含使用Demo 完整程序源代码:jQuery图片批量上传插件源码 上传前 ...

  4. 支持批量图片转文字的免费【OCR】文字识别工具,支持截图识别和批量图片识别,开源工具,速度快,准确度高,免费OCR,开源软件

    想必大家偶尔也有需要从图片中提取文字的需求,虽然现在手机上都自带了拍照识别功能,可是从电脑上的图片传到手机识别再将结果发回来实在是有点麻烦,尤其当图片数量较多时,更是费时费力,使用网页版工具又要面临收 ...

  5. java 图片批量上传_SpringBoot 2.0 图片上传(支持批量上传)

    SpringBoot 2.0提供了很多开箱即用的功能,这使得我们开发也更加的简单. 下面是一个图片上传的Demo(包含前端代码与后端的代码) Web端代码,支持批量上传 File upload upl ...

  6. 【图片编辑小软件, 在线文件转换器】FastStone Photo Resizer支持批量转换和批量重命名;免费快速在线转换器, 将pdf, 图像, 视频, 文档, 音频, 电子书及压缩等格式相互转换

    ▚ 01 FastStone Photo Resizer 1.1 简介 包含两大功能:批量转换.批量重命名 下载地址为:https://download.csdn.net/download/Xminy ...

  7. 批量文档处理软件推荐,同时处理 Word、Excel、PPT、PDF 等办公文件,支持批量格式转换、重命名和查找替换等

    概要:今天给大家带来的这款专门针对 Word.PPT.Excel.PDF 和记事本文本文件批量处理格式转换的软件--我的ABC软件工具箱.它集合了批量修改文件名称.批量修改文件内容.批量设置页眉页脚. ...

  8. 有哪些软件可以支持批量改尺寸?

    不知道你们会不会这种情况,比如从电脑上传图片到平台时,总会跳出图片尺寸过大不能上传的弹窗?唯一的解决办法只能是修改图片的尺寸大小,如果图片数量少,还能简单修改:图片数量多的话,我们一张一张去修改图片的 ...

  9. SpringBoot 搭建图片服务器 -- 支持上传下载和浏览

    前言: 项目需求:做一个图片服务器,用于存放业务部门做的宣传图片:支持上传.下载和在线查看. 一.需求分解 1. 上传.下载功能比较成熟,相对好实现: 2. 在线预览,需要分为单个文件预览和多个文件预 ...

  10. 支持批量转换的全能pdf转换器

    2014年最新发布的全能 PDF转换器是一款功能强大的PDF转换软件,软件全面支持多种格式的转换,能够使PDF文件格式转换为Word.Excel.PPT.TXT.图片.HTML等目前所有的主流格式,而 ...

最新文章

  1. 236. Lowest Common Ancestor of a Binary Tree
  2. django template语法
  3. MyEclipse2014安装svn插件
  4. cxgrid主从表 点+号展开_深入理解Redis主从复制
  5. 苹果核 - 页面动态化的基础 —— Tangram
  6. 深入理解ROS技术 【2】ROS下的模块详解(66-128)
  7. sql server2008如何修改mac地址_如何查看本机的MAC地址和IP地址?
  8. java 06_JAVA06 数组
  9. MOSS2007服务器端的安装与基本配置
  10. msf win10漏洞_【CVE20200796】漏洞复现
  11. 马里兰大学calce电池循环测试数据集_Keras-建立RNN(循环神经网络)
  12. vum安装mysql_CentOS7 yum方式安装MySQL5.7
  13. 苹果商城怎么调成中文_海豚加速器拳头账号中文注册下载-海豚加速器拳头账号注册下载 v2020...
  14. 远程唤醒、WOL、Magic_Packet
  15. php制作奥运五环颜色代表的洲,php趣味 - php 奥运五环
  16. 软件测试需要掌握哪些技术?
  17. unity android 不锁屏,Unity 实现Android不锁屏
  18. 负面营销 —— 是饮鸩止渴还是引爆流量
  19. [Excel函数] COUNT函数 | COUNTIF函数 | COUNTIFS函数
  20. 油溶性CdSeTe/ZnS量子点(以CdSeTe为核心,ZnS为壳层)

热门文章

  1. JS常见的兼容性问题汇总
  2. 词语相似度分析(《知网》、同义词词林、word2vec)
  3. c语言多功能日历菜单,C语言课程设计日历显示
  4. java 无锁并发_高并发情况下怎样尽量实现无锁编程
  5. 阿里云服务器搭建java环境详细步骤4
  6. web案例-3D旋转魔方和太极
  7. 2017年电子设计大赛(B题 滚球控制系统)赛后总结
  8. 感性电路电流计算_220和380V功率和电流计算知识。
  9. 普通有刷直流电机 H桥驱动
  10. archlinux for wps 字体缺失解决办法