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