www.pudn.com > ImageSearch.rar > DIB24.h


// dib24.h : header file 
// 
// CDIB24 class 
// 
 
#ifndef __CDIB24__ 
#define __CDIB24__ 
 
 
class CDIB24 : public CObject 
{ 
    DECLARE_SERIAL(CDIB24) 
public: 
    CDIB24(); 
    ~CDIB24(); 
 
    BITMAPINFO* GetBitmapInfoAddress() 
        {return m_pBMI;}                          // Pointer to bitmap info 
    BYTE* GetBitsAddress() 
        {return m_pBits;}                         // Pointer to the bits 
  
	virtual int GetAddWidth(){return DibAddWidth();};  
	virtual int GetWidth() {return DibWidth();}   // Image width 
    virtual int GetHeight() {return DibHeight();} // Image height 
    BYTE*   GetBits() {return m_pBits;} // Image bits pointer 
 
     
    virtual BOOL Create(int width, int height);   // Create a new DIB 
    virtual BOOL Load(CFile* fp);                 // Load from file 
	virtual BOOL Save(CFile* fp);                 // Save into file; 
    virtual void Draw(CDC* pDC, int x, int y,int iScale=1); 
 
    virtual void Serialize(CArchive& ar); 
 
protected: 
    BITMAPINFO* m_pBMI;         // Pointer to BITMAPINFO struct 
	BYTE* m_pBits;              // Pointer to the bits 
 
private: 
   	int m_iAddWidth; 
    int DibWidth() 
        {return m_pBMI->bmiHeader.biWidth;} 
    int DibHeight()  
        {return m_pBMI->bmiHeader.biHeight;} 
	int DibAddWidth() 
	{return  ((m_pBMI->bmiHeader.biWidth*3 + 3) & ~3)-m_pBMI->bmiHeader.biWidth*3;} 
 
}; 
 
#endif // __DIB24__