WPF-BitmapImage 內存釋放

一般用法

//這樣創建不會自動釋放
var bitmap = new BitmapImage(new Uri(imageFilePath));

可行方法

Bitmap bitmap = new Bitmap();
using(var stream = new FileStream(...))
{
    bitmap.BeginInit();
    bitmap.CacheOption = BitmapCacheOption.OnLoad;
    bitmap.StreamSource = stream;
    bitmap.EndInit();
}

bitmap.Freeze();
image.Source = bitmap;

注意 本人在使用的過程中,用在ImageBrush的ImageSoure,此時如果不要需要這個ImageBrush時需要設置ImageBrush.ImageSource = null,否則該內存也無法釋放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章