www.pudn.com > 9999999.rar > dibapi.h


//dibapi.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) 
 
//函数原形 
BOOL WINAPI PaintDIB(HDC,LPRECT,HDIB,LPRECT,CPalette* pPal); 
BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette* pPal); 
LPSTR WINAPI FindDIBBits(LPSTR lpbi); 
DWORD WINAPI DIBWidth(LPSTR lpDIB); 
DWORD WINAPI DIBHeight(LPSTR lpDIB); 
WORD WINAPI PaletteSize(LPSTR lpbi); 
WORD WINAPI DIBNumColors(LPSTR lpbi); 
HGLOBAL WINAPI CopyHandle(HGLOBAL h); 
BOOL WINAPI SaveDIB(HDIB hDib,CFile& file); 
HDIB WINAPI ReadDIBFile(CFile& file); 
BOOL WINAPI LinerTrans(LPSTR lpDIBBits,LONG lWidth,LONG lHeight, FLOAT fA,FLOAT fB); 
BOOL WINAPI ThresholdTrans(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,BYTE bThre); 
BOOL WINAPI WindowTrans(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,BYTE blow,BYTE bUp); 
BOOL WINAPI GrayStretch(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,BYTE bX1,BYTE bY1,BYTE bX2,BYTE bY2); 
BOOL WINAPI InteEqualize(LPSTR lpDIBBits,LONG lWidth,LONG lHeight); 
BOOL WINAPI ChaosEncode(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,double Xstrart,double a); 
DWORD WINAPI LogisticCode(double Xstart,double a); 
double WINAPI Logistic(double Xstart,double a); 
#endif//!_INC_DIBAPI