WPF BitmapImage 占用资源无法释放无法删除问题
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF BitmapImage 占用资源无法释放无法删除问题相关的知识,希望对你有一定的参考价值。
原文:WPF BitmapImage 占用资源无法释放、无法删除问题使用Image控件显示图片后,虽然自己释放了图片资源,Image.Source =null 了一下,但是图片实际没有释放。
解决方案:修改加载方式~
public static BitmapImage GetImage(string imagePath)
{
BitmapImage bitmap = new BitmapImage();
if (File.Exists(imagePath))
{
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
using (Stream ms = new MemoryStream(File.ReadAllBytes(imagePath)))
{
bitmap.StreamSource = ms;
bitmap.EndInit();
bitmap.Freeze();
}
}
return bitmap;
}
//使用时直接通过调用此方法获得Image后立马释放掉资源
ImageBrush berriesBrush = new ImageBrush();
berriesBrush.ImageSource = GetImage(path); //path为图片的路径
this.Background = berriesBrush;
以上是关于WPF BitmapImage 占用资源无法释放无法删除问题的主要内容,如果未能解决你的问题,请参考以下文章
C# wpf BitmapImage从本地资源获得未知像素大小的图片,如何将其对象设为指定大小