我认为标题非常具有说明性,但这里有更详细的内容,我正在尝试做什么。 基本上我说我在内存中加载了 BITMAP。
我想从中提取BITMAPINFOHEADER 并将其添加到我的数据包结构中,该结构将通过套接字传输。*
转移它不是问题,但一旦到达我想将其重新变成BITMAP,以便我可以使用它。
我一直在努力解决这个问题,而且我没有任何运气就搜索过高低。我将需要一个示例和一系列函数来实现这一目标。
非常感谢。我需要在win32 c ++中使用它。 [没有.NET或MFC] 赞赏。
答案 0 :(得分:7)
发信人:
HBITMAP
GetObject
CreateDIBSection
创建另一个HBITMAP
相同分辨率的24/32位RGB,其中VOID*
指针指向原始字节;您将在代码中初始化BITMAPINFOHEDER
- 您应该已经拥有该点所需的所有数据BitBlt
从原始位图到此BITMAPINFOHEDER
+字节发送到网络(sizeof BITMAPINFOHEDER
+ BITMAPINFOHEDER::biSizeImage
字节)接收器:
CreateDIBSection
使用您收到的BITMAPINFOHEDER
创建位图;你又得到一个指向原始数据的指针memcpy
将图像数据放入给定指针下的内存位置,或者只是逐步接收数据HBITMAP