Eag*_*Eye 67 c# locking image winforms
我正在使用以下代码行Image从文件中打开:
pictureBox1.Image = Image.FromFile("test.png");
Run Code Online (Sandbox Code Playgroud)
我希望它能锁定文件,将图像加载到内存中,设置pictureBox1.Image为内存中的副本,然后释放锁定.在现实中,锁不会消失,直到我Dispose()的Image记忆.我无法释放我不再使用的硬盘上的文件锁,直到我删除了我正在使用的内存中的文件.
微软的网站在一篇带有C#标签的文章中提及它,但他们的解决方案是用visual basic编写的,这对我来说毫无用处.
总结:我想设置pictureBox1.Image存储的图像"test.png",然后让用户编辑或删除"test.png"或其他.
net*_*rog 82
流的方法不正确.
从上面的链接中纠正代码:
Image img;
using (var bmpTemp = new Bitmap("image_file_path"))
{
img = new Bitmap(bmpTemp);
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*shL 47
或者更好的是,使用一个using声明(以下代码是从sylon的[删除]帖子中复制的).这样,如果Image.FromStream抛出异常,您仍然可以确保流立即关闭.
using (FileStream stream = new FileStream("test.png", FileMode.Open, FileAccess.Read))
{
pictureBox1.Image = Image.FromStream(stream);
}
Run Code Online (Sandbox Code Playgroud)
lah*_*rah 10
您还可以使用流来读取图像,然后关闭流.
FileStream stream = new FileStream("test.png", FileMode.Open, FileAccess.Read);
pictureBox1.Image = Image.FromStream(stream);
stream.Close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53571 次 |
| 最近记录: |