WPF BitmapImage转byte[]
时间: 2023-09-01 19:08:14 浏览: 181
将一个WPF中的BitmapImage对象转换为byte[]数组,可以先将BitmapImage对象转换为BitmapSource对象,然后再使用BitmapSource对象的CopyPixels方法将像素数据复制到byte[]数组中。
下面是一个示例代码,可以将一个BitmapImage对象转换为byte[]数组:
```csharp
BitmapImage bitmapImage = ...; // 从某个地方获取BitmapImage对象
BitmapSource bitmapSource = new FormatConvertedBitmap(bitmapImage, PixelFormats.Bgra32, null, 0); // 将BitmapImage对象转换为BitmapSource对象
int stride = (bitmapSource.PixelWidth * bitmapSource.Format.BitsPerPixel + 7) / 8; // 计算每行像素所占的字节数
byte[] pixels = new byte[bitmapSource.PixelHeight * stride]; // 创建byte[]数组
bitmapSource.CopyPixels(pixels, stride, 0); // 将BitmapSource对象的像素数据复制到byte[]数组中
```
在上面的代码中,我们首先创建了一个FormatConvertedBitmap对象,将BitmapImage对象转换为BitmapSource对象。然后,我们计算每行像素所占的字节数,并创建一个byte[]数组来存储像素数据。最后,我们使用BitmapSource对象的CopyPixels方法将像素数据复制到byte[]数组中。
阅读全文