我最近在以前正在使用的代码中首次看到此错误,并且不遵循原因。
抛出异常
BitmapSource.Create(width, height, 96, 96, PixelFormats.Bgr24, null, data, stride);
此处width
为1194,height
为824,stride
使用this SO answer中的等式((width * 24 + 23) & ~23) / 8
,结果为3584(这使得感)。 data
的大小为2 951 568,看似正确(1194 * 824 * 3)。这些值都来自调试器。
我无法重现这一点,因此无法确定导致它的确切情况,但是没有看到异常如何从提供的参数中理解。
可能是因为我误解了应该采取的步幅(在过去,也许分辨率总是比特宽度的倍数)? data
数组没有填充。