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从本地资源获得未知像素大小的图片,如何将其对象设为指定大小

关于WPF中Image控件不释放内存的问题

线程死锁

WPF绑定BitMapImage

如何通过 WPF 中的 SaveFileDialog 保存 BitmapImage?

WPF BitmapImage DownloadCompleted 事件从未引发