⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dib.h

📁 模式识别中经典试验
💻 H
字号:
// Dib.h: interface for the CDib class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIB_H__432F91A6_4908_4AA0_AED2_E215A0023159__INCLUDED_)
#define AFX_DIB_H__432F91A6_4908_4AA0_AED2_E215A0023159__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

struct Pix24Bitmap {
		BYTE Blue;
		BYTE Green;
		BYTE Red;
	};

class CDib:public CObject  
{
	DECLARE_DYNAMIC(CDib)
public:
	CDib();
	CDib(const char* pszDibFileName);
	virtual ~CDib();
	int Draw(HDC hdc, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight, UINT iUsage, DWORD dwRop);
public:
	void DrawDib(HDC hDC);
	void ClearMemory();
	HPALETTE CreateBitmapPalette();
	

//	Pix24Bitmap m_nBitmapData24;


#ifdef _DEBUG
	virtual void Dump(CDumpContext& dc) const;
	virtual void AssertValid() const;
#endif
	////

	DWORD		GetDdbData32(LPBYTE lpbyDdb32);
	DWORD		GetDdbData24(LPBYTE lpbyDdb24);

	DWORD		GetDibWidthBytes(int nWidth,  BYTE byBitCount);
	BYTE		GetBitCount() const;
    DWORD		GetSize();
    LONG		GetWidth() const;
    LONG		GetHeight() const;
    UINT		GetColorNumber() const;
	char*		GetFileName() const;
	BOOL		IsValid() const ;
    RGBQUAD*	GetRGBQuad() const ;
    BYTE*		GetDibData() const ;
    BITMAPINFO* GetBmpInfo() const;

	Pix24Bitmap LoadBitmapIndex(int i,int j);
protected:
	BOOL m_bValid;								//表示装载位图图像的操作过程是否成功
	RGBQUAD* m_pRGBQuad;						//指向颜色表项的指针,如为24位图,则值为NULL
	BYTE* m_pDibData;							//指向位数据的指针
	LONG m_nWidth;								//图像的宽度
	LONG m_nHeight;								//图像的高度
	BYTE m_nBitCount;							//颜色的位数,1,4,8,24
	UINT m_nTotalColors;						//颜色总数,对于一位位图,其值为2,以下类推
	char* m_pszFileName;						//文件名(含路径)
	BITMAPFILEHEADER* m_pBitmapFileHeader;		//指向位图文件头
	BITMAPINFOHEADER* m_pBitmapInfoHeader;		//指向位图信息头
	BITMAPINFO* m_pBitmapInfo;					//指向BITMAPINFO的指针
	HGLOBAL m_hDIB;								//为内存管理句柄
public:
	BITMAPINFOHEADER* GetBitmapInfoHeaderPoint();
	BYTE* GetDibDataPoint();


protected:
	void LoadFile(const char* pszDibFileName);

private:
	void Init();



};

#endif // !defined(AFX_DIB_H__432F91A6_4908_4AA0_AED2_E215A0023159__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -