Все коды, которые я нашел, дают мне тот же результат: кучу точных перспективных фреймов. Значение: он дает мне список первого кадра, повторяемого X раз. В .gif, котор я использую имеет 30 кадров, поэтому я получаю 30 времен первого кадра, вместо 30 различных кадров.Как разбить .gif в фреймах?
public static Image[] GetFramesFromAnimatedGIF(Image IMG)
{
List<Image> IMGs = new List<Image>();
int Length = IMG.GetFrameCount(FrameDimension.Time);
for (int i = 0; i < Length; i++)
{
IMG.SelectActiveFrame(FrameDimension.Time, i);
IMGs.Add(IMG);
}
return IMGs.ToArray();
}
Что мне не хватает? ВСЕ коды, которые я просматривал, дают первый кадр, повторяемый X раз.
Это то, что должно выглядеть (с использованием веб-страницы). Посмотрите, как каждый кадр отличается?
Это то, что это выглядит для меня после сохранения каждого кадра внутри этого массива на папке (а куча одинаковых кадров):
PS: Да, это .gif изображение, которое я использую.
Обновление: Проблема заключается в том, что я читаю файл в OpenFileDialog, поскольку он работает, если я передаю свой .gif по коду. Итак, как мне читать анимированный gif в OpenFileDialong? Спасибо.
Это может быть полезно: http://stackoverflow.com/questions/951786/wpf-how-to-extract-frames-from-multiframe-images-tif-gif?rq = 1 – aisa
@aisa Спасибо, но теперь выяснилось, что если я передам свой .gif по коду, он будет работать. Так что проблема в OpenFileDialog, так как он читает мой анимированный .gif как простой .gif. – soulblazer
Вы пытались использовать ['GifBitmapEncoder'] (https://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapencoder%28v=vs.90%29.aspx) из WPF? – dbc