我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python如何对gif图压缩

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python如何对gif图压缩

这篇文章将为大家详细讲解有关python如何对gif图压缩,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    1. 背景:

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

    文件大小:

    python如何对gif图压缩

    python如何对gif图压缩

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

    2.寻找解决办法

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

    2.1可行性分析

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

    3.问题分解

    3.1将gif文件分解

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

    3.1.1示例代码
    from PIL import Image, ImageSequencefilename = "2018-0.gif"gif = Image.open(filename)index = 0for frame in ImageSequence.Iterator(gif):#frame.convert('RGB')frame.save(str(index)+'.png')#passindex += 1
    3.1.2 效果图

    python如何对gif图压缩

    4.代码优化

    代码很简单

    import imageiofrom PIL import Image, ImageSequencedef 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

    python如何对gif图压缩

    5.2虚拟环境安装必要库

    pip install imageio

    pip install pyinstaller 打包必备的库

    5.3打包

    pyinstaller -F compress.py

    python如何对gif图压缩

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

    python如何对gif图压缩

    5.5双击.exe查看打包效果

    python如何对gif图压缩

    5.6压缩后的图片效果

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

    压缩率: 5356/1504 = 3.56

    这个压缩率已经非常高了

    python如何对gif图压缩

    关于“python如何对gif图压缩”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    python如何对gif图压缩

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    python如何对gif图压缩

    这篇文章将为大家详细讲解有关python如何对gif图压缩,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 背景:最近写了一篇CSDN博客需要上传gif图,发现大小超过了5M,无法上传。文件大小:本想自
    2023-06-25

    如何使用Python实现图片压缩

    小编给大家分享一下如何使用Python实现图片压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、引言我们先来看一下,自拍照原图。图片大小是 53KB接下来,就
    2023-06-26

    如何在Android应用中对图片进行压缩

    本篇文章给大家分享的是有关如何在Android应用中对图片进行压缩,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、质量压缩法设置bitmap options属性,降低图片的质
    2023-05-31

    python如何实现压缩

    小编给大家分享一下python如何实现压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!压缩这个方法可以将布尔型的值去掉,例如(False,None,0,“”),
    2023-06-27

    Ubuntu如何批量压缩图片

    小编给大家分享一下Ubuntu如何批量压缩图片,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!以下就是Ubuntu压缩图片批量方法,这些Ubuntu压缩图片方法是我学了很久的心得,希望对大家有帮助。用DC拍出来的很多照片尺寸
    2023-06-16

    Android应用中如何对文件进行压缩与解压缩

    Android应用中如何对文件进行压缩与解压缩?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用场景当我们在应用的Assets目录中需要加入文件时,可以直接将源文件放入,但这样
    2023-05-31

    教你用Python压缩图片

    质量、速度、廉价,选择其中两个如果需要做图片识别那么必定需要大量的训练素材,我们通常使用爬虫来获取,python爬取bing图片,python爬取百度图片,但是怕取下来的图片大小不一,再进行训练之前必须进行裁剪和压缩,今天就来讲一讲图片压缩
    2023-01-31

    详解Python如何实现压缩与解压缩数据

    本篇教程详细介绍了Python中压缩和解压缩数据的技术。压缩:gzip模块:简单易用,适用于一般数据压缩。zlib模块:高级API,支持不同压缩级别和算法。第三方库:Brotli(高效无损)和LZ4(快速低内存)可提供更好的压缩率。解压缩:压缩模块通常也提供解压缩功能,如gzip.open()。文件对象和IOBuffer可用于直接解压缩压缩文件。通过使用这些工具,开发者可以优化数据存储和传输,满足不同的压缩和解压缩需求。
    详解Python如何实现压缩与解压缩数据
    2024-04-02

    怎么使用python对图片进行批量压缩

    本篇内容主要讲解“怎么使用python对图片进行批量压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python对图片进行批量压缩”吧!使用Python和Pillow模块压缩图片Pil
    2023-07-02

    VB.NET如何实现压缩和解压缩

    这篇文章主要为大家展示了“VB.NET如何实现压缩和解压缩”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现压缩和解压缩”这篇文章吧。VB.NET压缩和解压缩实现代码:Publi
    2023-06-17

    利用java怎么对图片进行压缩与缩放

    这篇文章将为大家详细讲解有关利用java怎么对图片进行压缩与缩放,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。压缩public static boolean compress(String
    2023-05-31

    Linux如何压缩

    这篇文章将为大家详细讲解有关Linux如何压缩,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这
    2023-06-16

    php压缩图片失败如何解决

    本文小编为大家详细介绍“php压缩图片失败如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php压缩图片失败如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,我尝试在代码中使用imagejpeg
    2023-07-05

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录