現在、ツールで取得した32ビットのビットマップファイルを
24ビットに変換するプログラムを作ろうと思っているのですが、
32bitのDIBは各画素がBGRAの順で4byteづつ格納されているので、
このうち、Aの情報を無視してBGRの順で24bitのDIBのデータに格
納していけばいいのかなとは思うのですが、どう記述していけば
よいのか分かりません。
具体的なサンプルなどあれば教えて下さい。
お願いいたします。
そのまんまです。
char data32[] = ...; // 32bit array
char data24[] = ...; // 24bit array
int i32 = 0, i24 = 0;
while (配列の終わりまで) {
data24[i24+0] = data32[i32+0];
data24[i24+1] = data32[i32+1];
data24[i24+2] = data32[i32+2];
i24 += 3;
i32 += 4;
}
いや、基本的にはそうなんですが、1列が4byte区切りになっているから
ずれちまいます。
けど全部書くのはめんどい...
http://www.sm.rim.or.jp/~shishido/
この辺を見て参考にしてください。
ツイート | ![]() |