Calculando o tamanho do buffer requerido para o método WriteableBitmap.WritePixels

Como faço para calcular o tamanho do buffer necessário para o método WriteableBitmap.WritePixels?

Estou usando a sobrecarga tomando quatro parâmetros, o primeiro é um Int32Rect, o próximo é um array de bytes contendo os números RGBA para a cor, o terceiro é o stride (que é a largura do meu bitmap gravável multiplicado pelos bits por pixel dividido por 8), e o último é o buffer (referido como o deslocamento no Intellisense).

Estou recebendo oO tamanho do buffer não é suficiente erro de tempo de execução no código abaixo:

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);

Qual é a fórmula que preciso usar para calcular o valor do buffer necessário no código acima?

questionAnswers(6)

yourAnswerToTheQuestion