我想定期更新Flip Tile Back Image,以便添加ScheduledAgent
Project并尝试将图像保存在isolated Share Folder
内的固定路径中。但是当我从BitmapImage
设置Image Stream
来源时,我的内存异常会出现异常。
这是代码
using (var isoFile = IsolatedStorageFile.GetUserStoreForApplication())
{
const string filePath = @"Shared\ShellContent\FlipBackImage.jpg";
var filename = "Image.png";
var stream = !isoFile.FileExists(filename) ? null : isoFile.OpenFile(filename, FileMode.Open, FileAccess.Read);
if (stream != null)
{
if (isoFile.FileExists(filePath))
{
isoFile.DeleteFile(filePath);
}
Debug.WriteLine("currentMemory"+DeviceStatus.ApplicationCurrentMemoryUsage);
var bi = new BitmapImage();
bi.CreateOptions = BitmapCreateOptions.None;
bi.SetSource(stream); //out of memory exception getting here
var wbm=new WriteableBitmap(bi);
using (var streamFront = isoFile.OpenFile(filePath, FileMode.Create))
{
wbm.SaveJpeg(streamFront, 691, 336, 0, 80);
}
Deployment.Current.Dispatcher.BeginInvoke(() => Utils.DisposeImage(wbm));
}
每次尝试设置Image
Resolution 1500x1100
时都会收到异常,即使它的大小只是29 kb
。
如何处理?
答案 0 :(得分:0)
iso.Close();
一旦图像流读完就写完