2017-06-22 32 views
1

有人可以解釋我如何計算行和列嗎?c中的步幅函數#

byte[] pixel = new byte[img.Stride * img.Height]; 
for (l=0; l< pixel.Length -4;l+=4) 
{ 
    row= l/img.Stride; 
    column=(l% img.Stride)/4; 
.... 
} 
+0

這是我不清楚你問什麼,但也許在圖片在這個網頁步幅會幫助你:https://msdn.microsoft.com/en-us/library/windows/desktop/aa473780(v=vs.85).aspx –

回答

0

可以參考該鏈接,c# scan0 and stride

Stride

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

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

感謝, 克里斯托