C# 如何从文件中显示PNG?

C# 如何从文件中显示PNG?,c#,visual-studio,visual-studio-2010,C#,Visual Studio,Visual Studio 2010,我想切换toolStripButton上显示的图像。但我就是不知道该怎么做 我认为应该是这样的: btSearch.Image = new Image("myimage.png"); 但它不起作用(新形象似乎不存在) 感谢您的帮助使用: 不幸的是,在您处理映像之前,该文件将被锁定。关于另一个解决方案,请参阅问题。我建议使用该方法,因为它不会锁定实际文件 例如: using (var stream = File.OpenRead(path)) using (var image = Image.F

我想切换toolStripButton上显示的图像。但我就是不知道该怎么做

我认为应该是这样的:

btSearch.Image = new Image("myimage.png");
但它不起作用(新形象似乎不存在)

感谢您的帮助

使用:

不幸的是,在您处理映像之前,该文件将被锁定。关于另一个解决方案,请参阅问题。

我建议使用该方法,因为它不会锁定实际文件

例如:

using (var stream = File.OpenRead(path))
using (var image = Image.FromStream(stream))
{
    //Black magic here.
}
请注意,必须在映像的生命周期内保持流的打开状态。如果使用相同的流连续调用此方法,则流将重置为零


下面是一个由Jon Skeet提供答案的示例。

不推荐!在释放图像之前,文件将保持锁定状态。最好使用另一种不锁定文件的方法。你有什么方法可以推荐吗?或者最好是复制文件,然后使用副本进行处理?@Mathieu:我添加了一个如何从流中加载图像的示例。
using (var stream = File.OpenRead(path))
using (var image = Image.FromStream(stream))
{
    //Black magic here.
}