如何加载动画 GIF 并获取 Pygame 中的所有单个帧?

use*_*444 5 python pygame image gif pygame-surface

首先,对不起,如果这是重复的。我找到的答案似乎无关紧要,但也许我正在使用错误的关键字进行搜索。我想做的是获取动画 GIF 并将其拆分为帧列表。基本上,是这样的:

frames = []
for frame in split_animated_gif("some_animated_gif.gif"):
    frames.append(frame)
Run Code Online (Sandbox Code Playgroud)

其中 split_animated_gif 返回一个表面列表,每个表面都是 GIF 的一个帧,按顺序排列。感谢您的帮助。

编辑:经过更多的窥探,我找到了一段代码,它成功地为我在 pygame 中显示了动画 GIF。它可以在https://github.com/piantado/kelpy/blob/master/kelpy/GIFImage.py找到。不过,非常感谢您的帮助。

Roo*_*ope 5

Pygame 本身不支持动画 gif,文档中有说明。所以你必须

1)在加载精灵或图像时使用其他一些代码/库来分割 gif。您只需通过谷歌搜索“python split gif”或其他内容即可找到这些内容。例如Python:将 GIF 帧转换为 PNG

2) 如果您自己创建了 gif,只需再次逐帧导出精灵即可

无论哪种方式,您都必须手动完成动画部分。通过谷歌搜索“pygame 动画”,您将找到大量教程。例如,来自少数图像的动画精灵