www.pudn.com > Gesture[20040824].rar > CBmpFile.h


// CBmpFile is Copyright (c)1998 Jonathan Nix 
// All Rights Reserved. 
 
#if !defined(AFX_BITMAP_H__CBE6C0DA_81D7_48A3_96E5_E0142237E597__INCLUDED_) 
#define AFX_BITMAP_H__CBE6C0DA_81D7_48A3_96E5_E0142237E597__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
  
 
// This lib supports 24bpp and only 24bpp. 
// You can convert to other formats using the GDI. 
 
struct PIXEL 
{ 
	BYTE red, green, blue; 
}; 
 
typedef PIXEL *LPRGB; 
 
class CBmpFile 
{ 
public:  
	void Show( HDC dc, int x, int y, int from_x, int from_y ); 
	BITMAPINFO* GetBitmapInfo(); 
	int GetFileSize(); 
	int GetBpp(); 
	int Width(); // Pixels... 
	int Height(); 
	CBmpFile(); 
	CBmpFile(LPSTR szFilename); 
	~CBmpFile(); 
 
	bool Load(LPSTR szFilename); 
	bool Load(HANDLE hFile); 
 
	bool Save(LPSTR szFilename); 
	bool Save(HANDLE hFile); 
 
	LPRGB GetRGB(); 
	bool IsValid() { return m_nIsValid==1; } 
	DWORD GetNumPixels() { return m_nNumPixels; } 
 
	BOOL Maskify(PIXEL rgbBkgColor); 
	BOOL BlueScreen(PIXEL rgbSetTo, PIXEL rgbThreshold); 
 
	HBITMAP CreateHandle(HDC hDC); 
 
protected: 
	int m_nNumPixels; 
	void Init(); 
	void Destroy(); 
 
	int m_nIsValid; 
 
	BITMAPFILEHEADER m_bmFileHeader; 
	BITMAPINFOHEADER m_bmInfoHeader; 
	LPRGB m_pRGB; 
 
private: 
}; 
HANDLE  MakeDib( HBITMAP hbitmap, UINT bits ); 
void ShowBmp(LPBITMAPINFO pBmpInfo,HDC dc, int x, int y, int from_x, int from_y); 
 
#endif // !defined(AFX_BITMAP_H__CBE6C0DA_81D7_48A3_96E5_E0142237E597__INCLUDED_)