C++SDL2|如何在SDL2中播放GIF

C++ SDL2 | How do I play a GIF in SDL2?

本文关键字:播放 GIF SDL2 C++SDL2      更新时间:2023-10-16

我知道这个话题已经被提起了,但我永远无法从页面中得到任何东西。我回答的一条线索是,我需要把GIF分成每一帧,但怎么做呢?如果能提供一些代码,我们将不胜感激。非常感谢。

使用GIFLIB读取gif动画。GIFLIB提供了一个方便的"slurp"函数,可以将整个文件读取到结构中,然后可以很容易地从中检索帧。这已经有一段时间了,但IIRC在从一个gif框架构建SDL_Texture时,需要从调色板中查找每个像素的颜色。由于gif没有一个固定的帧速率,您还需要存储每帧的单独延迟时间。阅读本文了解gif文件格式的详细描述,它将帮助您理解GIFLIB。

也就是说,我建议不要在过场(和大多数其他事情)中使用笨重的GIF格式,因为它非常占用空间,而且你可能无法很好地同步音频。我建议四处寻找一种播放"真实"视频格式的方法——看看这个项目。