WPF中怎么将Byte[] 给Image
时间: 2024-12-16 21:26:16 浏览: 6
在WPF中,如果你想使用`Byte[]`数组来填充`Image`控件,你需要创建一个`BitmapSource`对象,然后设置`Image.Source`属性。以下是步骤:
1. 首先,你需要使用`System.Drawing`命名空间中的`Image`类来加载字节数组:
```csharp
using System.Drawing;
using System.Windows.Media.Imaging;
byte[] byteData = ...; // 你的图像字节数组
// 创建Image对象
BitmapImage bitmapImage = new BitmapImage();
```
2. 然后,使用`Convert.FromStream`方法将字节数组转换为`Stream`,再构造`MemoryStream`以便进一步设置`BitmapImage`:
```csharp
// 将字节数组转换为MemoryStream
using (var ms = new MemoryStream(byteData))
{
bitmapImage.BeginInit();
bitmapImage.StreamSource = ms;
bitmapImage.EndInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
}
```
3. 最后,将`BitmapImage`赋值给`Image.Source`:
```csharp
Image myImage = new Image();
myImage.Source = bitmapImage;
```
**相关问题--:**
1. 如果我想动态加载网络上的图片,应该如何修改上述代码?
2. 如何处理加载失败的情况?
3. WPF中的位图缓存选项有哪些,它们有何区别?
阅读全文