如何获取屏幕上各颜色的红、绿、蓝值

原创 2002年08月06日 14:47:00
 

如何获取屏幕上各颜色的红、绿、蓝值<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:徐景周

下载示例源码(http://www.vckbase.com/code/viewcode.asp?id=1602)

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
 在桌面上运行各种程序中,有很多色彩十分靓丽,我们有时也想使用它们的颜色,但苦于没有源码,所以很难准确知道它们的R、G、B颜色值。于是便产生了很多拾取屏幕颜色的工具,你想知道它们是怎么用程序实现的么?下面我就拿我用VC6.0做的一个屏幕颜色拾取器的实例代码来告诉您,实例程序运行后的界面如下:

 


基本构成思想:

       原理很简单,只需要简要的三步。既:获取屏幕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

 

以上部分代码的具体实现的细节问题,可在下载实例代码后,仔细查看源码既可(内有详细注释)。

 

联系方式:

地址:陕西省西安市劳动路2号院六单元

邮编:710082

作者EMAIL:jingzhou_xu@163.net

未来工作室(Future Studio)

 

基于opencv2实现证件照换背景(从蓝色到红色)

刚好手头上有一张证件照,尝试把蓝色底换成红色或白色底,网上搜的资料不多,且大多数都是基于opencv1写的,于是尝试写了下opencv2的。主要步骤为: 1.把RGB图像转换到HSV空间 2.取背...
  • jiang111_111shan
  • jiang111_111shan
  • 2015年05月30日 10:43
  • 4957

OpenCV颜色识别

彩色模型 数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述...
  • Liuqz2009
  • Liuqz2009
  • 2015年08月13日 22:45
  • 36987

opencv学习_7 (颜色空间)

这次我主要说说颜色空间,包括三个方面:RGB颜色空间,HSV颜色空间以及颜色空间的转换 RGB颜色空间介绍: 1:RGB颜色空间简介          三基色原理:大多数的颜色可以通过红、绿、蓝三...
  • Lu597203933
  • Lu597203933
  • 2013年11月03日 22:10
  • 9795

豆沙绿护眼色

色调:85,饱和度:123,亮度:205;RGB颜色红:199,绿:237,蓝:204;十六进制颜色:#C7EDCC或用#CCE8CF...
  • icecoola_
  • icecoola_
  • 2017年07月30日 19:27
  • 153

如何获取屏幕上各颜色的红、绿、蓝值

在桌面上运行各种程序中,有很多色彩十分靓丽,我们有时也想使用它们的颜色,但苦于没有源码,所以很难准确知道它们的R、G、B颜色值。于是便产生了很多拾取屏幕颜色的工具,你想知道它们是怎么用程序实现的么?下...
  • u012187684
  • u012187684
  • 2014年05月05日 09:31
  • 926

[opencv]013 简单RGBA通道的分离与混合

  • 2017年09月15日 14:28
  • 177KB
  • 下载

如何获取屏幕上各颜色的红、绿、蓝值

 如何获取屏幕上各颜色的红、绿、蓝值作者:徐景周下载示例源码(http://www.vckbase.com/code/viewcode.asp?id=1602)  在桌面上运行各种程序中,有很多色彩十...
  • jz_x
  • jz_x
  • 2002年08月06日 14:47
  • 1177

16进制颜色对照表

颜色对照表
  • qq15233635728
  • qq15233635728
  • 2015年02月07日 17:38
  • 526

三色球问题。有红、黄、绿三种颜色的球,其中红球3个,黄球3个,绿球6个。现将这12个球混放在一个盒子里,从中任意摸出8个球,编程计算摸出球的各种颜色搭配。

#include using namespace std; int main() { int r,y,l;//r红,y黄,l蓝 for(r=0;r
  • baidu_25953301
  • baidu_25953301
  • 2015年02月11日 15:15
  • 1742

opencv--颜色物体识别跟踪

HSV颜色空间与人眼较为接近,一般以HSV为颜色检测和识别 H--色调(红-绿-蓝) S--饱和度(颜色深浅) V-亮度(颜色亮暗) opencv H范围(0-180)  S(0-255)  V(0-...
  • qq_35971623
  • qq_35971623
  • 2017年09月02日 19:22
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何获取屏幕上各颜色的红、绿、蓝值
举报原因:
原因补充:

(最多只允许输入30个字)