我是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();
我该如何解决?
答案 0 :(得分:1)
您正在将图像缩放500%。这真的是你想要的吗?此操作后图像或第二张图像可能太大。
0到1之间的值会减小缩放对象的宽度;大于1的值会增加缩放对象的宽度。值为1表示对象未在x方向上缩放。
负值会水平翻转缩放的对象。介于0和-1之间的值会翻转缩放对象并减小其宽度。小于-1的值会翻转对象并增加其宽度。值为-1会翻转缩放的对象,但不会更改其水平大小。