在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)
答案 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。