发布时间:2021-11-17 09:46:07 人气:252 作者:多测师
如何使用Python对GIF进行压缩
一、背景
前天在给微信公众号上传文章的时候,文章里面有一个图片是gif的,在上传的过程中报错了,说是图片超大了。搜索之后发现图片需要小于5m。
那么问题就转化为怎么把当前的gif给缩减到5m以内本着有轮子用轮子,没有轮子造轮子的精神,网上搜索一番。
发现一些现象
1、压缩要不就是需要会员才能下载;
2、要不免费的只能压缩5m以下的。
考虑到能动手不花钱的本性,我觉得要自己搞一下。
知识背景:
众所周知,gif图就是由若干组图片组成的一种文件格式,有多张有一定差异的图片连续播放,间隔时间较小,欺骗了我们的眼睛和大脑,然后我们以为是一个完全连续的。其实就是一个类似快速翻书的操作。
二、方案选型
方案一
因为gif是有多种图片做的,那我们就考虑把图片减少一些,比如说原来是100张是10m,我给缩减到10张,那体积可不就要缩小到1m左右了吗?当然,为了用户看起来不是那么卡顿,我就拍脑袋给缩减到20张吧,即只有原来的1/5。
方案二
如果缩减的图片太多导致gif看起来卡顿的话,我们可以考虑不缩减图片的张数,但是我们可以压缩图片。
方案三
最后的都是重要的,如果前面两个都无法满足的话,那就可以考虑把他们进行叠加。先减张数,再压缩拆分的图片。
三、项目落实
整体流程如下:
1、将源gif读入内存
2、将gif拆分成png,并保存
2.1、获取要存储的地址
2.2、清空并移除存储png的文件夹
2.3、创建存储png的文件夹
2.4、将gif拆分成png,并保存
3、按照一定的间隔读取2中的png,并生成gif
3.1、获取所有的png
3.2、将png合并成gif
四、全部的代码
五、结尾
作为一个追求高效的程序员,我就做一个能满足我需求的方案,即方案一。至于方案二和方案三,有兴趣的朋友可以举一反三。
以上内容为大家介绍了如何使用Python对GIF进行压缩,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/