GIF动图过大?Python轻轻松松压缩GIF图大小

文章目录

    • 安装gifsicle
    • import subprocess
    • 压缩报错处理
    • 推荐阅读

我们在图片制作过程种,如果产生的GIF动图过大,需要要压缩 GIF 文件的大小,可以使用一些外部工具或python库来优化 GIF 文件的帧和颜色,以达到GIF动图变小的目的。

下面是一种使用Python中的GIF优化库gifsicle来压缩 GIF 文件的方法:

安装gifsicle

安装gifsicle的官方网址:https://www.lcdf.org/gifsicle/
适用于Windows的下载链接:https://eternallybored.org/misc/gifsicle/
GIF动图过大?Python轻轻松松压缩GIF图大小_第1张图片

import subprocess

在Python中使用subprocess库来运行gifsicle来压缩 GIF 文件1

import subprocess
# 指定输入和输出文件名

input_file = "snowfall.gif"
output_file = "compressed_snowfall.gif"

# 使用 gifsicle 压缩 GIF 文件
subprocess.run(["gifsicle", "-O3", "--lossy=80", input_file, "-o", output_file])

print(f"压缩后的 GIF 文件保存为: {output_file}")

“-03 ”标志用于启用最高级别的优化;
“–lossy=80” 用于设置损失程度为80(你可以根据需要调整此值)。
然后,将输入文件和输出文件的名称传递给gifsicle,并运行它来压缩 GIF 文件。

实际案例:
在这里插入图片描述
成功将snowfall由160M压缩不到2M大小。效果很显著。

压缩报错处理

在对GIF动图处理过程种,可能遇到如下报错:

gifsicle: warning: too many colors, using local colormaps
  (You may want to try '--colors 256'.)

针对这个报错,需要修改代码,增加 --colors 参数并设置为 256,这允许 GIF 使用最多 256 种不同的颜色,以更好地表示图像。

也可以根据你的需求调整 --colors 参数的值。

import subprocess

# 指定输入和输出文件名
input_file = "snowfall.gif"
output_file = "compressed_snowfall.gif"

# 使用 gifsicle 压缩 GIF 文件
subprocess.run(["gifsicle", "-O3", "--lossy=80","--colors", "256",input_file, "-o", output_file])

print(f"压缩后的 GIF 文件保存为: {output_file}")

当我们在使用 gifsicle 时遇到 “too many colors” 的警告时,这表示 GIF 图像包含了超过默认颜色数的颜色。默认情况下,gifsicle 尝试使用局部颜色映射(local colormaps)来减小文件大小,但当颜色数量太多时,它会给出警告建议使用更多颜色。依照建议使用 “–colors”,“256” 参数来增加颜色数量,这允许使用更多的颜色来编码图像。

推荐阅读

  • Python实时采集Windows CPU\MEMORY\HDD使用率
  • Python 连接 SQL 数据库 -pyodbc
  • 微软宣布在 Excel 中使用 Python:结合了 Python 的强大功能和 Excel 的灵活性。
  • 送给小朋友的python代码游戏,猜字谜

  1. 需要将下载的gifsicle和python文件相同的目录下 ↩︎

你可能感兴趣的:(编程开发,python,开发语言,GIF)