VC++6.0のMFCアプリケーション開発で、メモリ上のイメージから直接ビットマップを生成しハンドルを得る方法を探しています。メモリ上のイメージとは、ビットマップ(.bmp)ファイルの構造をそのままメモリ上に置いただけのバイナリイメージです。ビットマップデータは毎秒数回ほどの頻度で、ネットワーク経由で伝送されてくるので、ファイルにいったん保存してLoadImage関数を呼ぶ方法は、使いたくありません。
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
No.1
60pt
ビットマップファイルの構造は、BITMAPFILEHEADER型構造体+BITMAPINFOHEADER型構造体+画像データ配列です。そのメモリイメージの先頭からこの順序でデータを取り出した後、CreateDIBitmap()を使えばHBITMAPのハンドルが得られますよ。
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。
これ以上回答リクエストを送信することはできません。制限について
ヘッダサイズが固定でないなど、ビットマップファイルの構造を扱うのは面倒そうなのでなるべく避けていたんですが、やっぱりAPI一発のような方法は無いのですね。
ちょっと試しに実装してみたのですが、まだうまくは動作しません。
ですが、方針は決しました。
あとは腰を入れて調べれば、ビットマップの構造自体についての情報は検索で簡単に見つかりますので。
ありがとうございました。