Intereting Posts
XmlSerializer: сериализация свойства classа как атрибута пользовательского подэлемента Добавить номер страницы, конвертирующий HTML в PDF Печать элемента Winform / visual Как создать и заполнить словарь с помощью конфигурации xml Unity? Почему я не могу изменить Type.Delimiter с помощью Reflection? Удаленный сервер возвратил ошибку: (405) Метод не разрешен. Служба WCF REST Сортировка строкового списка с числовыми значениями Что добавляет имя и пространство имен в DataContract? если ListBox содержит, не добавляйте Как получить доступ к индексу в объекте IEnumerable в C #? Подчеркивание действует как разделитель C # RTF Box autofac’s Func для решения указанной службы Расчет Fast Exp: можно повысить точность, не теряя при этом слишком высокой производительности? Самый быстрый способ найти дополнение к двум коллекциям в C # Очень странная ситуация с CrystalReport и / или Visual studio 2010 Я не знаю, может быть .Net Framework

Почему .gif изображение показывает только некоторые первые кадры (Windows Phone)

мой предыдущий вопрос с исходным кодом здесь: Как использовать gif анимированное изображение в WP 7

Я использую http://imagetools.codeplex.com/ в моем анимированном gif. У меня 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) { } 

Поэтому вам нужно либо перекомпилировать эту библиотеку, либо включить проект ImageTools.IO.Gif в виде исходного кода, а не в виде dll.

Вы можете скачать образец проекта здесь: http://dl.dropbox.com/u/8047386/StackOverflow/TestGif.zip

Но я не уверен, что на это можно положиться. В любом случае я открыл проблему в кодексе .