Winapi 当我使用GetBitmapBits获取位图信息时,HBITMAP的像素格式是什么?

Winapi 当我使用GetBitmapBits获取位图信息时,HBITMAP的像素格式是什么?,winapi,bitmap,gdi,hbitmap,Winapi,Bitmap,Gdi,Hbitmap,我有HBITMAP HBITMAP。我使用GetBitmapBits(hbitmap,宽度*高度,缓冲区) 缓冲区中写入的像素格式是什么 谢谢。您想改用GetDIBits 查看MSDN对此的说明: 如果要使用GetDIBits,请始终询问MSDN(如果使用Visual Studio) 查看MSDN对此的说明: 始终询问MSDN(如果使用Visual Studio)可以不同,这取决于位图。这里有一个代码可以找到: BITMAP bmp; if( 0 == GetObject( hbitmap,

我有HBITMAP HBITMAP。我使用GetBitmapBits(hbitmap,宽度*高度,缓冲区)

缓冲区中写入的像素格式是什么


谢谢。

您想改用GetDIBits

查看MSDN对此的说明:


如果要使用GetDIBits,请始终询问MSDN(如果使用Visual Studio)

查看MSDN对此的说明:


始终询问MSDN(如果使用Visual Studio)

可以不同,这取决于位图。这里有一个代码可以找到:

BITMAP bmp;
if( 0 == GetObject( hbitmap, sizeof( BITMAP ), &bmp ) ) // handle error

从位图结构中,您可以了解像素格式和其他有关内存布局的重要内容。例如,以下是所需缓冲区大小的公式:
bmp.bmWidthBytes*bmp.bmHeight

可以不同,这取决于位图。这里有一个代码可以找到:

BITMAP bmp;
if( 0 == GetObject( hbitmap, sizeof( BITMAP ), &bmp ) ) // handle error

从位图结构中,您可以了解像素格式和其他有关内存布局的重要内容。例如,以下是所需缓冲区大小的公式:
bmp.bmWidthBytes*bmp.bmHeight

您可以使用高级getdibits指定此值,例如作为RGBQUADs。您可以使用高级getdibits指定此值,例如作为RGBQUADs