先看看MSDN上的,
The GetBitmapBits function copies the bitmap bits of a specified device-dependent bitmap into a buffer.
LONG GetBitmapBits(
_In_ HBITMAP hbmp,
_In_ LONG cbBuffer,
_Out_ LPVOID lpvBits
);
A handle to the device-dependent bitmap.
The number of bytes to copy from the bitmap into the buffer.
获取位图数据,并将数据拷贝到缓冲区中(第三个参数),位图数据是跟具体设备相关的。一般获取的位图数据为32位,如果将其保存为jpg的话,需要转换成24位的才行,某些开源看暂时不支持32的rgb空间位图。
GetPixel:
The GetPixel function retrieves the red, green, blue (RGB) color value of the pixel at the specified coordinates.
COLORREF GetPixel(
_In_ HDC hdc,
_In_ int nXPos,
_In_ int nYPos
);
获取点(x,y)下的像素值。
两者均可以获取图像数据,但是GetBitmapBits要比GetPixel快至少10倍,所以当频繁读取具体像素值时,最好用GetBitmapBits。以前做过一个项目,创建一个位图,然后在上面绘制文本,然后把结果保存为图片,这时,采用GetBitmapBits拷贝数据。
本文介绍了两种获取位图数据的方法:GetBitmapBits 和 GetPixel。GetBitmapBits 函数用于复制指定设备相关位图的位图位到缓冲区,而 GetPixel 则用于获取指定坐标处的 RGB 值。通常情况下,GetBitmapBits 的效率比 GetPixel 高出至少十倍,因此在频繁读取像素值时推荐使用前者。
441

被折叠的 条评论
为什么被折叠?



