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

How do I get the actual byte array from a Windows LPBITMAP or HBITMAP?

本文关键字:字节 数组 字节数 获取 HBITMAP Windows LPBITMAP      更新时间:2023-10-16

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

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

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

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

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

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

谢谢 约翰·

如果您有

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