はじめまして水古月といいます。
VC++をはじめ1ヶ月なのですが、BMPファイルをRGBで画像処理してその画像をBMPファイルに保存するということをしたいのですが、
BMPをRGB解析するのは調べてわかったのですがRGBをBMPに戻して保存する方法がわかりません。
プログラムがわかる人がいたら教えてください、お願いします。
解析とは、苦労してますね。
BITMAPFILEHEADER,BITMAPCOREHEADER,BITMAPINFOHEADER
というキーワードでヘルプを参照(F1)してください。
ReadFile()/WriteFile() でロード/セーブできます。
CDC, CBitmap など使っていたら、かえって大変かも。
別解:
だいぶ昔、InsideXXX シリーズの分厚い本に
CDib.cpp なるサンプルがあったので、これを改造して使っています。
ネットで検索すると、いくつかヒットしますよ。(CDib.cppで検索)
CDC に関連づけた CBitmap も操作できるので楽です。
メンバ関数に Read() Write() がついてます。
イメージの加工は m_lpImage の先を操作します。
>BMPをRGB解析するのは調べてわかったのですがRGBをBMPに戻して保存する方法がわかりません。
BMPからRGBを作れるのなら、逆の処理をするだけです。
ヘッダを自分で作る分、RGB→BMPの方が単純ですし。
ヘッダ部分から大きさや色形式を取得したと思いますが、その部分に
自分で大きさや色形式を指定したヘッダを作りましょう。あとは、
そのヘッダとRGBのバッファをそのままファイルに書き出せばBMPに
なります。
RGBを取得できるのであれば、まずそのRGBからDIB(BITMAPINFO+RGB
バッファ)を作ってそのヘッダ部分やRGBをいろいろ変えて表示して
みるとよいかも。
BMPはDIBにBITMAPFILEHEADERをつけた形式なので、DIBの処理に慣れれ
ばすぐに扱えるようになります。
質問タイトル
「ホワイトノイズ画像を作成するには?」
のところに bmp ファイル作成例を
発言しておきました(2003/12/04(木) 03:28:43)。
そちら参照ということで。
簡単のため BITMAPCOREHEADER を使用しています。
いろいろとありがとうございます。
参考にしてがんばって作ってみます。