请问那里有这个软件代码下载或者请给出原代码,谢谢!
该软件能够打开一张bmp图像,并且可以通过对话框输入图像中某个点的坐标,即x、y的值,然后返回该点的RGB三个颜色值分别是多少?急用,谢谢!

解决方案 »

  1.   

    可windows的画图软件不能分别返回指定象素的RGB值分别是多少呀?
      

  2.   

    获取屏幕上各颜色的红、绿、蓝值
    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
      

  3.   

    建议你看一下BMP文件的结构,使用CDib打开BMP图象,先判断该图象是多少色的图象,
    int nSpan= Colorbits/8,CDib m_dibFile; iCurrB=m_dibFile.m_lpImage[(x+y*m_dibFile.m_lpBMIH->biWidth)*nSpan]; iCurrG=m_dibFile.m_lpImage[(x+y*m_dibFile.m_lpBMIH->biWidth)*nSpan+1];iCurrR=m_dibFile.m_lpImage[(x+y*m_dibFile.m_lpBMIH->biWidth)*nSpan+2];
      

  4.   

    HDC m_hdc=::GetDC(*this);//指向当前图像
    COLORREF clr=::GetPixel(m_hdc,x,y);
    CString ClrText;
    ClrText.Format("R值为:%d\nG值为:%d\nB值为:%d",(int)GetRValue(clr),(int)GetGValue(clr),(int)GetBValue(clr));
    ::MessageBox(NULL,ClrText,"输出的RGB值",MB_OK);