#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_LZW 5L #define HGIMGFMT_TIFFCOMP_JPEG 7L /* 分辨率单位 */ #define HGIMGFMT_TIFFRESUNIT_NONE 1L #define HGIMGFMT_TIFFRESUNIT_INCH 2L /* 英寸 */ #define HGIMGFMT_TIFFRESUNIT_CENTIMETER 3L /* 厘米 */ typedef struct { HGUInt width; /* 图像宽 */ HGUInt height; /* 图像高 */ HGUShort bitsPerSample; /* 每个采样的比特数 */ HGUShort samplesPerPixel; /* 每个像素的采样数 */ HGUShort compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */ HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */ HGFloat xResolution; /* 分辨率x值 */ HGFloat yResolution; /* 分辨率y值 */ }UPTiffLoadInfo; typedef struct { HGUInt compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */ HGUInt jpegQuality; /* jpeg压缩质量, 0-100 */ HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */ HGFloat xResolution; /* 分辨率x值 */ HGFloat yResolution; /* 分辨率y值 */ }UPTiffSaveInfo; 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, UPTiffLoadInfo* 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 UPTiffSaveInfo* info); #endif /* __HGTIFF_H__ */