2011-04-17 63 views
3

任何人都知道Scan0和Stride是什麼?我需要一個很好的解釋謝謝。c#scan0和stride

+4

關於什麼類?他們在哪裏定義?在我們能夠給出一個好的解釋之前,我們需要一個好問題。 – Oded 2011-04-17 06:32:30

回答

11

你談論BitmapData類?如果是這樣,文檔中的描述是相當清楚,我想:

Scan0

獲取或設置位圖中的第一像素數據的地址。這也可以被認爲是位圖中的第一條掃描線。

換句話說,這可以讓您找到要檢查或更改的數據 - 甚至可以讓您將位圖製作成完全不同的數據。

Stride

跨距是像素的單行(掃描線)的寬度,向上舍入到一個四字節的邊界。如果邁步是肯定的,則位圖是自頂向下的。如果步幅是負數,則位圖是自下而上的。

如果您想從一行移動到下一行,則需要將步幅添加到當前正在查看的行的地址。行對齊到4個字節的邊界,以便各種代碼可以更高效地訪問它。 (CPU中的各種操作經過優化,可在4字節或8字節的邊界上工作。)

+0

我看到了Scan0的用途是什麼?它只掃描位圖的第一行。 對於邁步,如果我想移動到下一行,imagePointer1 + = 4;是通過使用這個? <<<< – joonshen 2011-04-17 06:47:24

+0

@joonshen:你不會增加4--你通過步伐增加。 – 2011-04-17 07:11:16

相關問題