python中的Imageio:压缩gif

时间:2017-03-31 12:21:11

标签: python python-imageio

imageio中使用python进行压缩时,有没有办法压缩gif?我用大约200张图片制作gif,最终文件是30MB。我更喜欢它是5-10 MB。无论如何,图像是单色的,所以应该可以压缩。是否有可以使用的工具或使用imageio指定它?

以下是制作gif的代码:

import os
import imageio as io
import re
#############################################################
#key to sort the file_names in order
numbers = re.compile(r'(\d+)')
def numericalSort(value):
    parts = numbers.split(value)
    parts[1::2] = map(int, parts[1::2])
    return parts
############################################################
file_names = sorted((fn for fn in os.listdir('.') if fn.startswith('surface')), key = numericalSort)

#gif writer
with io.get_writer('python_growth.gif', mode='I', duration=0.1) as writer:
    for filename in file_names:
        image = io.imread(filename)
        writer.append_data(image)

1 个答案:

答案 0 :(得分:1)

面对同样的问题,我为gifsicle库创建了一个名为pygifsicle的包装,并且可以按以下方式使用它:

from pygifsicle import optimize
optimize("path_to_my_gif.gif")

与pip上的所有其他软件包一样,可以通过运行以下命令进行安装:

pip install pygifsicle

imageio documentation中提供了使用此库的完整示例。

在安装pygifsicle的同时,如果您在MacOS上,还将使用Brew自动安装gifsicle库。对于其他系统,将提供一个分步指南,该指南基本上只是要求通过apt-get在Debian / Ubuntu上安装该库(因为在软件包安装程序中不要求sudo似乎是一个好主意) :

sudo apt-get install gifsicle

或者在Windows上,您可以install one of the available ports