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

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

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

posted on 2008-04-17 00:14 思哲 阅读(340) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理


<2026年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

文章档案

搜索

最新评论