【问题标题】:C# BitmapData class Scan0 and Stride properties meaningC# BitmapData 类 Scan0 和 Stride 属性含义
【发布时间】:2011-04-17 06:29:19
【问题描述】:

谁能解释一下 C# 中 BitmapData 类的 Scan0Stride 属性是干什么用的?

【问题讨论】:

    标签: c# bitmap bitmapdata


    【解决方案1】:

    你说的是BitmapData 类吗?如果是这样,我认为文档中的描述相当清楚:

    Scan0:

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

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

    Stride:

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

    如果您想从一行移动到下一行,您需要将步幅添加到您当前正在查看的行的地址。行对齐到 4 字节边界,以便各种代码可以更有效地访问它。 (CPU 中的各种操作都经过优化,可以在 4 字节或 8 字节边界上工作。)

    【讨论】:

    • 我明白了,对于Scan0,有什么目的?它只扫描位图的第一行。对于步幅,如果我想移动到下一行,imagePointer1 += 4;是用这个吗?
    • @joonshen:你不会增加 4 - 你会增加步幅。
    【解决方案2】:

    我唯一见过 Scan and Stride 的地方是在处理图像时。

    相关问题... any can explain the function of stride in bitmapdata?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      相关资源
      最近更新 更多