Вычисление необходимого размера буфера для метода WriteableBitmap.WritePixels

Как рассчитать необходимый размер буфера для метода WriteableBitmap.WritePixels?

Я использую перегрузку, принимающую четыре параметра, первый - Int32Rect, следующий - байтовый массив, содержащий числа RGBA для цвета, третий - шаг (это ширина моего записываемого растрового изображения, умноженная на биты на пиксель, разделенные на 8), а последний - буфер (в Intellisense это смещение).

Я получаюРазмер буфера не достаточен ошибка во время выполнения в следующем коде:

byte[] colourData = { 0, 0, 0, 0 };

var xCoordinate = 1;
var yCoordinate = 1;

var width = 2;
var height = 2;

var rect = new Int32Rect(xCoordinate, yCoordinate, width, height);

var writeableBitmap = new WriteableBitmap(MyImage.Source as BitmapSource);

var stride = width*writeableBitmap.Format.BitsPerPixel/8;

writeableBitmap.WritePixels(rect, colourData, stride,0);

Какую формулу мне нужно использовать для вычисления значения буфера, необходимого в приведенном выше коде?

Ответы на вопрос(6)

Ваш ответ на вопрос