本鱼拟成立工作室承接项目开发/软件定制/云设施开发运维/办公设备技术支持等,如您有相关需求,欢迎来询 | ::博客文章推荐::

.NET中的 Image.FromFile 方法会锁住文件的解决方法

: DOT.NET 木魚 2465℃ 0评论

在 CNBLOGS 注册了这么久,一直就是一个默默无闻的观看者.
今天终于来发了第一贴.

就..就..就发新手区里面! -____________-#
——————————————————————-

.NET中的 Image.FromFile  一旦使用后,对应的文件在一直调用 其生成的Image对象被Disponse前都不会被解除锁定,这就造成了一个问题,就是在这个图形被解锁前无法对图像进行操作(比如删除,修改等操作).

在以前用的过程中曾用过下面三个方法解决问题.

 

第一种方法,在要进行文件操作前将Image对象销毁.
PictureBox picbox;
if(picbox.Image!=null)picbox.Image.Disponse();

第二种方法,就是在加载图像的时候用一种方法替代:

System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
g.DrawImage(img, 0, 0);
g.Flush();
g.Dispose();
img.Dispose();

//下面开始使用bmp作为显示的Image对象

一直以来用的是上面的第二种方法.今天实验出来突然有种方法更加简单:

System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();
//下面开始使用bmp作为显示的Image对象

呃.就这样了.

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址