如何计算 WriteableBitmap.WritePixels 方法所需的缓冲区大小?
我正在使用采用四个参数的重载,第一个是 Int32Rect,下一个是包含颜色的 RGBA 数字的字节数组,第三个是步幅(这是我的可写位图的宽度乘以每像素位数除以8),最后一个是缓冲区(在 Intellisense 中称为偏移量)。
我在下面的代码中收到Buffer size is not enough运行时错误:
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);
我需要使用什么公式来计算上述代码中所需的缓冲区值?