C#如何釋放已經加載的圖片 (轉)

使用Image.FromFile取磁盤上的圖片時,這個方法會鎖定圖片文件,並且會致使內存佔用增大, 有幾種方法解決:
一:將Image類轉換成Bitmap類
System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();
而後使用 bmp做爲PictureBox的圖片源
二:從流中讀取
FileStream fileStream = new FileStream("文件名", FileMode.Open, FileAccess.Read);
pictureBox1.Image = Image.FromStream(fileStream);
fileStream.Close();
fileStream.Dispose(); 

緣由:一個圖像對象從一個文件構造時該文件仍保留鎖定對象的生存期。因此關鍵是要使用 Graphics.DrawImage()方法或Drawing.Bitmap()方法來將映像複製到新位圖Bitmap對象,而後Bitmap和Graphics就能夠釋放了。或者用使用FileStream的方式將文件讀成流。
相關文章
相關標籤/搜索