首页 > 其他 > 详细

C#如何释放已经加载的图片

时间:2014-06-12 22:41:52      阅读:450      评论:0      收藏:0      [点我收藏+]

使用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就可以释放了。 (待修改)

C#如何释放已经加载的图片,布布扣,bubuko.com

C#如何释放已经加载的图片

原文:http://www.cnblogs.com/netlyf/p/3781630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!