如何从 Windows LPBITMAP 或 HBITMAP 获取实际的字节数组?
How do I get the actual byte array from a Windows LPBITMAP or HBITMAP?
我正在构建一个非托管 windows C++ 项目,需要对 BITMAPS 进行一些分析。
该应用程序不是 windows 应用程序,而是一个 win32 库。
客户端应用程序会将 HBITMAP 或 LPBITMAP 传递到库中。
我需要访问底层字节数组[]以进行处理和分析。
如何从 BITMAP 中获取字节数组 []? (无需转到临时文件)。
我已经能够从 BITMP (.BMP) 文件执行此操作。
但在这些情况下,我需要使用 HBITMAP 和 LPBITMAP。
如何实现?
(请记住,我 无权访问 windows HDC 等,因为这不是 windows 应用程序,库 运行 也不会结合 windows 应用)
这可以通过 opencv 库以某种方式完成吗?
谢谢,
约翰
如果您有 LPBITMAP
,那么位已经存在,在 BITMAP::bmBits
中。
如果您有 HBITMAP
,您可以使用 GetDIBits
来获取它们。
我正在构建一个非托管 windows C++ 项目,需要对 BITMAPS 进行一些分析。 该应用程序不是 windows 应用程序,而是一个 win32 库。
客户端应用程序会将 HBITMAP 或 LPBITMAP 传递到库中。
我需要访问底层字节数组[]以进行处理和分析。 如何从 BITMAP 中获取字节数组 []? (无需转到临时文件)。
我已经能够从 BITMP (.BMP) 文件执行此操作。 但在这些情况下,我需要使用 HBITMAP 和 LPBITMAP。
如何实现? (请记住,我 无权访问 windows HDC 等,因为这不是 windows 应用程序,库 运行 也不会结合 windows 应用)
这可以通过 opencv 库以某种方式完成吗?
谢谢, 约翰
如果您有 LPBITMAP
,那么位已经存在,在 BITMAP::bmBits
中。
如果您有 HBITMAP
,您可以使用 GetDIBits
来获取它们。