www.pudn.com > vehiclehsv.rar > Hdib.h, change:2002-03-20,size:2802b


// HDib.h: interface for the CDib class. 
// 
////////////////////////////////////////////////////////////////////// 
 
///////////////////////////////////// 
//     CDib 1999.12.30 version     // 
//           By HuYu               // 
///////////////////////////////////// 
 
 
#if !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_) 
#define AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
#include "fstream.h" 
#include "stdio.h" 
#define PALVERSION   0x300   //调色板版本 
#define RECTWIDTH(lpRect)     ((lpRect)->right - (lpRect)->left) 
#define RECTHEIGHT(lpRect)    ((lpRect)->bottom - (lpRect)->top) 
#define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4) 
///////////////////////////////////// 
//     CDib 1999.12.30 version     // 
//           By HuYu               // 
///////////////////////////////////// 
class CDib   
{ 
/***********************************/ 
/***********************************/ 
/**            成员变量:         **/ 
/***********************************/ 
/***********************************/ 
private: 
	HPALETTE m_hPal;     //调色板类Cpalette的句柄; 
public: 
	CString arcFileName;  //图像文档名; 
	BYTE * m_Buffer;     //图像备份内存指针; 
	BYTE * m_Buffer1;     //图像备份内存映象指针; 
	RGBQUAD * m_Quad;    //彩色表指针; 
	DWORD m_BmpLoaded;  //取值True或False; 
	BITMAPFILEHEADER m_BmpFH;  //bmp文件头结构; 
	BITMAPINFO * m_BmpInfo;  //bmp信息头指针; 
//位图数据: 
	DWORD Width;//位图宽度(像素); 
	DWORD Height;//位图高度(像素); 
	DWORD BPP;//位图色彩深度; 
	DWORD BufferSize;//位图数据区尺寸(字节); 
	DWORD Bpl;//位图每一行占据的字节数; 
	DWORD NumberOfColors;//调色板中颜色数目; 
    WORD BmpMarker;//位图标识; 
/***********************************/ 
/***********************************/ 
/**            成员函数:         **/ 
/***********************************/ 
/***********************************/ 
private: 
	BOOL CreatePalette(); 
	DWORD PaletteSize(); 
	void CalBmpData(); 
public: 
	BOOL GetRedImg(); 
	BOOL GetGreenImg(); 
	BOOL GetBlueImg(); 
	void restoreimage(); 
	BITMAPINFOHEADER GetImageInfo(LPCTSTR fn, DWORD &w, DWORD &h); 
	void Sort(DWORD &x0,DWORD &x1); 
	BOOL Draw(HDC hDC,LPRECT rcDest,LPRECT rcSrc); 
	void SetBmpMarker(DWORD b='B',DWORD m='M'); 
	BOOL PickBitmapToFile(LPCTSTR fn,DWORD xt,DWORD yt,DWORD xb,DWORD yb); 
//根据输入的像素位置提取位图数据: 
//根据像素位置获取在内存中的位置; 
	BYTE * FindPos(DWORD x,DWORD y); 
	void  Resize(int sz); 
	BYTE * GetBuffer();//获取内存指针; 
	void   Free();//释放所有内存; 
	BOOL   SaveBmp(LPCTSTR fn); 
	BOOL   LoadBmp(LPCTSTR fn); 
	CDib(); 
	virtual ~CDib(); 
 
protected: 
}; 
 
#endif // !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_)