帰りの電車でぽちぽち入力シリーズ。
windowsで画像を扱う時に使うDIB。
基本的には画像データがピクセルデータとしてならんでるだけのもの。
これにbitmapヘッダをくっつけるとbmpファイルになる。
データ部、いわゆるscan0は単純な構造で、rgbaのビットが行儀よく並んでいるだけ。
rgbはそのまま赤緑青の成分。
aはアルファチャネルでいない場合もある。透過を示す値。
8ビットの場合はそれぞれが0-255で表される。
0(黒、透過)-255(白、不透明)
32ビットrbgaの場合は4バイトで1ピクセルを示す。
画像は矩形なので幅と高さがあるから、一行のバイト数を示す値があって、それがstride。
strideで次の行に入ると矩形になる。
つまりstrideにheightを乗じると全体のデータサイズになる。
strideをwidthで割るとピクセルあたりのバイト数がわかる。
グレースケールにするとか、半透明にするとか、そういった時にはピクセルを直接書き換える方が速いかもね!?