输入byte[],以及图像的宽高,将byte[]转换为BitmapImage
时间: 2024-10-21 09:14:59 浏览: 28
在.NET平台上,如果你想将字节数组(byte[])转换为`BitmapImage`,可以按照以下步骤操作:
首先,你需要创建一个`Stream`来从字节数组读取数据。然后,你可以使用`System.IO.MemoryStream`或者`System.Drawing.Imaging.ImageStream`来处理这个流。接着,利用`System.Windows.Media.Imaging.BitmapCreateOptions`和`System.Windows.Media.Imaging.WriteableBitmap`,将字节流转换成`WriteableBitmap`,最后通过`BitmapImage`构造函数加载`WriteableBitmap`。
下面是一个简单的示例代码:
```csharp
using System;
using System.IO;
using System.Windows.Media.Imaging;
public BitmapImage ByteArrayToBitmapImage(byte[] byteArray, int width, int height)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
// 创建一个新的可写位图流
var writeableStream = new WriteableBitmapStream(new PixelFormat(), new Int32Rect(0, 0, width, height), ms, true);
// 使用创建选项和可写位图流创建BitmapImage
return new BitmapImage(writeableStream);
}
}
// 调用示例
byte[] imageBytes = ...; // 你的byte数组
int width = ...; // 图像宽度
int height = ...; // 图像高度
BitmapImage bitmapImage = ByteArrayToBitmapImage(imageBytes, width, height);
```
阅读全文