2

表面ストライドの計算

圧縮されていないビットマップでは、ストライドは、ピクセルの 1 行の先頭から次の行の先頭まで移動するのに必要なバイト数です。

上記はBITMAPINFOHEADER 構造からのものであり、完全に理にかなっています。

ただし、同じサイトでは、ストライドを計算する次の式が提供されています。

圧縮されていない RGB 形式の場合、最小ストライドは常にイメージの幅 (バイト単位) で、最も近い DWORD に切り上げられます。次の式を使用してストライドを計算できます。

ストライド = ((((biWidth * biBitCount) + 31) & ~31) >> 3)

幅 600、高さ 800、1bpp のイメージを想定

歩幅は 600/8 = 75 になると予想していますが、上記の式から 76 が得られます。

私は(w + 7) / 8予想される75を使用して取得していました...

Microsoft から提供された上記の式をまだ見ていると、疑問がわいてきます。その式は正しいのでしょうか。

4

1 に答える 1