さまざまな方法で変更する必要がある 400 以上の画像のセットを使用しています。最後に、ほぼ 1500 枚の画像が必要です。それらがすべて512 * 512pxであるとしましょう
最初にこの変更を適用して 1500 個の画像を取得し、このすべての画像をリストに保持して、アプリケーションですばやくアクセスできるようにしたい (読み込み時間なしで画像を切り替えられるようにしたい)
変更を適用するには、WriteableBitmapEx を使用します。
それを変更できるようにするには、この画像を WriteableBitmap にレンダリングする必要があり、OutOfMemoryException が発生します。
これが私がやっていることの簡単な例です:
List<WriteableBitmap> myList = new List<WriteableBitmap>();
foreach (var image in mySetOfImages) // iterating on my set of 400+ images
{
WriteableBitmap source = image.RenderImage().As<WriteableBitmap>();
WriteableBitmap dest1 = BitmapFactory.New(512, 512);
WriteableBitmap dest2 = BitmapFactory.New(512, 512);
[...] // Some lines modifying dest1 and dest2 using source
myList.Add(dest1);
myList.Add(dest2);
}
私はこの例外についてよく読みました。追加できることを読みました
GC.Collect();
私の「foreach」内にあるかもしれませんが、これはロードに時間がかかると思います。
私が読んだことは、私が正しい方法で行っていないのではないか、別の方法を考えるべきだとも思いました. だからここに投稿しているのですが、何かヒントはありますか?