前のPPMのDIBSectionを大きさによってStretchBltで半分の大きさで描画しているんですが、半分に表示したときにところどころ色が変化してしまいます。
期待する表示
実際の表示
これらのサイズは1000*1000を超えてるため縮小表示しないと画面におさまりません。
そこで半分にして表示すると色が変になる…原因はStretchBltでしょうけど…
この変な色になってしまうのはどうにかなりませんか?
あともうひとつ
PPM画像のデータ部は R G B R G B R G B R G B...
のようにRGBの値が循環しているのですが、それを順番に1バイトずつ(バイナリ形式)で読み取り、RGBマクロにRGBの順に引数を渡して、DIBSectionのピクセル列に格納したら、色が反転してしまいました。
char r,g,b;
fread( &r,1,1,fp );
fread( &g,1,1,fp );
fread( &b,1,1,fp );
bPixelBits[i] = RGB( (int)r,(int)g,(int)b );//for文でピクセルの数だけまわしてる
//bPixelBits:ピクセル列
なお、DIBSectionを生成するにあたってBITMAPINFO構造体のbmiHeader.biHeightには負数を格納して生成しています。(正の数にしても変化なし)