Image.FromStream与Image.FromFile使用区别
2024-08-25 21:33:02
将一个图片加载并显示在picturebox上,一般情况下得到预期的结果,然而对于同一个filepath,
若连续两次调用下面的语句系统将会报错(如用户多次选择加载同一张图片使用Image.FromFile配合PictureBox来加载并显示图片,
但使用Image.FromFile会出现题,就是加载完文件后不自动释放,
导致再次操作被关联文件时候出现类似“文件xxx正由另一进程使用,因此该进程无法访问该文件。”的错误,因此当要对一个文件进行多次操作时,
最好不要使用Image.FromFile 而使用Image.FromStream。
1、使用Image.FromFile
方法如下:
pictureBox1.Image = Image.FromFile(filepath);
pictureBox1.Image = Image.FromFile(filepath);
或者pictureBox1.Image = Image.FromStream(new MemoryStream(File.ReadAllBytes(filepath)))
2、使用Image.FromStream
方法如下:
using (FileStream image = new FileStream(filepath, FileMode.Open))
{
pictureBox1.Image = Image.FromStream(image);
}
{
pictureBox1.Image = Image.FromStream(image);
}
采用Image.FromStream代替Image.FromFile可以解决上述问题
注意:Image.FromStream加载jpg,png等格式的图片可以,但是如果是gif的动态图就会有问题,
如下:
解决办法:就是在使用流的时候,不进行释放或者关闭即可,
如下
FileStream image = new FileStream(filepath, FileMode.Open);
pictureBox1.Image = Image.FromStream(image);
最新文章
- Windows操作系统下tomcat安装版图文教程
- 重复数据分析的三个常用语法distinct, group by, partition by
- .net类库里ListView的一个BUG
- 10套免费的 Photoshop UI 元素以及 PSD 素材
- DataRow[] 转为数组
- 5.查找最小的k个元素(数组)
- Stand-up meeting
- 多维数组遍历PHP
- SGU 150.Mr. Beetle II
- 基于bootstrap的轮播广告页,带图片和文字
- ACPI电源管理中的S0 S1 S2 S3 S4 S5
- 体验安装金蝶K/3 Wise 13.0(图像)
- JAVA调用c/c++代码
- YoMail 邮箱客户端的社会化之路,起于邮箱,不止于邮件
- Python Click 学习笔记(转)
- matplotlib柱状图-【老鱼学matplotlib】
- 微信小程序返回上一页的方法并传参
- linux上搭建solr(用jetty部署)
- B+树原理及mysql的索引分析
- LeetCode 24 Swap Nodes in Pairs (交换相邻节点)
热门文章
- BZOJ 4184 shallot 线性基+分治
- HDU 4725 The Shortest Path in Nya Graph(最短路径)(2013 ACM/ICPC Asia Regional Online ―― Warmup2)
- 团队作业4——第一次项目冲刺(Alpha版本)-第一篇
- PAT 1030 完美数列
- vue里的this
- Java中动态代理实现原理深究
- chrome &; dark theme
- npm基本使用
- Python数据分析(二)pandas缺失值处理
- 洛谷 P3477 [POI2008]PER-Permutation 解题报告