画像を回転させ、アプリの分離ストレージに画像を保存するために必要なため、WriteableBitmap オブジェクトを使用しようとしています。
問題は、大量のメモリを使用するため、最終的にメモリ不足の例外が発生することです。
これは、私のアプリのメモリ使用量の写真です。見やすいように、ここに写真のリンクがあります。
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() メソッドについて言及していますが、アプリには表示されません。
誰かがこの問題を回避する方法を教えてくれたり、可能な解決策を見つけることができる場所を教えてくれたりしたら、それは素晴らしいことです!