python gif压缩_基于python压缩gif图片大小。
使用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图片大小。相关推荐
- python 英语分词_基于Python NLTK库进行英文文本预处理
文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...
- python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例
这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近我们商城上架的应用越来越丰富了. ...
- cv2 python 获取斑马线_基于python的opencv图像处理实现对斑马线的检测示例
基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人 ...
- python词频作图_基于Python的词频分析与云图生成
近期,学校对呼和浩特市第二中学学生特质进行了调查,具体题目为"用关键词描述一下二中学生的特质(尽量在20字以内)". 为了更好的展示调查结果,我们基于Python的jieba库和w ...
- 基于python爬虫数据处理_基于Python爬虫的校园数据获取
苏艺航 徐海蛟 何佳蕾 杨振宇 王佳鹏 摘要:随着移动时代的到来,只适配了电脑网页.性能羸弱的校园教务系统,已经不能满足学生们的移动查询需求.为此,设计了一种基于网络爬虫的高实用性查询系統.它首先通过 ...
- 基于python的网站_基于Python的网站爬虫应用研究
基于 Python 的网站爬虫应用研究 陈清 [期刊名称] <通讯世界> [年 ( 卷 ), 期] 2020(027)001 [摘要] 如何于海量的互联网网站中获取有用资源信息 , 对网站 ...
- python点名代码_基于python tkinter的点名小程序功能的实例代码
基于python tkinter的点名小程序功能的实例代码,花名册,次数,窗口,未找到,初始化 基于python tkinter的点名小程序功能的实例代码 易采站长站,站长之家为您整理了基于pytho ...
- python traceback 丢失_基于python traceback实现异常的获取与处理
这篇文章主要介绍了基于python traceback实现异常的获取与处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.traceback.p ...
- python 赋值方法_基于Python List的赋值方法
Python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...
- python 量化交易_基于Python的量化交易工具清单(上)
-- Python量化工具清单 -- 以下内容来源于Wilson Freitas的Github项目"Awesome Quant".原文中包含了丰富的语言类别,但是后续介绍主要针对P ...
最新文章
- centos6.9安装oracle10,2018-10-09 centos6.9 安装cx_Oracle
- Vision Transformers 大有可为!
- cuda win10安装
- python学到什么程度可以做兼职-Python学到什么程度才可以去找工作?掌握这4点足够了!...
- tomcat 访问去掉项目名 直接访问 localhsot
- css before after用法_CSS 伪元素基础知识:content 与counter 实用技巧(二)
- 雷军亲曝小米 10 四大猛料!
- 测试开发必备技能-Jmeter二次开发
- shell 封装方法_反弹shell逃逸基于execve的命令监控(上)
- matlab 200阶乘怎么表示,matlab阶乘怎么表示
- windows下的gitbub使用入门
- chromecast 协议_如何设置新的Chromecast
- Web前端技术课后作业
- 阿里云Oss搭建私人图床
- w ndows正常启动,正常运行WNDOWS所需的文件已被替换成无法识别的版本.要保持系统的稳定,必须还原这些文件的原有版本.doc...
- 20款华丽的几何形状字体【免费下载】
- SpringBoot-端点详解
- anaconda3 复制or克隆环境
- 【科研小工具】输入任意坐标即可显示相应脑区详细解剖信息
- 小白用户怎么才能让电脑换IP?