谁能解释C#中BitmapData类的Scan0和Stride属性是做什么的?

最佳答案

您是否在谈论BitmapData类?如果是这样,我认为文档中的描述相当清晰:

Scan0


获取或设置位图中第一个像素数据的地址。也可以将其视为位图中的第一条扫描线。


换句话说,这使您可以找到要检查或更改的数据,甚至可以将位图制作为完全不同的数据。

Stride


跨度是单行像素(扫描线)的宽度,四舍五入到四字节边界。如果跨度为正,则位图是自顶向下的。如果跨度为负,则位图是自底向上的。


如果要从一行移到另一行,则需要将跨步添加到当前正在查看的行的地址。行与4个字节的边界对齐,以便所有类型的代码都可以更有效地访问它。 (CPU中的各种操作已优化为可在4字节或8字节边界上工作。)

07-28 04:32