我创建了一个应用程序,我需要通过套接字发送图像的剪切部分。我已经使用StretchBlt()裁剪了图像,我也能够将裁剪后的图像显示并保存到位图文件中。如何使用WIN32和C++通过套接字发送HBITMAP?
接下来,我想通过Socket连接发送这个cropepd图像。套接字之间的连接已建立,我的问题是如何通过Socket发送/接收此图像,因为send()和recv()函数需要char *。
一个想法是,如果我选择HBITMAP到一个memDC对象比我可以直接发送到远程套接字的memDC?
任何更简单的方法来实现这项任务?
谢谢@Simon:它相当于使用GetDIBits()和SetDIBits()吗?文档说明“注意此功能仅用于兼容16位版本的Windows,应用程序应使用GetDIBits函数”,我应该使用哪组函数? – aProgrammer 2011-05-16 08:46:18
@TheAmitKumar - 这是一个旧的API,但它仍然存在。我肯定会尝试它,否则Get/Set DIBits很好。 – 2011-05-16 10:12:24
另一个问题是如何获得HBITMAP的大小?如果我使用旧的API而不是单独发送BITMAPHEADER,或者GetBitmapBits()返回的字节数组也会照顾头文件?我尝试使用更新的API获取/设置DI位,但对大小和头文件无能为力操纵。感谢好友... – aProgrammer 2011-05-16 10:29:11