2

タイトルは非常に説明的だと思いますが、ここで私がやろうとしていることをもう少し詳しく説明します。基本的に、BITMAP がメモリにロードされているとします。

そこから BITMAPINFOHEADER を抽出し、ソケット経由で転送されるパケット構造に追加したいと思います。*

転送するのは問題ありませんが、届いたらBITMAP に戻して作業できるようにしたいと考えています。

私はこれに苦労しており、運が悪くても高低を検索しました。これを達成するために必要な例と関数のリストは役に立ちます。

どうもありがとう。これは win32 c++ で必要です。[.NET または MFC なし] 感謝します。

4

1 に答える 1

7

送信者:

  1. あなたが持っているHBITMAP
  2. を使用して、幅や高さなどのプロパティを取得しますGetObject
  3. 生のバイトを指すポインタを使用して、同じ解像度のCreateDIBSectionHBITMAPの24/32ビットRGBを作成するために使用します。VOID*コードで初期化BITMAPINFOHEDERします-その時点までに必要なすべてのデータがすでにあるはずです
  4. BitBlt元のビットマップからこれに
  5. BITMAPINFOHEDERヘルパービットマップデータポインタで+バイトをネットワークに送信します( sizeof BITMAPINFOHEDER+BITMAPINFOHEDER::biSizeImageバイト)

受信者:

  1. 受け取ったものを使用CreateDIBSectionしてビットマップを作成するために使用しBITMAPINFOHEDERます。生データへのポインタを再び取得しています
  2. memcpy指定されたポインタの下のメモリ位置にデータを画像化するか、そこでデータを徐々に受信します
  3. あなたはHBITMAP再び持っています
于 2012-09-16T12:11:18.630 に答える