WPF BitmapImage内存使用率
|
我正在尝试将图像的字节数组转换为BitmapImage以绑定到按钮。
public static BitmapImage GetBitmapImageFromByteArray(byte[] p_Image)
{
try
{
BitmapImage bmpImage;
if (p_Image != null)
{
using (MemoryStream msStream = new MemoryStream(p_Image))
{
msStream.Position = 0;
bmpImage = GetBitmapImageFromStream(msStream);
//msStream.Close();
return bmpImage;
}
}
}
catch
{
}
return null;
}
GetBitmapImageFromStream看起来像这样:
public static BitmapImage GetBitmapImageFromStream(MemoryStream msImage)
{
try
{
if (msImage == null) return null;
BitmapImage bmpImg = new BitmapImage();
msImage.Position = 0;
bmpImg.BeginInit();
bmpImg.CacheOption = BitmapCacheOption.OnLoad;
bmpImg.StreamSource = msImage;
bmpImg.EndInit();
return bmpImg;
}
catch
{
return null;
}
}
在bmpImg.EndInit()上,内存出现此峰值。而且我的界面上有很多按钮,这会引起问题。为什么会发生这种情况,我该如何解决或如何恢复内存?
谢谢。
没有找到相关结果
已邀请:
2 个回复
辩谷变充
不会收集所有复制到流中的数据,但内存中将有多个副本。
联课
P.s.也许那里会有内存泄漏。 http://code.logos.com/blog/2008/04/memory_leak_with_bitmapimage_and_memorystream.html