base
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
// dib256.h
|
||||
//
|
||||
|
||||
#ifndef DIB256_H
|
||||
#define DIB256_H
|
||||
|
||||
#pragma once
|
||||
|
||||
class CDIBitmap
|
||||
{
|
||||
friend class CBmpPalette;
|
||||
|
||||
public:
|
||||
BITMAPINFO* m_pInfo;
|
||||
BYTE* m_pPixels;
|
||||
CBmpPalette* m_pPal;
|
||||
BOOL m_bIsPadded;
|
||||
|
||||
public: //constructors
|
||||
CDIBitmap();
|
||||
virtual ~CDIBitmap();
|
||||
|
||||
private:
|
||||
CDIBitmap(const CDIBitmap& dbmp);
|
||||
|
||||
public:
|
||||
BITMAPINFO* GetHeaderPtr() const;
|
||||
BYTE* GetPixelPtr() const;
|
||||
RGBQUAD* GetColorTablePtr() const;
|
||||
int GetWidth() const;
|
||||
int GetHeight() const;
|
||||
CBmpPalette* GetPalette() { return m_pPal; }
|
||||
|
||||
public: // operations
|
||||
BOOL CreatePalette(); // auto. made by "Load()" and "CreateFromBitmap()"
|
||||
void ClearPalette(); // destroy the palette associated with this image
|
||||
BOOL CreateFromBitmap(CDC*, CBitmap*);
|
||||
BOOL LoadResource(LPCTSTR ID);
|
||||
BOOL LoadResource(UINT ID) { return LoadResource(MAKEINTRESOURCE(ID)); }
|
||||
BOOL LoadBitmap(UINT ID) { return LoadResource(ID); }
|
||||
BOOL LoadBitmap(LPCTSTR ID) { return LoadResource(ID); }
|
||||
void DestroyBitmap();
|
||||
BOOL DeleteObject() { DestroyBitmap(); return TRUE; }
|
||||
|
||||
public: // overridables
|
||||
// draw the bitmap at the specified location
|
||||
virtual void DrawDIB(CDC * pDC, int x=0, int y=0);
|
||||
|
||||
// draw the bitmap and stretch/compress it to the desired size
|
||||
virtual void DrawDIB(CDC * pDC, int x, int y, int width, int height);
|
||||
|
||||
// draw parts of the dib into a given area of the DC
|
||||
virtual int DrawDIB(CDC * pDC, CRect & rectDC, CRect & rectDIB);
|
||||
|
||||
// load a bitmap from disk
|
||||
virtual BOOL Load(CFile* pFile);
|
||||
virtual BOOL Load(const CString&);
|
||||
|
||||
// save the bitmap to disk
|
||||
virtual BOOL Save(CFile* pFile);
|
||||
virtual BOOL Save(const CString&);
|
||||
|
||||
protected:
|
||||
int GetPalEntries() const;
|
||||
int GetPalEntries(BITMAPINFOHEADER& infoHeader) const;
|
||||
DWORD GetBitsPerPixel() const;
|
||||
DWORD LastByte(DWORD BitsPerPixel, DWORD PixelCount) const;
|
||||
DWORD GetBytesPerLine(DWORD BitsPerPixel, DWORD Width) const;
|
||||
BOOL PadBits();
|
||||
BOOL UnPadBits();
|
||||
WORD GetColorCount() const;
|
||||
};
|
||||
|
||||
#include "dibpal.h"
|
||||
|
||||
#endif // DIB256_H
|
||||
Reference in New Issue
Block a user