使用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() 方法来将映像复制到新位图Bitmap对象。然后Bitmap和Graphics就可以释放了。 (待修改)
原文地址:http://www.cnblogs.com/netlyf/p/3781630.html