为什么.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打开了这个问题。