WPF中,输入byte[]和图像宽高,将byte[]转为BitmapImage
时间: 2024-10-22 10:29:04 浏览: 34
WPF控件编程实践-OpenCV图像灰度
在WPF(Windows Presentation Foundation)中,如果你有一个`byte[]`数组代表图像数据,并且你知道其宽度和高度,你可以通过以下步骤将其转换为`BitmapImage`:
1. 首先,创建一个新的`MemoryStream`,并将`byte[]`的数据写入其中:
```csharp
using System.IO;
MemoryStream ms = new MemoryStream(byteArray);
```
2. 然后,利用这个流实例化一个`BitmapSource`,通常选择`PngBitmapDecoder`如果图片是以PNG格式存储的,如果是其他格式如JPEG,可以使用对应的解码器(例如`JpegBitmapDecoder`):
```csharp
using (var decoder = PngBitmapDecoder.Create(ms))
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = decoder.Frames[0].Source; // 如果有多帧,则选择你需要的那一帧
bitmapImage.EndInit();
// 将图像设置到UI元素上
myImageControl.Source = bitmapImage;
}
```
这里假设`myImageControl`是一个包含`Image`或`ImageSource`属性的控件。
阅读全文