内存不足缩放图像时出现异常

时间:2014-12-21 09:47:51

标签: c# windows-phone-8 memory-management windows-phone-8.1

我是Windows手机开发的新手。我正在缩放图像,第一次缩放图像,但是当我选择另一张图片并在图像上实现缩放时,我得到了一个 System.OutOfMemoryException。在这一行

ScaleTransform t = new ScaleTransform() { ScaleX = 5, ScaleY = 5 };

我正在尝试缩放图片的代码。

Image uiElement = new Image() { Source = blurImage };
ScaleTransform t = new ScaleTransform() { ScaleX = 5, ScaleY = 5 };

WriteableBitmap writeableBitmap = new WriteableBitmap(uiElement, t);

using (MemoryStream ms = new MemoryStream())
{
    writeableBitmap.SaveJpeg(ms, (int)blurImage.PixelWidth, (int)blurImage.PixelHeight, 0, 100);                      
    bmp.SetSource(ms);
    imgholder.Source = null;
    imgholder.Source = bmp;
    ms.Dispose();
}
t = null;
writeableBitmap = null;
uiElement.Source = null;
uiElement = null;
GC.Collect();

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您正在将图像缩放500%。这真的是你想要的吗?此操作后图像或第二张图像可能太大。

  

0到1之间的值会减小缩放对象的宽度;大于1的值会增加缩放对象的宽度。值为1表示对象未在x方向上缩放。

     

负值会水平翻转缩放的对象。介于0和-1之间的值会翻转缩放对象并减小其宽度。小于-1的值会翻转对象并增加其宽度。值为-1会翻转缩放的对象,但不会更改其水平大小。

ScaleTransform Class