我有一个格式为 {Indexed8} 的 2208 x 3000 TransformedBitmap 对象,我正在执行 .CopyPixels() 。我正在使用
(int)((formattedBitmap.PixelWidth * formattedBitmap.Format.BitsPerPixel + 7) / 8)
(假设'formattedBitmap'是我试图从中复制像素的图像的名称)我的方法调用中的'stride'值和一个长度为2208的字节数组。我在代码的其他地方也有类似的东西(图像的格式是{Gray8}。但是,我试图在上述图像上做同样的事情,我不断得到一个“参数超出范围”异常提示“参数值不能小于 '6624000'。\r\n参数名称:缓冲区。”
我对此的问题是:为什么完全相同的代码似乎在一个地方工作而不是另一个地方工作?用外行的话来说,世界上真正的“大步”是什么?以及如何在不出现此错误的情况下获得所需的效果(复制位)?我究竟做错了什么?
对此的任何帮助将不胜感激。非常感谢!