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, , );

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();

方法四:

fs = New System.IO.FileStream("C:\WINNT\Web\Wallpaper\Fly Away.jpg",
IO.FileMode.Open, IO.FileAccess.Read)
PictureBox1.Image = System.Drawing.Image.FromStream(fs)
fs.Close() Image类的FromFile方法打开文件と后没有关闭,导致文件锁定,无法进行删除、移动等操作。   该而使用FromStream方法,代码如下:   //读取文件流
FileStream fileStream = new FileStream(iconPath, FileMode.Open, FileAccess.Read); int byteLength = (int)fileStream.Length;
byte[] fileBytes = new byte[byteLength];
fileStream.Read(fileBytes, , byteLength); //文件流关閉,文件解除锁定
fileStream.Close(); Pictrue.Image = Image.FromStream(new MemoryStream(fileBytes)); 因为FromStream方法参数应用的流必须一直保持打开,故代码中有一个文件流向MemeoryStream流的转换,从而可以关闭文件流,保持MemoryStream流的打开状态。

最新文章

  1. JQuery 筛选器
  2. flask01 安装及初涉
  3. 格式化日期的js(正则魅力)
  4. Jmeter正则表达式提取器的使用方法(转)
  5. phread_con_wait和pthread_mutex_lock实现的生产者消费者模型
  6. js 计算某年某周日期范围
  7. javascript 手机号抽奖
  8. LeetCode OJ 297. Serialize and Deserialize Binary Tree
  9. Unexpected end of input 和 Unexpected token var 和 Unexpected token ;
  10. C# Split用法
  11. 软件工程(GZSD2015) 第二次作业文档模板
  12. mongodb使用问题记录
  13. jsp九个内置对象、四个域对象及Servlet的三大域对象
  14. docker常用命令汇总
  15. Linux宝塔软件安装
  16. linux arm的高端内存映射
  17. input file获取选择图片的本地路径和base64路径
  18. Codeforces 832C - Strange Radiation
  19. Emacs中编辑保存makefile文件时会错误地将TAB转成空格的解决方法
  20. Node.js 常用 API

热门文章

  1. java util - 时间工具包 PrettyTime
  2. GTF/GFF
  3. CodeForces:#448 div2 B. XK Segments
  4. MAX(数论)
  5. HDU 3333 Turing Tree 莫队算法
  6. activity切换交互动画
  7. daily algorithm 判断链表是否有环
  8. loj2537 「PKUWC 2018」Minimax
  9. 安装 Windows Server 2012 Active Directory 只读域控制器 (RODC)(级别 200)
  10. [网站公告]又拍云API故障造成图片无法上传(已恢复)