C#/ WPF / Windows 8 App Storeアプリを作成していて、いくつかのPNG/JPGを読み込んで表示しようとしています。画像はすべて適度に高解像度ですが、ファイルサイズは通常約200k程度です。問題は、BitmapImageクラス(私が見つけることができる唯一のクラス)を使用してそれらをロードすると、使用されるメモリの合計が数百メガに跳ね上がることです。私の知る限り、png / jpbを取得してビットマップ画像に変換すると、メモリ使用量が大幅に増加します。これまでのところ、これを回避する方法は見つかりませんでしたが、簡単な解決策があるはずです。
私が見逃している本当に明白な何かがありますか?
以下の私のコード
private async Task TestFunction(IReadOnlyList<StorageFile> files)
{
var images = new ObservableCollection<Image>();
imagePanel.ItemsSource = coverImages;
foreach (var file in files)
{
var bitmap = new BitmapImage();
var item = await file.OpenAsync(FileAccessMode.Read);
bitmap.SetSource(item);
var image = new Image();
image.Source = bitmap;
image.Height = 200;
images.Add(image);
}
}