WPF Image控件 Source: Byte[] ,BitmapImage 相互转换
时间: 2023-12-31 10:06:16 浏览: 167
WPF 自定义控件,有虚拟键盘、线形图、拖动控件示例
要将一个 byte 数组转换为 BitmapImage,可以使用以下代码:
```csharp
byte[] imageData = // 你的图像数据
BitmapImage image = new BitmapImage();
using (MemoryStream memory = new MemoryStream(imageData))
{
memory.Position = 0;
image.BeginInit();
image.StreamSource = memory;
image.CacheOption = BitmapCacheOption.OnLoad;
image.EndInit();
}
```
这将创建一个 `BitmapImage` 对象,并将其初始化为使用提供的字节数组作为源的图像。请注意,我们在使用 `MemoryStream` 时设置了 `Position` 属性为 0,以确保流的开头是正确的。
要将 BitmapImage 转换为 byte 数组,可以使用以下代码:
```csharp
BitmapImage image = // 你的图像
byte[] imageData;
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (MemoryStream memory = new MemoryStream())
{
encoder.Save(memory);
imageData = memory.ToArray();
}
```
这将创建一个 `JpegBitmapEncoder` 对象,将 `BitmapImage` 添加到其中,然后使用 `MemoryStream` 将其编码为 JPEG 格式的字节数组。
阅读全文