(WPF) Как извлечь кадры из многокадровых изображений (tif, gif) - PullRequest
1 голос
/ 04 июня 2009

Я пытаюсь извлечь изображения thumnail каждого кадра в анимированном GIF. Следующий код показывает, как я пытаюсь это сделать, но свойство thumbnail экземпляра BitmapFrame всегда имеет значение null.

Я что-то не так делаю?


GifBitmapDecoder bd1 = new GifBitmapDecoder(
new Uri(thisImage.Path), BitmapCreateOptions.None, BitmapCacheOption.Default);
if (bd1.CheckAccess())
{
    if (bd1.Frames.Count > 1)
    {
        foreach (var frame in bd1.Frames)
        {
            BitmapSource frameThmb = frame.Thumbnail;
            if (frameThmb != null)
                Console.WriteLine(frameThmb.Width);
        }
    }
}

1 Ответ

1 голос
/ 05 июня 2009

Нет доступных миниатюр для GIF-файлов.

Из MSDN Libary: "Ни один из собственных форматов не поддерживает глобальные миниатюры. Объединенная группа экспертов по фотографии (JPEG), формат файла изображений с тегами (TIFF) и Microsoft Windows Media Photo поддерживают миниатюры на уровне кадра, к которым можно получить доступ с помощью свойства Thumbnail «

Либо используйте TIFF (как вы упомянули в заголовке вопроса), либо вам придется создавать миниатюры самостоятельно (что не должно быть слишком сложно?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...