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的方式將文件讀成流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM