使用PIL、imageio,将gif拆帧、压缩、合成。博主使用的是PyCharm工具。

1、安装imageio。File-->Settings-->Project:pro-->Project Interpreter-->点击 右上角的“+”搜索“imageio”安装。

2、提取gif每一帧并保存jpg格式,这里使用.convert('RGB')是因为frame.save不能保存png格式的图片,下同。

def getFrames(im):

#非动画

if False == im.is_animated :

return;

index = 1

for frame in ImageSequence.Iterator(im):

frame = frame.convert('RGB')

frame.save("g%d.jpg" % index)

compressImg('g%d.jpg'% index)

index = index + 1

return index

3、压缩图片。

def compressImg(ImgName):

im = Image.open(ImgName)

im.convert('RGB')

if max(im.size[0], im.size[1]) > 128:

im.thumbnail((128, 128))

im.save('f-'+ImgName, quality=50)

return 'OK'

4、将之前拆开的jpg文件合成gif。

def compressGif(ind,dur):

images = []

for i in range(1, ind):

images.append(imageio.imread('f-g%d.jpg' % i))

imageio.mimsave('c001.gif', images, duration = dur)

5、计算帧之间的频率,获取到的是毫秒,duration是秒,所以除以1000。

def calDuration(im):

return (im.info)['duration']/1000

6、移除图片。

def removeImg(ind):

for i in range(1,ind):

af = 'f-g' + str(i) + '.jpg'

f = 'g' + str(i) + '.jpg'

if os.path.exists(af):

os.remove(af)

if os.path.exists(f):

os.remove(f)

7、压缩之前的图片。

8、压缩之后的图片

python gif压缩_基于python压缩gif图片大小。相关推荐

  1. python 英语分词_基于Python NLTK库进行英文文本预处理

    文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...

  2. python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例

    这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近我们商城上架的应用越来越丰富了. ...

  3. cv2 python 获取斑马线_基于python的opencv图像处理实现对斑马线的检测示例

    基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人 ...

  4. python词频作图_基于Python的词频分析与云图生成

    近期,学校对呼和浩特市第二中学学生特质进行了调查,具体题目为"用关键词描述一下二中学生的特质(尽量在20字以内)". 为了更好的展示调查结果,我们基于Python的jieba库和w ...

  5. 基于python爬虫数据处理_基于Python爬虫的校园数据获取

    苏艺航 徐海蛟 何佳蕾 杨振宇 王佳鹏 摘要:随着移动时代的到来,只适配了电脑网页.性能羸弱的校园教务系统,已经不能满足学生们的移动查询需求.为此,设计了一种基于网络爬虫的高实用性查询系統.它首先通过 ...

  6. 基于python的网站_基于Python的网站爬虫应用研究

    基于 Python 的网站爬虫应用研究 陈清 [期刊名称] <通讯世界> [年 ( 卷 ), 期] 2020(027)001 [摘要] 如何于海量的互联网网站中获取有用资源信息 , 对网站 ...

  7. python点名代码_基于python tkinter的点名小程序功能的实例代码

    基于python tkinter的点名小程序功能的实例代码,花名册,次数,窗口,未找到,初始化 基于python tkinter的点名小程序功能的实例代码 易采站长站,站长之家为您整理了基于pytho ...

  8. python traceback 丢失_基于python traceback实现异常的获取与处理

    这篇文章主要介绍了基于python traceback实现异常的获取与处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.traceback.p ...

  9. python 赋值方法_基于Python List的赋值方法

    Python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...

  10. python 量化交易_基于Python的量化交易工具清单(上)

    -- Python量化工具清单 -- 以下内容来源于Wilson Freitas的Github项目"Awesome Quant".原文中包含了丰富的语言类别,但是后续介绍主要针对P ...

最新文章

  1. centos6.9安装oracle10,2018-10-09 centos6.9 安装cx_Oracle
  2. Vision Transformers 大有可为!
  3. cuda win10安装
  4. python学到什么程度可以做兼职-Python学到什么程度才可以去找工作?掌握这4点足够了!...
  5. tomcat 访问去掉项目名 直接访问 localhsot
  6. css before after用法_CSS 伪元素基础知识:content 与counter 实用技巧(二)
  7. 雷军亲曝小米 10 四大猛料!
  8. 测试开发必备技能-Jmeter二次开发
  9. shell 封装方法_反弹shell逃逸基于execve的命令监控(上)
  10. matlab 200阶乘怎么表示,matlab阶乘怎么表示
  11. windows下的gitbub使用入门
  12. chromecast 协议_如何设置新的Chromecast
  13. Web前端技术课后作业
  14. 阿里云Oss搭建私人图床
  15. w ndows正常启动,正常运行WNDOWS所需的文件已被替换成无法识别的版本.要保持系统的稳定,必须还原这些文件的原有版本.doc...
  16. 20款华丽的几何形状字体【免费下载】
  17. SpringBoot-端点详解
  18. anaconda3 复制or克隆环境
  19. 【科研小工具】输入任意坐标即可显示相应脑区详细解剖信息
  20. 小白用户怎么才能让电脑换IP?

热门文章

  1. ES-Checker
  2. oracle智能便携投影机,小火投影S10评测:让人眼前一亮的便携智能投影仪
  3. 【阅读分享】《暗时间》——放弃学习,寸步难行
  4. QTextBrowser显示html文件内容
  5. 跳频技术——学习总结(一)
  6. unity5.0安卓开发环境配置
  7. cdr添加节点快捷键_CorelDRAW常用热键|cdr快捷键大全
  8. 业务流程图的绘制流程分享(一)
  9. FreeSwitch笔记
  10. 在线答题-问卷调查小系统(附源码)