看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Arim (Arim5566)》之銘言: : 應該要把上述的程式碼改成 : for (int i = 0; i < height;i++) : for (int j = 0; j < widthStep-(widthStep-width*nchannel); j++) { : Img->imageData[i*widthStep+j]=0; //將整張圖用1-dim的方式表示 : } : 其中 widthStep-width*nchannel=因為align而多出來的byte : 也就是widthStep-(多出來的byte)=真正的ImageData : 但是我在網路上沒看過有這樣的寫法@@,幾乎都是第1種居多 : 執行結果看起來是沒問題的 : 不知道我這樣的寫法是否正確? 試想 1366x768 width = 1366 1366*3 = 4098 不為四的倍數 向上補齊到4100 widthStep = 4100 所以蠢點寫就: widthStep = width*3; if (widthStep != (widthStep/4)*4 ) widthStep = (widthStep/4 + 1)*4; 寫漂亮點就 widthStep = ((width*3 + 3)/4)*4; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.120.10