2

我认为标题非常具有解释性,但这里有一些我正在尝试做的细节。基本上说我在内存中加载了一个 BITMAP。

我想从中提取 BITMAPINFOHEADER并将其添加到我的数据包结构中,该结构将通过套接字传输。*

转移它不是问题,但是一旦它到达我想把它变成一个 BITMAP 以便我可以使用它。

我一直在为此苦苦挣扎,我一直在寻找高低,但没有任何运气。我将需要完成此操作的示例和功能列表会有所帮助。

非常感谢。我在win32 c++中需要这个。[没有 .NET 或 MFC] 赞赏。

4

1 回答 1

7

发件人:

  1. 你有HBITMAP
  2. 获取其属性,例如宽度和高度,使用GetObject
  3. 用于CreateDIBSection创建另一个具有指向原始字节HBITMAP的指针的相同分辨率的 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 回答