为什么.gif图像只显示一些第一帧(Windows Phone)

我之前的源代码问题在这里: 如何在WP 7中使用gif动画图像

我在我的动画gif中使用http://imagetools.codeplex.com/我有24帧,但它只解码了一些第一帧,所以我一次又一次地看到一些(可能是两帧)的重复动画

对于一些gif文件,这个解码器工作,对于其他一些 – 不这样做。

我下载了该项目的源代码,发现代码无法正常工作。 它位于ImageTools.IO.Gif\GifDecoder.cs文件中, Decode方法:

 int nextFlag = stream.ReadByte(); while (nextFlag != 0) { //... } 

但是这个gif在中间包含0字节,所以解码器停在它不应该的地方。 解决方案是将此标志更改为-1,以便我们确保将gif图像读取到最后:

 int nextFlag = stream.ReadByte(); while (nextFlag != -1) { } 

因此,您需要重新编译此库,或者以源代码的forms而不是以dll的forms包含ImageTools.IO.Gif项目。

您可以在此处下载示例项目: http : //dl.dropbox.com/u/8047386/StackOverflow/TestGif.zip

但我不确定是否可以依赖此修复程序。 无论如何,我在codeplex打开了这个问题。