• 締切済み

Bitmapの「biBitCount」の変更について

ビットマップファイルのヘッダにある 「biBitCount(1 画素あたりのデータサイズ (bit))」 についてですが、 「24 - 1677万色(true color)ビットマップ」のファイルを 「1 - 2 色ビットマップ」 に変更する関数などはないでしょうか? GDI+等に関数がありそうだと思ったのですが見つからず・・・。 もしご存知の方がおられたらご教授お願いいたします。

みんなの回答

  • fioletti
  • ベストアンサー率0% (0/2)
回答No.2

すみません。さきほどの回答はすこし勘違いしていて、メモリ上に読み込んだイメージのGDI的な変換方法を書いてしまいました。 ご質問をよく読むとファイル→ファイルのようなので、いろいろやり方はあると思うのですが、私の場合IPictureで処理します。 イメージがはっきりとはなかったので、そして現在UNIX環境から書き込んでいるのでヘッダとかが見られず、ググりながら流れを考えました。不正確でしたら申し訳ないです。 1.OleCreatePictureIndirect で単色ビットマップをもつIPicture実装オブジェクトを作る。 2.OLELoadPictureでカラーのIPicture実装オブジェクトを作る。 3.単色のIPictureのget_CurDCで取得したDCに対して、カラーのIPictureのRenderでイメージを転送(このときに変換が起こる)。 4.単色のIPictureのSaveAsFileを呼んでファイルに保存する。 IPictureの定義は下記URLにありました。(ヘッダがあるならそれを見た方が早いです) 何年か前ならググると情報も豊富にありMSDNにも普通に定義があったのですが現在はかなり探しにくくなっているようです。

参考URL:
http://www.com.it-berater.org/COM/controls_and_property_pages/interfaces/IPicture.htm
  • fioletti
  • ベストアンサー率0% (0/2)
回答No.1

もう何年もやってないので間違っていたら申し訳ないのですが、 GDIのCreateBitmapで作ったビットマップをSelectObjectして、 HDCに対してBitbltしてやるのだと思います。

参考URL:
http://yokohama.cool.ne.jp/chokuto/urawaza/api/CreateBitmap.html
ya-cha
質問者

補足

ご回答ありがとうございます。 上記手順のどのタイミングでモノクロ画像に変更出来るのでしょうか? お手数ですがお願いいたしますm(__)m

関連するQ&A