C# BitmapData class Scan0 and Stride properties meaning

后端 未结 2 1107
长发绾君心
长发绾君心 2021-01-13 13:27

Can anyone explain what Scan0 and Stride properties of BitmapData class in C# are for?

2条回答
  •  孤街浪徒
    2021-01-13 13:53

    Are you talking about the BitmapData class? If so, the description in the documentation is reasonably clear, I think:

    Scan0:

    Gets or sets the address of the first pixel data in the bitmap. This can also be thought of as the first scan line in the bitmap.

    In other words, this lets you find the data to examine or change - or even lets you make the bitmap to a completely different piece of data.

    Stride:

    The stride is the width of a single row of pixels (a scan line), rounded up to a four-byte boundary. If the stride is positive, the bitmap is top-down. If the stride is negative, the bitmap is bottom-up.

    If you want to move from one row to the next, you need to add the stride to the address of the row you're currently looking at. Rows are aligned to 4 byte boundaries so that all kinds of code can access it more efficiently. (Various operations in CPUs are optimized to work on 4 byte or 8 byte boundaries.)

提交回复
热议问题