各种数据压缩和解压的源码

源代码在线查看: dib.h

软件大小: 9634 K
上传用户: a974555392
关键词: 数据压缩 解压 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				// dib.h
				
				#ifndef _INC_DIBAPI
				#define _INC_DIBAPI
				
				// DIB句柄
				DECLARE_HANDLE(HDIB);
				
				// DIB常量
				#define PALVERSION   0x300
				
				/* DIB宏 */
				
				// 判断是否是Win 3.0的DIB
				#define IS_WIN30_DIB(lpbi)  ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER))
				
				// 计算矩形区域的宽度
				#define RECTWIDTH(lpRect)     ((lpRect)->right - (lpRect)->left)
				
				// 计算矩形区域的高度
				#define RECTHEIGHT(lpRect)    ((lpRect)->bottom - (lpRect)->top)
				
				// 在计算图像大小时,采用公式:biSizeImage = biWidth' × biHeight。
				// 是biWidth',而不是biWidth,这里的biWidth'必须是4的整倍数,表示
				// 大于或等于biWidth的,离4最近的整倍数。WIDTHBYTES就是用来计算
				// biWidth'
				#define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4)
				
				
				class CDIB
				{
				
				public:
					void SetCircleColor(HDIB hDIB, CRect rect, COLORREF col);
					void SetRgnColor(HDIB hDIB, CRect rect, COLORREF col);
					CDIB();
					~CDIB();
				
					// 函数原型
					BOOL	PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDIB,LPRECT lpDIBRect,CPalette* pPal);
					BOOL    CreateDIBPalette(HDIB hDIB, CPalette* cPal);
					LPBYTE   FindDIBBits (LPBYTE lpbi);
					DWORD   DIBWidth (LPBYTE lpDIB);
					DWORD   DIBHeight (LPBYTE lpDIB);
					WORD    PaletteSize (LPBYTE lpbi);
					WORD    DIBNumColors (LPBYTE lpbi);
					WORD	DIBBitCount(LPBYTE lpbi);
					HGLOBAL CopyHandle (HGLOBAL h);
				
					BOOL    SaveDIB (HDIB hDib, CFile& file);
					HDIB    ReadDIBFile(CFile& file);
				};
				#endif //!_INC_DIBAPI
							

相关资源