【发布时间】:2011-04-17 06:29:19
【问题描述】:
谁能解释一下 C# 中 BitmapData 类的 Scan0 和 Stride 属性是干什么用的?
【问题讨论】:
标签: c# bitmap bitmapdata
谁能解释一下 C# 中 BitmapData 类的 Scan0 和 Stride 属性是干什么用的?
【问题讨论】:
标签: c# bitmap bitmapdata
你说的是BitmapData 类吗?如果是这样,我认为文档中的描述相当清楚:
获取或设置位图中第一个像素数据的地址。这也可以认为是位图中的第一条扫描线。
换句话说,这可以让您找到要检查或更改的数据 - 甚至可以让您将位图制作成完全不同的数据。
步幅是单行像素(扫描线)的宽度,四舍五入到四字节边界。如果步幅为正,则位图是自上而下的。如果步幅为负,则位图为自下而上。
如果您想从一行移动到下一行,您需要将步幅添加到您当前正在查看的行的地址。行对齐到 4 字节边界,以便各种代码可以更有效地访问它。 (CPU 中的各种操作都经过优化,可以在 4 字节或 8 字节边界上工作。)
【讨论】:
我唯一见过 Scan and Stride 的地方是在处理图像时。
相关问题... any can explain the function of stride in bitmapdata?
【讨论】: