RGBで処理した画像をBMPファイルで保存するには?


水古月  2003-11-28 15:14:36  No: 52667  IP: [192.*.*.*]

はじめまして水古月といいます。
VC++をはじめ1ヶ月なのですが、BMPファイルをRGBで画像処理してその画像をBMPファイルに保存するということをしたいのですが、
BMPをRGB解析するのは調べてわかったのですがRGBをBMPに戻して保存する方法がわかりません。
プログラムがわかる人がいたら教えてください、お願いします。

編集 削除
なーめ  2003-11-29 11:30:16  No: 52668  IP: [192.*.*.*]

解析とは、苦労してますね。
BITMAPFILEHEADER,BITMAPCOREHEADER,BITMAPINFOHEADER
というキーワードでヘルプを参照(F1)してください。
ReadFile()/WriteFile() でロード/セーブできます。
CDC, CBitmap など使っていたら、かえって大変かも。
別解:
だいぶ昔、InsideXXX シリーズの分厚い本に
CDib.cpp なるサンプルがあったので、これを改造して使っています。
ネットで検索すると、いくつかヒットしますよ。(CDib.cppで検索)
CDC に関連づけた CBitmap も操作できるので楽です。
メンバ関数に Read() Write() がついてます。
イメージの加工は m_lpImage の先を操作します。

編集 削除
宍戸輝光  URL  2003-11-30 10:25:50  No: 52669  IP: [192.*.*.*]

>BMPをRGB解析するのは調べてわかったのですがRGBをBMPに戻して保存する方法がわかりません。

BMPからRGBを作れるのなら、逆の処理をするだけです。
ヘッダを自分で作る分、RGB→BMPの方が単純ですし。

ヘッダ部分から大きさや色形式を取得したと思いますが、その部分に
自分で大きさや色形式を指定したヘッダを作りましょう。あとは、
そのヘッダとRGBのバッファをそのままファイルに書き出せばBMPに
なります。

RGBを取得できるのであれば、まずそのRGBからDIB(BITMAPINFO+RGB
バッファ)を作ってそのヘッダ部分やRGBをいろいろ変えて表示して
みるとよいかも。
BMPはDIBにBITMAPFILEHEADERをつけた形式なので、DIBの処理に慣れれ
ばすぐに扱えるようになります。

編集 削除
なーめ  2003-12-04 03:35:35  No: 52670  IP: [192.*.*.*]

質問タイトル
「ホワイトノイズ画像を作成するには?」
のところに bmp ファイル作成例を
発言しておきました(2003/12/04(木) 03:28:43)。
そちら参照ということで。
簡単のため BITMAPCOREHEADER を使用しています。

編集 削除
水古月  2003-12-04 12:47:37  No: 52671  IP: [192.*.*.*]

いろいろとありがとうございます。
参考にしてがんばって作ってみます。

編集 削除