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 閱讀(457) 評論(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
          主站蜘蛛池模板: 榆社县| 东台市| 穆棱市| 皋兰县| 莫力| 宁都县| 尖扎县| 黎川县| 洪雅县| 和林格尔县| 吴江市| 西昌市| 安塞县| 莎车县| 永清县| 瓦房店市| 济南市| 牙克石市| 大连市| 辽中县| 富平县| 许昌市| 池州市| 绩溪县| 玉龙| 沙洋县| 临漳县| 合水县| 泗水县| 西城区| 合川市| 库车县| 东阿县| 合阳县| 石狮市| 潜江市| 云龙县| 宣威市| 太白县| 永昌县| 侯马市|