有谁能告诉,怎样获取屏幕上某点的像素值?
展开全部
原理很简单,只需要简要的三步。既:获取屏幕DC、得到当前鼠标所在的像素值、分解出像素值中的红、绿、蓝三色既可,很简单吧!
关键代码实现:
1、获取屏幕DC
HDC hDC = ::GetDC(NULL); //获取屏幕DC
2、获取当前鼠标位置像素值
CPoint pt;
GetCursorPos(&pt); //得到当前鼠标所在位置
COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //获取当前鼠标点像素值
3、分解出像素点中的红、绿、蓝颜色值
CString ClrText;
ClrText.Format("%d",GetRValue(clr)); //分解出红色值
ClrText.Format("%d",GetGValue(clr)); //分解出绿色值
ClrText.Format("%d",GetBValue(clr)); //分解出蓝色值
::ReleaseDC(NULL, hDC); //释放屏幕DC
关键代码实现:
1、获取屏幕DC
HDC hDC = ::GetDC(NULL); //获取屏幕DC
2、获取当前鼠标位置像素值
CPoint pt;
GetCursorPos(&pt); //得到当前鼠标所在位置
COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //获取当前鼠标点像素值
3、分解出像素点中的红、绿、蓝颜色值
CString ClrText;
ClrText.Format("%d",GetRValue(clr)); //分解出红色值
ClrText.Format("%d",GetGValue(clr)); //分解出绿色值
ClrText.Format("%d",GetBValue(clr)); //分解出蓝色值
::ReleaseDC(NULL, hDC); //释放屏幕DC
赛麦吉
2023-06-03 广告
2023-06-03 广告
这是一张ISO12233:2000标准的分辨率测试卡,目前已被ISO12233:2014 eSFR分辨率测试卡所取代,但是目前使用ISO12233:2000标准的分辨率测试卡还是比较多。 类型 反射式:由前面照明的反射式测试标板 透射式:可...
点击进入详情页
本回答由赛麦吉提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询