有人可以解释一下它是如何计算行和列的吗?
byte[] pixel = new byte[img.Stride * img.Height];
for (l=0; l< pixel.Length -4;l+=4 )
{
row= l/img.Stride;
column=(l% img.Stride)/4;
....
}
答案 0 :(得分:0)
您可以参考链接c# scan0 and stride
步幅是单行像素(扫描线)的宽度, 四舍五入到四字节边界。如果步幅是积极的,那么 位图是自上而下的。如果步幅为负,则位图为 自下而上。
如果您想从一行移动到下一行,则需要将步幅添加到您当前正在查看的行的地址。行与4字节边界对齐,以便各种代码可以更有效地访问它。 (CPU中的各种操作经过优化,可以在4字节或8字节边界上工作。)
谢谢, 克里斯托