我正在尝试使用 WriteableBitmap 对象,因为我需要它来旋转图像并将图像保存到我的应用程序的独立存储中。
问题是,它使用了太多内存,最终导致内存不足异常。
这是我的App的内存使用情况的图片,这里有图片链接以便更好地查看。
这是我使用 WriteableBitmap 的一个实例:
WriteableBitmap picture = new WriteableBitmap(PictureCanvas, null);
using (var memoryStream = new MemoryStream())
{
picture.SaveJpeg(memoryStream, picture.PixelWidth, picture.PixelHeight, 0, 100);
using (var myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream(Globals.OVERLAY_FILE_NAME, FileMode.Create, myIsolatedStorage))
{
fileStream.Write(memoryStream.ToArray(), 0, memoryStream.ToArray().Length);
fileStream.Close();
}
}
}
picture = picture.Crop(0, 0, 1, 1);
我尝试裁剪图像以使其占用更少的内存,但这无济于事。
我在这里使用 WriteableBitmap 扩展库,在首页它提到了一个 Dispose() 方法,但我在我的应用程序中没有看到它。
如果有人可以请告诉我如何解决这个问题或指出我可以找到可能的解决方案的地方,那就太棒了!