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 閱讀(456) 評論(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
          主站蜘蛛池模板: 成安县| 广饶县| 通山县| 手游| 龙胜| 钦州市| 敖汉旗| 阆中市| 钟祥市| 连平县| 昆明市| 贵州省| 柯坪县| 长治县| 元氏县| 西乡县| 兴海县| 肃南| 会东县| 都江堰市| 江北区| 靖江市| 高邑县| 和平县| 漯河市| 长子县| 色达县| 西峡县| 图木舒克市| 申扎县| 万安县| 阳东县| 辽阳市| 萨嘎县| 门头沟区| 鄱阳县| 博兴县| 镇康县| 湘西| 灵石县| 富阳市|