
Scanline?
圖片數(shù)據(jù)矩陣的行數(shù)。
Stride?
圖片數(shù)據(jù)矩陣的列數(shù)。也是圖片每行數(shù)據(jù)的長度。
Padding?
每一行除了圖片數(shù)據(jù)后的填充數(shù)據(jù)。
可以用于存儲(chǔ)圖片的其他描述,可以用于圖片與圖片的對(duì)齊,也可以用作圖片數(shù)據(jù)處理的對(duì)齊。
總之就是一個(gè)除了圖片數(shù)據(jù)以外的區(qū)域
比如:
有一個(gè)程序每次處理圖片,一次處理一行,每次處理行大小Stride為10個(gè)字節(jié)。
現(xiàn)在有個(gè)圖片,圖片Image Width為8。這個(gè)程序在處理這個(gè)圖片的時(shí)候每行處理10字節(jié)就無法對(duì)齊8字節(jié),可能會(huì)導(dǎo)致處理結(jié)果異常。
所以在處理之前可以填充一些無意義的數(shù)據(jù),每行填充2個(gè)字節(jié)。這個(gè)就是Padding。填充后這個(gè)圖片Image Width為8,Stride為10。
如果沒有Padding的圖片,那么Stride = Image Width,如果有Padding的圖片,那么Stride = Image Width + Padding。
內(nèi)存中
如果用數(shù)據(jù)流來存儲(chǔ)處理圖片,那么圖片數(shù)據(jù)流的長度size就是ScanLine * Stride。
第一行就是從0開始到Stride,第二行就是從Stride開始到Stride*2,第三行就是...
代碼中的話,第一行就是image[0]到image[Stride],第二行就是image[Stride+1]到image[Stride*2],第三行就是image[Stride*2+1]到 image[Stride*3]...