有人能给我解释一下它是如何计算行和列的吗?
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;
....
}发布于 2017-06-22 19:23:58
你可以参考这个链接,c# scan0 and stride
Stride
步幅是单行像素(扫描线)的宽度,向上舍入为四个字节的边界。如果步幅为正,则位图是自上而下的。如果步幅为负,则位图是自下而上的。
如果要从一行移动到下一行,则需要将步幅添加到当前正在查看的行的地址。行与4字节的边界对齐,这样所有类型的代码都可以更有效地访问它。(CPU中的各种操作已优化为在4字节或8字节边界上工作。)
谢谢,克里斯托
https://stackoverflow.com/questions/44697551
复制相似问题