如何从BitmapSource获得byte [],其中字节数组的长度等于BitmapSource的宽度x BitmapSource的高度

时间:2019-10-11 06:49:45

标签: c# .net wpf bitmap

我正在编写一个需要将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])

0 个答案:

没有答案