获取图片的像素值

 

获取图片的像素值


 

/****************************************************************************
获取图片的像素值
****************************************************************************/
class CGetPixel
{
private:
 int m_bitmap_cx;
 int m_bitmap_cy;
public: 
 HBITMAP m_bitmap;
 CGetPixel() {}
 CGetPixel(TCHAR * PicturePath) { LoadPicture(PicturePath); }
 CGetPixel(WORD ResourceID)  { LoadResource(ResourceID); }

 ~CGetPixel() { ::DeleteObject(m_bitmap);} 

 bool LoadPicture(TCHAR * PicturePath)
 {
  m_bitmap=(HBITMAP)LoadImage(NULL,  //应用程序实例   
   PicturePath,     //路径
   IMAGE_BITMAP,    
   0,        //如果不置0,则此参数指定m_bitmap的宽(位图被拉伸)  
   0,        //如果不置0,则此参数指定m_bitmap的高(位图被拉伸)  
   LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);
  
  if (!m_bitmap)
   return false;

  BITMAP bmp;  
        GetObject(m_bitmap,sizeof(BITMAP),(LPSTR)&bmp); 
  m_bitmap_cx=bmp.bmWidth;
  m_bitmap_cy=bmp.bmHeight;

  return true;
 }

 bool LoadResource(WORD ResourceID)
 {
  m_bitmap=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE (ResourceID) ); 

  if (!m_bitmap)
   return false;

  BITMAP bmp;  
        GetObject(m_bitmap,sizeof(BITMAP),(LPSTR)&bmp); 
  m_bitmap_cx=bmp.bmWidth;
  m_bitmap_cy=bmp.bmHeight;

  return true;
 }

 COLORREF GetPixel(int x=0,int y=0)
 {  
  HDC hMemDC=CreateCompatibleDC(NULL);    //创建内存DC
  ::SelectObject(hMemDC,m_bitmap);      //把位图选进内存DC
  COLORREF rgb=::GetPixel(hMemDC,x,y);
  ::DeleteDC(hMemDC) ;        //删除内存DC
  return rgb;
 }
};

 

调用如下:

 

void CDemoDlg::OnButton2()
{
 CGetPixel bmp1("D://My Documents//My Pictures//风景图片//4244123431.bmp");
 COLORREF rgb=bmp1.GetPixel(39,10);
 
 BYTE r=GetRValue(rgb);
 BYTE g=GetGValue(rgb);
 BYTE b=GetBValue(rgb);
 trace3((int)r,(int)g,(int)b);

 

 

 CGetPixel bmp2(IDB_BITMAP1);
 COLORREF rgb2=bmp2.GetPixel(39,10);
}

 

 

 


 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值