如何从桌面中获取一块区域,然后计算各种颜色的个数
来源:百度知道 编辑:UC知道 时间:2024/06/06 07:34:28
//GrabScreenToBitmap.h
#ifndef GRABSCREENTOBITMAP_H
#define GRABSCREENTOBITMAP_H
HBITMAP GrabScrToBmp(LPRECT lpRect);
BOOL CopyBmpToClipBoard(const HBITMAP hBmp);
BOOL SaveBmpToFile(const HBITMAP hBmp, const LPCSTR lpFileName);
#endif
//GrabScreenToBitmap.cpp
HBITMAP GrabScrToBmp(LPRECT lpRect) //lpRect 代表选定区域
{
if (IsRectEmpty(lpRect))
{
return NULL;
}
HDC hScrDC; // 屏幕设备描述表句柄
HDC hMemDC; //内存设备描述表句柄
HBITMAP hBmp; // 位图句柄
HBITMAP hOldBmp;
int nX, nY, nX2, nY2; // 选定区域坐标
int nWidth, nHeight; // 位图宽度和高度
int xScrn, yScrn; // 屏幕分辨率
hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
hMemDC = CreateCompatibleDC(hScrDC);
nX = lpRect->left;
nY = lpRect->top;
nX2 = lpRect->right;
nY2 = lpRect->bottom;
xScrn = GetDeviceCaps(hScrDC, HORZRES);
ySc