Hdib.h
上传用户:cjd055
上传日期:2013-04-01
资源大小:608k
文件大小:3k
- // 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_)