如何使用 Python 将单个 GIF 图像转换为一系列 BMP 图像

问题描述

我一直在尝试寻找使用 python 将给定 GIF 图像转换为一系列 BMP 文件的最佳方法。 我已经找到了一些库,如 Wand 和 ImageMagic,但仍然没有找到一个很好的例子来实现这一点。

解决方法

使用 Python 图像处理库 - Pillow 读取动画 GIF 文件

from PIL import Image
from PIL import GifImagePlugin

imageObject = Image.open("./xmas.gif")

print(imageObject.is_animated)
print(imageObject.n_frames)

显示加载的动画 GIF 文件中的单个帧

for frame in range(0,imageObject.n_frames):
    imageObject.seek(frame)
    imageObject.show()
,
from wand.image import Image
with Image(filename="animation.gif") as img:
    img.coalesce()
    img.save(filename="frame%02d.bmp)

使用 Image.coalesce() 重建优化帧,并使用 ImageMagick 的“Percent Escapes”格式(%02d)将图像帧作为单独的 BMP 文件写入。

,

在 Linux 附带的 Imagemagick 中,可以为 Windows 或 Mac OSX 安装,

convert image.gif -coalese image.bmp

结果将是 image-0.bmp,image-1.bmp ...

Imagemagick 6 使用 convert,Imagemagick 7 使用 convert 替换 magick