#ifndef __HGTIFF_H__ #define __HGTIFF_H__ #include "../base/HGDef.h" #include "../base/HGBaseErr.h" #include "HGImgFmtErr.h" #include "../base/HGImage.h" HG_DECLARE_HANDLE(HGTiffReader); HG_DECLARE_HANDLE(HGTiffWriter); /* 压缩方式 */ #define HGIMGFMT_TIFFCOMP_NONE 1L #define HGIMGFMT_TIFFCOMP_CCITTFAX4 4L #define HGIMGFMT_TIFFCOMP_LZW 5L #define HGIMGFMT_TIFFCOMP_JPEG 7L /* 分辨率单位 */ #define HGIMGFMT_TIFFRESUNIT_NONE 1L #define HGIMGFMT_TIFFRESUNIT_INCH 2L /* 英寸 */ #define HGIMGFMT_TIFFRESUNIT_CENTIMETER 3L /* 厘米 */ #pragma pack(push) #pragma pack(4) typedef struct { HGUInt width; /* 图像宽 */ HGUInt height; /* 图像高 */ HGUShort bitsPerSample; /* 每个采样的比特数 */ HGUShort samplesPerPixel; /* 每个像素的采样数 */ HGUShort compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */ HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */ HGFloat xResolution; /* 分辨率x值 */ HGFloat yResolution; /* 分辨率y值 */ }HGTiffLoadInfo; typedef struct { HGUInt compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */ HGUInt jpegQuality; /* jpeg压缩质量, 0-100 */ HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */ HGFloat xResolution; /* 分辨率x值 */ HGFloat yResolution; /* 分辨率y值 */ }HGTiffSaveInfo; #pragma pack(pop) HGEXPORT HGResult HGAPI HGImgFmt_CheckTiffFile(const HGChar* fileName, HGBool* isTiff); HGEXPORT HGResult HGAPI HGImgFmt_OpenTiffReader(const HGChar* fileName, HGTiffReader* reader); HGEXPORT HGResult HGAPI HGImgFmt_CloseTiffReader(HGTiffReader reader); HGEXPORT HGResult HGAPI HGImgFmt_GetTiffPageCount(HGTiffReader reader, HGUInt* count); HGEXPORT HGResult HGAPI HGImgFmt_LoadImageFromTiffReader(HGTiffReader reader, HGUInt index, HGTiffLoadInfo* info, HGUInt imgType, HGUInt imgOrigin, HGImage* image); HGEXPORT HGResult HGAPI HGImgFmt_LoadTiffImage(const HGChar* fileName, HGTiffLoadInfo* info, HGUInt imgType, HGUInt imgOrigin, HGImage* image); HGEXPORT HGResult HGAPI HGImgFmt_OpenTiffWriter(const HGChar* fileName, HGTiffWriter* writer); HGEXPORT HGResult HGAPI HGImgFmt_CloseTiffWriter(HGTiffWriter writer); HGEXPORT HGResult HGAPI HGImgFmt_SaveImageToTiffWriter(HGTiffWriter writer, HGImage image, const HGTiffSaveInfo* info); HGEXPORT HGResult HGAPI HGImgFmt_SaveTiffImage(HGImage image, const HGTiffSaveInfo* info, const HGChar* fileName); #endif /* __HGTIFF_H__ */