gpt4 book ai didi

c++ - HBITMAP/BITMAP 到 BITMAPINFOHEADER -> 通过网络 -> BITMAPINFOHEADER 到 HBITMAP/BITMAP

转载 作者:搜寻专家 更新时间:2023-10-31 00:00:42 26 4
gpt4 key购买 nike

我认为标题非常具有解释性,但这里更详细地说明了我正在尝试做的事情。基本上就是说我在内存中加载了一个BITMAP。

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

传输它不是问题,但一旦它到达,我想将它转换回 BITMAP 以便我可以使用它。

我一直在努力解决这个问题,我一直在高低搜索,但没有任何运气。我需要完成此操作的示例和功能列表会很有帮助。

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

最佳答案

发件人:

  1. 你有HBITMAP
  2. 使用 GetObject 获取其属性,例如宽度和高度
  3. 使用 CreateDIBSection 创建另一个具有相同分辨率 24/32 位 RGB 的 HBITMAP 以及指向原始字节的 VOID* 指针;您将在代码中初始化 BITMAPINFOHEDER - 到那时您应该已经拥有所需的所有数据
  4. BitBlt 从原始位图到这个位图
  5. 将您的 BITMAPINFOHEDER + 辅助位图数据指针处的字节发送到网络(sizeof BITMAPINFOHEDER + BITMAPINFOHEDER::biSizeImage 字节)

接收者:

  1. 使用 CreateDIBSection 使用您收到的 BITMAPINFOHEDER 创建位图;你又得到了一个指向原始数据的指针
  2. memcpy 将图像数据放入给定指针下的内存位置或在那里逐步接收数据
  3. 您再次拥有HBITMAP

关于c++ - HBITMAP/BITMAP 到 BITMAPINFOHEADER -> 通过网络 -> BITMAPINFOHEADER 到 HBITMAP/BITMAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com