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__