Я пишу приложение, которое требует преобразования 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])