Как получить byte [] из BitmapSource, где длина байтового массива равна ширине BitmapSource x высоте BitmapSource - PullRequest
1 голос
/ 11 октября 2019

Я пишу приложение, которое требует преобразования BitmapSource в байтовый массив пикселей. Длина байтового массива должна быть равна ширине растрового изображения x высоте растрового изображения.

Я пробовал функцию bmp.CopyPixels () в пространстве имен System.Windows.Media.Imaging. Но он выводит массив, который больше ширины 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 x 2686. Я ожидаю, что массив пикселей имеет длину 2686 x 2686. (байт [2686 x 2686])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...