#ifndef __X_IMAGE_H__ #define __X_IMAGE_H__ #include "xfile.h" #include "xiofile.h" #include "xmemfile.h" #include "ximadef.h" // CxImage formats enumerator enum ENUM_CXIMAGE_FORMATS{ CXIMAGE_FORMAT_UNKNOWN = 0, #if CXIMAGE_SUPPORT_BMP CXIMAGE_FORMAT_BMP = 1, #endif #if CXIMAGE_SUPPORT_GIF CXIMAGE_FORMAT_GIF = 2, #endif #if CXIMAGE_SUPPORT_JPG CXIMAGE_FORMAT_JPG = 3, #endif #if CXIMAGE_SUPPORT_PNG CXIMAGE_FORMAT_PNG = 4, #endif #if CXIMAGE_SUPPORT_ICO CXIMAGE_FORMAT_ICO = 5, #endif #if CXIMAGE_SUPPORT_TIF CXIMAGE_FORMAT_TIF = 6, #endif #if CXIMAGE_SUPPORT_TGA CXIMAGE_FORMAT_TGA = 7, #endif #if CXIMAGE_SUPPORT_PCX CXIMAGE_FORMAT_PCX = 8, #endif #if CXIMAGE_SUPPORT_WBMP CXIMAGE_FORMAT_WBMP = 9, #endif #if CXIMAGE_SUPPORT_WMF CXIMAGE_FORMAT_WMF = 10, #endif #if CXIMAGE_SUPPORT_JP2 CXIMAGE_FORMAT_JP2 = 11, #endif #if CXIMAGE_SUPPORT_JPC CXIMAGE_FORMAT_JPC = 12, #endif #if CXIMAGE_SUPPORT_PGX CXIMAGE_FORMAT_PGX = 13, #endif #if CXIMAGE_SUPPORT_PNM CXIMAGE_FORMAT_PNM = 14, #endif #if CXIMAGE_SUPPORT_RAS CXIMAGE_FORMAT_RAS = 15, #endif #if CXIMAGE_SUPPORT_JBG CXIMAGE_FORMAT_JBG = 16, #endif #if CXIMAGE_SUPPORT_MNG CXIMAGE_FORMAT_MNG = 17, #endif #if CXIMAGE_SUPPORT_SKA CXIMAGE_FORMAT_SKA = 18, #endif #if CXIMAGE_SUPPORT_RAW CXIMAGE_FORMAT_RAW = 19, #endif CMAX_IMAGE_FORMATS = CXIMAGE_SUPPORT_BMP + CXIMAGE_SUPPORT_GIF + CXIMAGE_SUPPORT_JPG + CXIMAGE_SUPPORT_PNG + CXIMAGE_SUPPORT_MNG + CXIMAGE_SUPPORT_ICO + CXIMAGE_SUPPORT_TIF + CXIMAGE_SUPPORT_TGA + CXIMAGE_SUPPORT_PCX + CXIMAGE_SUPPORT_WBMP+ CXIMAGE_SUPPORT_WMF + CXIMAGE_SUPPORT_JBG + CXIMAGE_SUPPORT_JP2 + CXIMAGE_SUPPORT_JPC + CXIMAGE_SUPPORT_PGX + CXIMAGE_SUPPORT_PNM + CXIMAGE_SUPPORT_RAS + CXIMAGE_SUPPORT_SKA + CXIMAGE_SUPPORT_RAW + 1 }; namespace CTangentImage { HANDLE ReadJpeg(const TCHAR *pszInput); HANDLE ReadJpeg(FILE *pszInput); // ReadJpeg函数只能够读取.jpg图像 // header - 位图信息头结构 // pData - 位图数据 DWORD ReadJpeg(const TCHAR *pszInput, BITMAPINFOHEADER &header, char* &pData); DWORD ReadJpeg(FILE *Input, BITMAPINFOHEADER &header, char* &pData); // nType 标记传入文件的类型 // 传出的文件类型为.jpg int WriteJpeg( const TCHAR *pszInput, const TCHAR *pszOutput, int nType, float fQuality = 100.); int WriteJpeg( FILE *Input, FILE *Output, int nType, float fQuality = 100.); // nType 标明传入文件的类型 HANDLE GetCopyToHandle(const TCHAR *pszInput, int nType); HANDLE GetCopyToHandle(FILE *Input, int nType); HANDLE ReadOtherPicFile(const TCHAR *pszInput); // header - 位图信息头结构 // pData - 位图数据 DWORD ReadOtherPicFile(const TCHAR *pszInput, BITMAPINFOHEADER &header, char* &pData); int OtherPicToJpeg(const TCHAR *pszInput, const TCHAR *pszOutput, float fQuality = 100.); // tools DWORD GetBmpInfoByDib(HANDLE hDib , BITMAPINFOHEADER &header, char* &pData); HANDLE GetDibHandle(const TCHAR *pszInput, DWORD dwType); HANDLE GetDibHandle(FILE *Input, DWORD dwType); WORD PaletteSize(LPSTR lpbi); WORD DIBNumColors(LPSTR lpbi); char* FindDIBBits(LPSTR lpbi); DWORD GetImageType(const TCHAR* pszName); }; //////////////////////////////////////////////////////////////////////////// #endif