C#/WPF图像处理问题

C#/WPF图像处理问题,c#,image,file-io,C#,Image,File Io,我试图让我的C#代码向我的(WPF)应用程序的画布添加一个图像。但是,我的代码不起作用 Image I = new Image(); I.Source = System.IO.File.Open(@"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg", System.IO.FileMode.Open); 我得到一个错误: Cannot implicitly convert type 'System.IO.FileStream' to '

我试图让我的C#代码向我的(WPF)应用程序的画布添加一个图像。但是,我的代码不起作用

Image I = new Image();
I.Source = System.IO.File.Open(@"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg", System.IO.FileMode.Open);
我得到一个错误:

Cannot implicitly convert type 'System.IO.FileStream' to 'System.Windows.Media.ImageSource'
我明白了原因:图像对象想要原始位图(或jpg或其他),我的代码给它一个来自文件的输出流。如何在两者之间转换?

大约:

Image I = new Image();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(@"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg", UriKind.Absolute);
bi.EndInit();
I.Source = bi;
大约:

Image I = new Image();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(@"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg", UriKind.Absolute);
bi.EndInit();
I.Source = bi;

BitmapImage具有接受Uri的构造函数重载。使用它会与您的示例有什么不同吗?我需要导入什么才能使其工作?目前Visual Studio正在进行比较,说“'System.Windows.Controls.Image'不包含'FromStream'的定义”。很抱歉,今天早上我在修改这篇文章时混淆了System.Drawing.Image和System.Windows.Controls.Image。我回滚到正确的解决方案。BitmapImage具有接受Uri的构造函数重载。使用它会与您的示例有什么不同吗?我需要导入什么才能使其工作?目前Visual Studio正在进行比较,说“'System.Windows.Controls.Image'不包含'FromStream'的定义”。很抱歉,今天早上我在修改这篇文章时混淆了System.Drawing.Image和System.Windows.Controls.Image。我回到了正确的解决方案。