weidagang2046的專欄

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

          獲取象素的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  回復(fù)  更多評論   

          原理很簡單,只需要簡要的三步。既:獲取屏幕DC、得到當(dāng)前鼠標(biāo)所在的像素值、分解出像素值中的紅、綠、藍(lán)三色既可,很簡單吧!

          關(guān)鍵代碼實(shí)現(xiàn):
          1、 獲取屏幕DC


          HDC hDC = ::GetDC(NULL); //獲取屏幕DC
          2、 獲取當(dāng)前鼠標(biāo)位置像素值


          CPoint pt;
          GetCursorPos(&pt);        //得到當(dāng)前鼠標(biāo)所在位置
          COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //獲取當(dāng)前鼠標(biāo)點(diǎn)像素值
          3、 分解出像素點(diǎn)中的紅、綠、藍(lán)顏色值

          CString ClrText;
          ClrText.Format("%d",GetRValue(clr));     //分解出紅色值
          ClrText.Format("%d",GetGValue(clr)); //分解出綠色值
          ClrText.Format("%d",GetBValue(clr)); //分解出藍(lán)色值
          ::ReleaseDC(NULL, hDC); //釋放屏幕DC
          2006-11-16 17:06 | weidagang2046
          主站蜘蛛池模板: 鹰潭市| 高阳县| 弋阳县| 清苑县| 分宜县| 黄陵县| 台东县| 玉山县| 九龙城区| 鹰潭市| 汝南县| 巩义市| 宁蒗| 绥德县| 依兰县| 始兴县| 延川县| 电白县| 兴仁县| 红原县| 阳朔县| 嘉禾县| 汝南县| 沁源县| 离岛区| 荥经县| 明溪县| 富蕴县| 蕉岭县| 称多县| 井冈山市| 天镇县| 永兴县| 北川| 湘潭市| 太保市| 凌海市| 三亚市| 汕尾市| 龙州县| 乐业县|