VC++6.0のMFCアプリケーション開発で、メモリ上のイメージから直接ビットマップを生成しハンドルを得る方法を探しています。メモリ上のイメージとは、ビットマップ(.bmp)ファイルの構造をそのままメモリ上に置いただけのバイナリイメージです。ビットマップデータは毎秒数回ほどの頻度で、ネットワーク経由で伝送されてくるので、ファイルにいったん保存してLoadImage関数を呼ぶ方法は、使いたくありません。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/02/13 18:42:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hissssa No.1

回答回数428ベストアンサー獲得回数129

ポイント60pt

ビットマップファイルの構造は、BITMAPFILEHEADER型構造体+BITMAPINFOHEADER型構造体+画像データ配列です。そのメモリイメージの先頭からこの順序でデータを取り出した後、CreateDIBitmap()を使えばHBITMAPのハンドルが得られますよ。

id:yaman135

ヘッダサイズが固定でないなど、ビットマップファイルの構造を扱うのは面倒そうなのでなるべく避けていたんですが、やっぱりAPI一発のような方法は無いのですね。

ちょっと試しに実装してみたのですが、まだうまくは動作しません。

ですが、方針は決しました。

あとは腰を入れて調べれば、ビットマップの構造自体についての情報は検索で簡単に見つかりますので。

ありがとうございました。

2009/02/13 18:41:44

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません