#ifndef __HGJPEG_H__ #define __HGJPEG_H__ #include "../base/HGDef.h" #include "../base/HGBaseErr.h" #include "HGImgFmtErr.h" #include "../base/HGImage.h" #include "../base/HGBuffer.h" /* 颜色空间 */ #define HGIMGFMT_JPEGCLRSPACE_UNKNOWN 0L #define HGIMGFMT_JPEGCLRSPACE_GRAYSCALE 1L #define HGIMGFMT_JPEGCLRSPACE_RGB 2L /* 分辨率单位 */ #define HGIMGFMT_JPEGDENUNIT_INCH 1L /* 英寸 */ #define HGIMGFMT_JPEGDENUNIT_CENTIMETER 2L /* 厘米 */ #pragma pack(push) #pragma pack(4) typedef struct { HGUInt width; /* 图像宽 */ HGUInt height; /* 图像高 */ HGUInt numComponents; /* 颜色数量 */ HGUInt colorSpace; /* 颜色空间, 见HGIMGFMT_JPEGCLRSPACE_* */ HGByte densityUnit; /* 分辨率单位, 见HGIMGFMT_JPEGDENUNIT_* */ HGUShort xDensity; /* 分辨率x值 */ HGUShort yDensity; /* 分辨率y值 */ }HGJpegLoadInfo; typedef struct { HGUInt quality; /* 压缩质量, 0-100 */ HGByte densityUnit; /* 分辨率单位, 见HGIMGFMT_JPEGDENUNIT_* */ HGUShort xDensity; /* 分辨率x值 */ HGUShort yDensity; /* 分辨率y值 */ }HGJpegSaveInfo; #pragma pack(pop) HGEXPORT HGResult HGAPI HGImgFmt_CheckJpegFile(const HGChar* fileName, HGBool *isJpeg); HGEXPORT HGResult HGAPI HGImgFmt_LoadJpegImage(const HGChar* fileName, HGJpegLoadInfo* info, HGUInt imgType, HGUInt imgOrigin, HGImage* image); HGEXPORT HGResult HGAPI HGImgFmt_LoadJpegImageFromBuffer(HGBuffer buffer, HGJpegLoadInfo* info, HGUInt imgType, HGUInt imgOrigin, HGImage* image); HGEXPORT HGResult HGAPI HGImgFmt_SaveJpegImage(HGImage image, const HGJpegSaveInfo* info, const HGChar* fileName); HGEXPORT HGResult HGAPI HGImgFmt_SaveJpegImageToBuffer(HGImage image, const HGJpegSaveInfo* info, HGBuffer *buffer); #endif /* __HGJPEG_H__ */