Gdiplus提供的Bitmap支持读取并显示GIF文件.
但是对于部分GIF图片可能会出现帧间间隔为0的情况,为此,在此情况下默认时间间隔为100ms, 不知道是不是我没有找对,有建议欢迎反馈! (测试在GIMP中同样会出现帧间间隔为0,我想应是有个默认值的吧,100ms效果还可以接受,暂且借用)
具体代码见上。
主要思路是读取GIF文件, 通过pSrc->GetFrameCount()获取GIF的帧数, 通过 pSrc->SelectActiveFrame()来设置当前图片为GIF中的第X帧, 最后通过sleep() 和 Timer() 来实现时间延迟和当前帧更新.
上述代码中:
Bitmap* pSrc = ::new Bitmap(filename);
同样最后需要
::delete pSrc;