www.pudn.com > 人体步态跟踪识别bate版.rar > Cdib.h
// cdib.h 声明CDib类
#ifndef _INSIDE_VISUAL_CPP_CDIB
#define _INSIDE_VISUAL_CPP_CDIB
class CDib : public CObject
{
DECLARE_SERIAL(CDib)
public:
HBITMAP m_hBitmap;
LPBYTE m_lpDIBits; // DIB位的起始位置
LPBITMAPINFOHEADER m_lpBMPHdr; //包含BITMAPINFOHEADER信息
LPVOID m_lpvColorTable;//颜色表信息
private:
HGLOBAL m_hGlobal; // 释放窗口或分配内存
DWORD m_dwImageSize; //非BITMAPINFOHEADER或BITMAPFILEHEADER的位
int m_nColorEntries;//颜色表项的个数
HANDLE m_hFile;
HANDLE m_hMap;
LPVOID m_lpvFile;
HPALETTE m_hPalette;
public:
CPoint m_Dest;//目的矩形域的左上角坐标
CSize m_DestSize;//显示矩形的宽度和高度
CPoint m_Src;//原矩形左下角坐标
CSize m_SrcSize;//原矩形宽度和高度
public:
CDib();
CDib(CSize size, int nBitCounts); //给BITMAPINFOHEADER赋初值
~CDib();
BOOL AllotDibMemory(LPVOID lpvMemory);//
BOOL CompressDib(CDC* pDC, BOOL BitsiCompress = TRUE); // FALSE意味着减压//
void ComputeImage();//
void ComputePaletteSize(int nBitCounts);//
BOOL CopyMapFile(const char* strPathname);//
HBITMAP CreateBitmap(CDC* pDC);//
HBITMAP CreateSection(CDC* pDC = NULL);//
void InitDestroy();
BOOL Display(CDC* pDC); // 显示图像
int GetHeaderSize()//
{return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorEntries;}//
int GetHeight();//
int GetImageSize() {return m_dwImageSize;}//
int GetWidth();//
BOOL ReadFile(CFile* pFile);
BOOL ReadSection(CFile* pFile, CDC* pDC = NULL);//
void ReleaseMapFile();//
void Serialize(CArchive& ar);
BOOL SetMapFile(const char* strPathname, BOOL bSharing = FALSE);//
BOOL SetLogPalette(CDC* pDC);//
BOOL SetWinPalette();//
UINT UseLogPalette(CDC* pDC);//
BOOL WriteFile(CFile* pFile);
};
#endif // _INSIDE_VISUAL_CPP_CDIB