表面ストライドの計算
圧縮されていないビットマップでは、ストライドは、ピクセルの 1 行の先頭から次の行の先頭まで移動するのに必要なバイト数です。
上記はBITMAPINFOHEADER 構造からのものであり、完全に理にかなっています。
ただし、同じサイトでは、ストライドを計算する次の式が提供されています。
圧縮されていない RGB 形式の場合、最小ストライドは常にイメージの幅 (バイト単位) で、最も近い DWORD に切り上げられます。次の式を使用してストライドを計算できます。
ストライド = ((((biWidth * biBitCount) + 31) & ~31) >> 3)
幅 600、高さ 800、1bpp のイメージを想定
歩幅は 600/8 = 75 になると予想していますが、上記の式から 76 が得られます。
私は(w + 7) / 8
予想される75を使用して取得していました...
Microsoft から提供された上記の式をまだ見ていると、疑問がわいてきます。その式は正しいのでしょうか。