簡體   English   中英

位圖的正確步幅公式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM