如何从Windows LPBITMAP或HBITMAP获取实际的字节数组?

时间:2015-01-15 00:39:19

标签: c++ winapi opencv bitmap

我正在构建一个非托管的Windows C ++项目,需要对BITMAPS进行一些分析。 该应用程序不是Windows应用程序,而是win32库。

客户端应用程序将LPBITMAP的HBITMAP传递到库中。

我需要访问底层字节数组[] 进行处理和分析。 如何从BITMAP获取字节数组[]? (无需转到临时文件)。

我已经能够从BITMP(.BMP)文件中执行此操作。 但在这些情况下,我需要使用HBITMAP和LPBITMAP。

我如何实现这一目标? (请记住,我无法访问Windows HDC 等,因为这不是Windows应用程序,也不会与Windows应用程序一起运行)

这可以通过opencv库以某种方式完成吗?

谢谢,  JohnB

1 个答案:

答案 0 :(得分:1)

如果您有LPBITMAP,那么这些位已经存在于BITMAP::bmBits中。 如果您有HBITMAP,则可以使用GetDIBits来获取它们。