WPF中如何将byte[]转换为bitmapimage
时间: 2024-10-21 17:11:15 浏览: 84
在Windows Presentation Foundation (WPF)中,如果你想将`byte[]`数组转换成`BitmapImage`以便显示或存储图片,可以按照以下步骤操作:
1. 首先,创建一个`MemoryStream`并设置其源头为你的`byte[]`数组:
```csharp
byte[] imageData = ...; // 你的字节数组
MemoryStream memoryStream = new MemoryStream(imageData);
```
2. 然后,使用`MemoryStream`创建一个`BitmapDecoder`,它能从流中解码图像数据:
```csharp
using (BitmapDecoder decoder = BitmapDecoder.Create(memoryStream))
{
BitmapSource bitmapSource = decoder.Frames[0]; // 如果有多帧选择第一帧
Image image = new Image();
image.Source = bitmapSource;
}
```
或者
```csharp
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();
```
3. 最后,你可以将`BitmapImage`添加到WPF控件中,比如`Grid`, `Canvas`或`Image`元素中:
```csharp
Image imageControl = new Image();
imageControl.Width = bitmapSource.PixelWidth;
imageControl.Height = bitmapSource.PixelHeight;
imageControl.Source = bitmapImage;
// 将imageControl添加到视图树中
```
这样就实现了`byte[]`到`BitmapImage`的转换和显示。
阅读全文