问题描述
我一直在尝试寻找使用 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
。