2022-05-03 10:25:52 +00:00
|
|
|
|
#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);
|
|
|
|
|
|
2022-05-13 03:56:46 +00:00
|
|
|
|
/* 压缩方式 */
|
2022-05-27 03:53:30 +00:00
|
|
|
|
#define HGIMGFMT_TIFFCOMP_NONE 1L
|
|
|
|
|
#define HGIMGFMT_TIFFCOMP_CCITTFAX4 4L
|
|
|
|
|
#define HGIMGFMT_TIFFCOMP_LZW 5L
|
|
|
|
|
#define HGIMGFMT_TIFFCOMP_JPEG 7L
|
2022-05-13 03:56:46 +00:00
|
|
|
|
|
|
|
|
|
/* 分辨率单位 */
|
2022-05-27 03:53:30 +00:00
|
|
|
|
#define HGIMGFMT_TIFFRESUNIT_NONE 1L
|
|
|
|
|
#define HGIMGFMT_TIFFRESUNIT_INCH 2L /* 英寸 */
|
2022-05-13 03:56:46 +00:00
|
|
|
|
#define HGIMGFMT_TIFFRESUNIT_CENTIMETER 3L /* 厘米 */
|
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
typedef struct
|
|
|
|
|
{
|
2022-05-13 03:56:46 +00:00
|
|
|
|
HGUInt width; /* 图像宽 */
|
|
|
|
|
HGUInt height; /* 图像高 */
|
|
|
|
|
HGUShort bitsPerSample; /* 每个采样的比特数 */
|
|
|
|
|
HGUShort samplesPerPixel; /* 每个像素的采样数 */
|
|
|
|
|
HGUShort compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */
|
|
|
|
|
HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */
|
|
|
|
|
HGFloat xResolution; /* 分辨率x值 */
|
|
|
|
|
HGFloat yResolution; /* 分辨率y值 */
|
2022-07-11 03:40:57 +00:00
|
|
|
|
}HGTiffLoadInfo;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
2022-05-13 03:56:46 +00:00
|
|
|
|
HGUInt compression; /* 压缩方式, 见HGIMGFMT_TIFFCOMP_* */
|
2022-05-13 12:38:58 +00:00
|
|
|
|
HGUInt jpegQuality; /* jpeg压缩质量, 0-100 */
|
2022-05-13 03:56:46 +00:00
|
|
|
|
HGUShort resolutionUnit; /* 分辨率单位, 见HGIMGFMT_TIFFRESUNIT_* */
|
|
|
|
|
HGFloat xResolution; /* 分辨率x值 */
|
|
|
|
|
HGFloat yResolution; /* 分辨率y值 */
|
2022-07-11 03:40:57 +00:00
|
|
|
|
}HGTiffSaveInfo;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
2022-07-11 03:40:57 +00:00
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_LoadImageFromTiffReader(HGTiffReader reader, HGUInt index, HGTiffLoadInfo* info,
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGUInt imgType, HGUInt imgOrigin, HGImage* image);
|
|
|
|
|
|
2022-07-11 03:40:57 +00:00
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_LoadTiffImage(const HGChar* fileName, HGTiffLoadInfo* info,
|
2022-05-14 02:32:45 +00:00
|
|
|
|
HGUInt imgType, HGUInt imgOrigin, HGImage* image);
|
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_OpenTiffWriter(const HGChar* fileName, HGTiffWriter* writer);
|
|
|
|
|
|
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_CloseTiffWriter(HGTiffWriter writer);
|
|
|
|
|
|
2022-07-11 03:40:57 +00:00
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_SaveImageToTiffWriter(HGTiffWriter writer, HGImage image, const HGTiffSaveInfo* info);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2022-07-11 03:40:57 +00:00
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_SaveTiffImage(HGImage image, const HGTiffSaveInfo* info, const HGChar* fileName);
|
2022-05-14 02:32:45 +00:00
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
#endif /* __HGTIFF_H__ */
|