#ifndef __HGIMGFMT_H__ #define __HGIMGFMT_H__ #include "../base/HGDef.h" #include "../base/HGBaseErr.h" #include "HGImgFmtErr.h" #include "../base/HGImage.h" #include "HGTiff.h" HG_DECLARE_HANDLE(HGImgFmtReader); HG_DECLARE_HANDLE(HGImgFmtWriter); /* JPEG */ #define HGIMGFMT_TYPE_JPEG 1L /* BMP */ #define HGIMGFMT_TYPE_BMP 2L /* PNG */ #define HGIMGFMT_TYPE_PNG 3L /* TIFF */ #define HGIMGFMT_TYPE_TIFF 4L /* PDF */ #define HGIMGFMT_TYPE_PDF 5L /* OFD */ #define HGIMGFMT_TYPE_OFD 6L /* GIF */ #define HGIMGFMT_TYPE_GIF 7L /* PNM */ #define HGIMGFMT_TYPE_PNM 8L #pragma pack(push) #pragma pack(4) typedef struct { HGUInt width; /* 图像宽 */ HGUInt height; /* 图像高 */ HGUInt bpp; /* 每像素比特数 */ HGUInt xDpi; /* x-DPI */ HGUInt yDpi; /* y-DPI */ }HGImgFmtLoadInfo; typedef struct { HGUInt jpegQuality; /* jpeg质量 */ HGUInt tiffCompression; /* tiff压缩方式, 见HGIMGFMT_TIFFCOMP_* */ HGUInt tiffJpegQuality; /* tiff-jpeg质量 */ }HGImgFmtSaveInfo; #pragma pack(pop) HGEXPORT HGResult HGAPI HGImgFmt_GetImgFmtType(const HGChar* fileName, HGUInt* fmtType); HGEXPORT HGResult HGAPI HGImgFmt_GetImgFmtTypeFromFileName(const HGChar* fileName, HGUInt* fmtType); HGEXPORT HGResult HGAPI HGImgFmt_IsMultiImgFmtType(HGUInt fmtType, HGBool *isMulti); HGEXPORT HGResult HGAPI HGImgFmt_LoadImage(const HGChar *fileName, HGUInt fmtType, HGImgFmtLoadInfo *info, HGUInt imgType, HGUInt imgOrigin, HGImage *image); HGEXPORT HGResult HGAPI HGImgFmt_SaveImage(HGImage image, HGUInt fmtType, const HGImgFmtSaveInfo *info, const HGChar *fileName); HGEXPORT HGResult HGAPI HGImgFmt_OpenImageReader(const HGChar *fileName, HGUInt fmtType, HGImgFmtReader *reader); HGEXPORT HGResult HGAPI HGImgFmt_CloseImageReader(HGImgFmtReader reader); HGEXPORT HGResult HGAPI HGImgFmt_GetImagePageCount(HGImgFmtReader reader, HGUInt *count); HGEXPORT HGResult HGAPI HGImgFmt_LoadImageFromReader(HGImgFmtReader reader, HGUInt index, HGImgFmtLoadInfo *info, HGUInt imgType, HGUInt imgOrigin, HGImage *image); HGEXPORT HGResult HGAPI HGImgFmt_OpenImageWriter(const HGChar *fileName, HGUInt fmtType, HGImgFmtWriter *writer); HGEXPORT HGResult HGAPI HGImgFmt_CloseImageWriter(HGImgFmtWriter writer); HGEXPORT HGResult HGAPI HGImgFmt_SaveImageToWriter(HGImgFmtWriter writer, HGImage image, const HGImgFmtSaveInfo *info); #endif /* __HGIMGFMT_H__ */