code_app/modules/imgfmt/HGTiff.h

66 lines
2.3 KiB
C

#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 /* 厘米 */
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_LoadTiffImage(const HGChar* fileName, 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);
HGEXPORT HGResult HGAPI HGImgFmt_SaveTiffImage(HGImage image, const UPTiffSaveInfo* info, const HGChar* fileName);
#endif /* __HGTIFF_H__ */