Я создал простой анимированный GIF с использованием Adobe Flash CS3, GIF содержит 200 кадров (1280x786). Когда я загружаю его будет отображаться в приложении C# WPF, программа получает OutOfMemoryException на следующий кодЗагрузка анимированного GIF в C#
private void set_gif_Image(String path)
{
if (File.Exists(path))
{
var bitmapimage = new BitmapImage();
bitmapimage.BeginInit();
bitmapimage.UriSource = new Uri(path);
bitmapimage.EndInit();
ImageBehavior.SetAnimatedSource(img_preview, bitmapimage);//Exception Here
}
else
{
var bitmapimage = new BitmapImage();
bitmapimage.BeginInit();
bitmapimage.UriSource = new Uri("C:\\testing_files\\ERROR.gif");
bitmapimage.EndInit();
ImageBehavior.SetAnimatedSource(img_preview, bitmapimage);
}
Но если я загружаю 20 кадров GIF, например, программа загружает нормально. Обратите внимание на следующие ситуации:
- 1280x768 с 200 кадров: Исключение
- 550x400 с 200 кадров: Нагрузки мелкие
- 1280x768 50 кадров: Нагрузки мелкие
Где проблема? как получить такой большой анимированный GIF, загруженный без исключения?
Я надеюсь, что это ТАК пост может помочь вам. http://stackoverflow.com/questions/210922/how-do-i-get-an-animated-gif-to-work-in-wpf – Nitesh
Возможно, лучше всего предположить, что исключение является точным. Потребление 786 мегабайт памяти, безусловно, находится в опасной зоне для 32-битного процесса. Вам понадобится 64-битный процесс, чтобы продвинуться вперед. Измените целевой параметр платформы для своего проекта EXE на AnyCPU. Требуется 64-разрядная версия Windows. –
У меня уже есть 64-битная система (ядро i7, 6 ГБ оперативной памяти): | – Abdalla