我正在制作一个 C#/WPF/Windows 8 App Store 应用程序,我正在尝试加载一些 PNG/JPG 以在视图中显示它们。这些图像的分辨率都相当高,但文件大小通常只有 200k 左右。问题是,当我使用 BitmapImage 类(这是我能找到的唯一一个)加载它们时,使用的总内存会上升到 100 兆。据我所知,它采用 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);
}
}