weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          獲取象素的RGB

          HBITMAP???hBmp??? = ???::LoadImage();????? // 這里加載位圖???
          ????
          CDC???dc;???
          dc.CreateCompatibleDC(NULL);???
          CBitmap???
          * pbmpTemp??? = ???dc.SelectObject(CBitmap::FormHandle(hBmp));???
          ????
          dc.GetPixel(x,???y)?????
          // 這里取值???
          ????
          dc.SelectObject(pbmpTemp);???
          dc.DeleteDC();?

          posted on 2006-08-01 23:58 weidagang2046 閱讀(458) 評論(1)  編輯  收藏 所屬分類: Windows

          評論

          # re: 獲取象素的RGB  回復  更多評論   

          原理很簡單,只需要簡要的三步。既:獲取屏幕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
          2006-11-16 17:06 | weidagang2046
          主站蜘蛛池模板: 天水市| 东阿县| 包头市| 延川县| 越西县| 塔河县| 崇阳县| 凤山县| 清原| 江源县| 朔州市| 吉林省| 武安市| 虎林市| 应用必备| 时尚| 新闻| 麻江县| 巴塘县| 九寨沟县| 晋江市| 泉州市| 台东市| 兴仁县| 呼玛县| 名山县| 五寨县| 云阳县| 抚远县| 枣阳市| 高清| 闵行区| 中牟县| 马龙县| 阿瓦提县| 临颍县| 安化县| 桃江县| 钟祥市| 天峨县| 莱州市|