(源代码)获取RGB 值完全看不懂,求大神指点
char *lpBufbmp;
BITMAP bm;
void GetBmpData(LPCTSTR lpszName)
{
HANDLE hp;
HDC hdc,hdcmem;
HBITMAP hBm;
BITMAPINFO b;
hBm=(HBITMAP)LoadImage(NULL,/*"c:\\1.bmp"*/lpszName,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);
GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);
hdc=::GetWindowDC(NULL);
hdcmem=CreateCompatibleDC(hdc);
SelectObject(hdcmem,hBm);
BitBlt(hdcmem,0,0,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);
b.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
b.bmiHeader.biWidth=bm.bmWidth;
b.bmiHeader.biHeight=bm.bmHeight;
b.bmiHeader.biPlanes = 1;
b.bmiHeader.biBitCount =24;
b.bmiHeader.biCompression = BI_RGB;
b.bmiHeader.biSizeImage = 0;
b.bmiHeader.biXPelsPerMeter = 0;
b.bmiHeader.biYPelsPerMeter = 0;
b.bmiHeader.biClrUsed = 0;
b.bmiHeader.biClrImportant = 0;
b.bmiColors[0].rgbBlue=8;
b.bmiColors[0].rgbGreen=8;
b.bmiColors[0].rgbRed=8;
b.bmiColors[0].rgbReserved=0;
hp=GetProcessHeap();
lpBufbmp=(char *)HeapAlloc(hp,HEAP_ZERO_MEMORY,bm.bmHeight*bm.bmWidth*4);
GetDIBits(hdc,hBm,0,bm.bmHeight,lpBufbmp,&b,DIB_RGB_COLORS);
DeleteObject(&hBm);
DeleteDC(hdc);
DeleteDC(hdcmem);
}
int GetBmpPixel(int x,int y)//获取位图颜色
{
if(x<0 || x>(int)dwX || x<0 || x>(int)dwY)return-1;
BYTE bBlue=lpBufbmp[bm.bmWidthBytes*(bm.bmHeight-y-1) + bm.bmBitsPixel*x/8 + 0];
BYTE bGreen=lpBufbmp[bm.bmWidthBytes*(bm.bmHeight-y-1) + bm.bmBitsPixel*x/8 + 1];
BYTE bRed=lpBufbmp[bm.bmWidthBytes*(bm.bmHeight-y-1) + bm.bmBitsPixel*x/8 + 2];
COLORREF color=RGB(bBlue,bGreen,bRed);
return int(color);
//return lpBufbmp[1];
}
下载的 C++高效屏幕找图 的源代码。
我只复制了一点代码(论坛里有下载)
这里的获取RGB 值完全看不懂,
求大神指点
...全文
相关推荐
获取图片每个像素点的rgb值源码
以下是一个关于如何获取图片每个像素点RGB值的源码实现,并将这个功能封装成一个简单的类。首先,我们需要引入相关的图像处理库。
Delphi中RGB到TCOLOR值转换指南
RGB颜色模型是计算机图形和图像处理中最常用的色彩模型之一,其核心概念基于红(Red)、绿(Green)、蓝(Blue)三个颜色通道的叠加,每种颜色通道的值范围从0到255,这种模型是一种加色模型。RGB模型的基本原理是通过不同强度的红、绿、蓝光混合,产生广泛的颜色范围。RGB颜色值的组合直接决定了最终颜色的呈现效果。该模型广泛应用于各种显示设备、图形设计软件和Web设计。了解RGB模型对于从事图像处理、前端开发和任何涉及颜色处理的IT从业者来说至关重要。
Android获取图片的RGB值
在Android平台上,获取图片的RGB值是图像处理和分析中常见的需求。
获取RGB值的工具
标题中的"获取RGB值的工具"是一个专门用来读取和显示图像像素颜色的软件,特别针对RGB色彩系统。这个小工具的主要功能是帮助用户快速、便捷地获取屏幕上任意位置像素的RGB值。
获得图片上任意像素点RGB值和HSV值
本程序利用OpenCV实现了通过鼠标点击获取图像上像素点的RGB值和HSV值的功能。RGB(Red, Green, Blue)是颜色模型的一种,用于表示数字图像中的颜色。


