我使用 Adobe Flash CS3 创建了一个简单的动画 GIF,该 GIF 包含 200 帧 (1280x786)。当我加载它以在 C# WPF 应用程序中显示时,程序在以下代码中获得 OutofMemoryException
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?