[英]Correct stride formula for BITMAP
計算表面步幅
在未壓縮的位圖中,步幅是從一行像素的開頭到下一行的開頭所需的字節數。
以上來自BITMAPINFOHEADER結構,絕對有道理。
同一個站點給出了以下公式來計算步幅:
對於未壓縮的 RGB 格式,最小步幅始終是以字節為單位的圖像寬度,四舍五入到最接近的 DWORD。 您可以使用以下公式來計算步幅:
步幅 = ((((biWidth * biBitCount) + 31) & ~31) >> 3)
假設圖像寬度為 600,高度為 800 和 1bpp
我希望步幅為 600/8 = 75 ......但上面的公式給了我 76 !
我正在使用(w + 7) / 8
並獲得預期的 75 ...
仍然看到上面來自微軟的公式讓我感到疑惑——這個公式正確嗎?
75 不會四舍五入到最接近的 DWORD。 DWORD 每個是 4 個字節。 76 是 4 的次高倍數。
公式是正確的(在除以得到最終字節數之前,它以位為單位向上舍入到下一個 DWORD)。 您似乎只是四舍五入到最近的字節,這不是一回事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.