我使用Adobe Flash CS3創建了一個簡單的動畫GIF,GIF包含200幀(1280x786)。當我加載它被顯示在C#WPF應用程序時,程序獲取一個OutOfMemoryException上下面的代碼在C#中加載動畫GIF#
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例如,程序加載罰款。請注意以下幾種情況:
- 1280×768與200幀:異常
- 550x400以200幀:加載罰款
- 具有1280×768 50幀:加載罰款
問題出在哪裏?如何獲得如此大的動畫GIF加載沒有例外?
我希望這個SO後可以幫助你。 http://stackoverflow.com/questions/210922/how-do-i-get-an-animated-gif-to-work-in-wpf – Nitesh
這可能是最好的假設例外是準確的。在32位進程的危險區域消耗786 MB內存肯定很深。你需要一個64位的流程才能實現。將您的EXE項目的平臺目標設置更改爲AnyCPU。 64位版本的Windows是必需的。 –
我已經有一個64位系統(英特爾酷睿i7,6GB內存):| – Abdalla