C#如何释放已经加载的图片 (转)
生活随笔
收集整理的這篇文章主要介紹了
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就可以釋放了?;蛘哂檬褂肍ileStream的方式將文件讀成流。
?
轉載于:https://www.cnblogs.com/enjoyprogram/p/5370605.html
總結
以上是生活随笔為你收集整理的C#如何释放已经加载的图片 (转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net超过字数限制用省略号...
- 下一篇: 开发中 常用 js 记录(一)