【发布时间】:2017-06-07 09:45:30
【问题描述】:
我用这个函数创建了一个图像:
private BitmapImage LoadImage(byte[] imageData)
{
if (imageData == null || imageData.Length == 0) return null;
var image = new BitmapImage();
using (var mem = new MemoryStream(imageData))
{
mem.Position = 0;
image.BeginInit();
image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
image.CacheOption = BitmapCacheOption.OnLoad;
image.UriSource = null;
image.StreamSource = mem;
image.EndInit();
}
image.Freeze();
return image;
}
当我尝试处理它时:
myImage.StreamSource.Close();
myImage.StreamSource.Dispose();
// Throws an exception since its frozen to read only
//myImage.StreamSource = null;
GC.Collect();
垃圾收集器不会收集它。可能是因为我无法将其设置为null。
我怎样才能处理这个BitmapImage,使它不会在内存中存活更长的时间?
【问题讨论】:
标签: c# wpf image bitmapimage