我正在编写一个需要将BitmapSource转换为像素字节数组的应用程序。字节数组的长度应等于位图的宽度x位图的高度。
我在System.Windows.Media.Imaging名称空间中尝试了bmp.CopyPixels()函数。但是它输出的数组大于位图的宽度x高度。
private byte[] GetBytesFromBitmapSource(System.Windows.Media.Imaging.BitmapSource bmp)
{
int width = bmp.PixelWidth;
int height = bmp.PixelHeight;
int stride = width * ((bmp.Format.BitsPerPixel + 7) / 8);
byte[] pixels = new byte[height * stride];
bmp.CopyPixels(pixels, stride, 0);
return pixels;
}
我的图像(BitmapSouce)的大小为2686 x2686。我期望像素数组的长度为2686 x 2686。 (字节[2686 x 2686])