code_app/modules/imgfmt/HGJpeg.h

50 lines
1.6 KiB
C
Raw Normal View History

2022-05-03 10:25:52 +00:00
#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 /* 厘米 */
2022-05-03 10:25:52 +00:00
typedef struct
{
HGUInt width; /* 图像宽 */
HGUInt height; /* 图像高 */
HGUInt numComponents; /* 颜色数量 */
HGUInt colorSpace; /* 颜色空间, 见HGIMGFMT_JPEGCLRSPACE_* */
HGByte densityUnit; /* 分辨率单位, 见HGIMGFMT_JPEGDENUNIT_* */
HGUShort xDensity; /* 分辨率x值 */
HGUShort yDensity; /* 分辨率y值 */
2022-05-03 10:25:52 +00:00
}HGJpegLoadInfo;
typedef struct
{
HGUInt quality; /* 压缩质量, 0-100 */
HGByte densityUnit; /* 分辨率单位, 见HGIMGFMT_JPEGDENUNIT_* */
HGUShort xDensity; /* 分辨率x值 */
HGUShort yDensity; /* 分辨率y值 */
2022-05-03 10:25:52 +00:00
}HGJpegSaveInfo;
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);
2022-05-03 10:25:52 +00:00
HGEXPORT HGResult HGAPI HGImgFmt_SaveJpegImageToBuffer(HGImage image, const HGJpegSaveInfo* info, HGBuffer *buffer);
2022-05-03 10:25:52 +00:00
#endif /* __HGJPEG_H__ */