PictureDecoder.DecodeJpeg,OutOfMemoryException

时间:2013-12-15 13:25:02

标签: c# windows-phone-8

在应用程序的过程中定期弹出异常:System.OutOfMemoryException

内存溢出有什么问题?

谢谢!

private void ShowImage(IsolatedStorageFile appStorage, string Path)
    {
        // Читаем изображения из изолированного хранилища
        using (IsolatedStorageFileStream Stream = appStorage.OpenFile(Path, FileMode.Open))
        {
            // Формируем элемент Image
            Image Img = new Image();
            Img.Height = 160;
            Img.Width = 250;
            Img.Margin = new Thickness(10);

            // Читаем поток и заносим результат в WriteableBitmap
           >>> WriteableBitmap wb = PictureDecoder.DecodeJpeg(Stream); <<<// Exception: System.OutOfMemoryException 
            Img.Source = wb;
            Stream.Close();

            // Выводим изображения из директории Up на страницу
            PhotoPanel.Children.Add(Img);

            // Чистим мусор
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以使用DecodeJpeg的重载限制处理的大小,如下所示:

WriteableBitmap wb = PictureDecoder.DecodeJpeg(Stream, Img.Width , Img.Height );