您现在的位置是:群英 > 开发技术 > Python语言
使用python怎样压缩GIF图片?方法是什么?
Admin发表于 2021-12-06 18:14:131476 次浏览

    这篇文章给大家分享的是使用python实现压缩GIF图片的方法,下文有很详细的实现示例及代码,对大家学习和工作都有一定的参考价值,因此分享给大家了解看看,感兴趣的朋友接下来一起跟随小编学习一下吧。

    1. 背景:

        最近写了一篇CSDN博客需要上传gif图,发现大小超过了5M,无法上传。

        文件大小:

        本想自己找个免费的压缩工具,结果下载下来的工具不是钓鱼工具就是流氓软件,还有的在线压缩工具说是免费,等你download的时候说是要付费,总之一大堆坑。

    2.寻找解决办法

        由于上面坑爹的经过,于是我自己试着找找python压缩gif的办法。

        2.1可行性分析

        根据我的理解是可行的,因为gif的文件是根据一帧帧静态图片根据时序拼接起来的,如果使用python将gif文件分解成一帧帧静态图片的话,再将静态图片对象进行压缩之后再合并,理论上是可以减小文件大小。

    3.问题分解

        3.1将gif文件分解

        需要找到一个可以将gif文件分解成静态图像的库,了解到PIL的ImageSequence可以将gif分解成一帧帧。

        3.1.1示例代码

    from PIL import Image, ImageSequence
    filename = "2018-0.gif"
    gif = Image.open(filename)
    index = 0
    for frame in ImageSequence.Iterator(gif):
    	#frame.convert('RGB')
    	frame.save(str(index)+'.png')#pass
    	index += 1
    

        3.1.2 效果图

    4.代码优化

        代码很简单

    import imageio
    from PIL import Image, ImageSequence
    
    def compressGif(filename):
        gif = Image.open(filename)
        if not gif.is_animated:
            return False
        imageio.mimsave('compress-'+filename, [frame.convert('RGB') for frame in ImageSequence.Iterator(gif)], 
    duration = gif.info['duration']/2000) 
    
    fileList = ["2018-0.gif","2018-1.gif","2018-2.gif","2018-3.gif","2018-4.gif"]
    for filename in fileList:
        compressGif(filename)
    
    

    5.做成一个通用工具

        5.1创建一个虚拟环境

        mkvirtualenv GIF

        5.2虚拟环境安装必要库

        pip install imageio

        pip install pyinstaller 打包必备的库

        5.3打包

        pyinstaller -F compress.py

        5.4把.gif文件放到compress.exe文件夹下

        5.5双击.exe查看打包效果

        5.6压缩后的图片效果

        可以看到压缩之后图片依然很清晰

        压缩率: 5356/1504 = 3.56

        这个压缩率已经非常高了

    总结

        以上就是使用python实现压缩GIF图片的方法的介绍,本文只是提供了一种实现思路,代码仅供参考,需要的朋友可以了解看看,希望对大家学习python有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。

    文本转载自脚本之家

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    标签: python图片压缩
    相关信息推荐
    2021-12-10 18:49:27 
    摘要:这篇文章主要给大家分享的是PHP执行原理及流程,以及构架思想,Apache和php的关系等等内容,本文对大家深入了解和学习PHP有一定的帮助,希望大家阅读完这篇有收获,那么接下来就跟随小编一起来学习一下吧。
    2021-12-23 19:15:33 
    摘要:这篇文章我们来了解C++ 文件查找遍历的相关内容,这里使用的是用 _findfirst 和 _findnext 查找文件,那么具体怎样实现呢?下文有很详细的介绍,有需要的朋友可以了解看看,接下来就跟随小编来一起学习一下吧!
    2022-10-08 17:52:24 
    摘要:这里所说的 PHP 运行模式, 其实指的是 SAPI (Server Application Programming Interface,服务端应用编程端口 )。SAPI 为 PHP 提供了一个和外部通信的接口...
    云活动
    推荐内容
    热门关键词
    热门信息
    群英网络助力开启安全的云计算之旅
    立即注册,领取新人大礼包
    • 联系我们
    • 24小时售后:4006784567
    • 24小时TEL :0668-2555666
    • 售前咨询TEL:400-678-4567

    • 官方微信

      官方微信
    Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
    增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    微信公众号
    返回顶部
    返回顶部 返回顶部