#pragma once
class CGetPixel
{
private:
int m_bitmap_cx;
int m_bitmap_cy;
HDC m_hMemDC;
public:
HBITMAP m_bitmap;
CGetPixel() {}
CGetPixel(CString PicturePath) { LoadPicture(PicturePath); }
CGetPixel(WORD ResourceID) { LoadResource(ResourceID); }
~CGetPixel() { ::DeleteObject(m_bitmap);::DeleteDC(m_hMemDC) ; }
bool LoadPicture(CString PicturePath)
{
m_hMemDC = CreateCompatibleDC(NULL);
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(m_hMemDC,m_bitmap); //把位图选进内存DC
COLORREF rgb=::GetPixel(m_hMemDC,x,y);
//::DeleteDC(hMemDC) ; //删除内存DC
return rgb;
}
};
class CGetPixel
{
private:
int m_bitmap_cx;
int m_bitmap_cy;
HDC m_hMemDC;
public:
HBITMAP m_bitmap;
CGetPixel() {}
CGetPixel(CString PicturePath) { LoadPicture(PicturePath); }
CGetPixel(WORD ResourceID) { LoadResource(ResourceID); }
~CGetPixel() { ::DeleteObject(m_bitmap);::DeleteDC(m_hMemDC) ; }
bool LoadPicture(CString PicturePath)
{
m_hMemDC = CreateCompatibleDC(NULL);
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(m_hMemDC,m_bitmap); //把位图选进内存DC
COLORREF rgb=::GetPixel(m_hMemDC,x,y);
//::DeleteDC(hMemDC) ; //删除内存DC
return rgb;
}
};