Вычисление необходимого размера буфера для метода 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);
Какую формулу мне нужно использовать для вычисления значения буфера, необходимого в приведенном выше коде?