60 lines
1.9 KiB
C
60 lines
1.9 KiB
C
#ifndef __HGPNG_H__
|
|
#define __HGPNG_H__
|
|
|
|
#include "../base/HGDef.h"
|
|
#include "../base/HGBaseErr.h"
|
|
#include "HGImgFmtErr.h"
|
|
#include "../base/HGImage.h"
|
|
|
|
/* */
|
|
#define HGIMGFMT_PNGCLRTYPE_GRAY 0L
|
|
#define HGIMGFMT_PNGCLRTYPE_PALETTE (1L | 2L)
|
|
#define HGIMGFMT_PNGCLRTYPE_RGB 2L
|
|
#define HGIMGFMT_PNGCLRTYPE_RGB_ALPHA (2L | 4L)
|
|
#define HGIMGFMT_PNGCLRTYPE_GRAY_ALPHA 4L
|
|
|
|
/* */
|
|
#define HGIMGFMT_PNGFILTERTYPE_BASE 0L
|
|
/* */
|
|
#define HGIMGFMT_PNGINTERLACE_NONE 0L
|
|
#define HGIMGFMT_PNGINTERLACE_ADAM7 1L
|
|
#define HGIMGFMT_PNGINTERLACE_LAST 2L
|
|
/* */
|
|
#define HGIMGFMT_PNGCOMPTYPE_BASE 0L
|
|
|
|
/* 分辨率单位 */
|
|
#define HGIMGFMT_PNGPHYSUNIT_UNKNOWN 0L
|
|
#define HGIMGFMT_PNGPHYSUNIT_METER 1L
|
|
#define HGIMGFMT_PNGPHYSUNIT_LAST 2L
|
|
|
|
typedef struct
|
|
{
|
|
HGUInt width; /* 图像宽 */
|
|
HGUInt height; /* 图像高 */
|
|
HGByte bitDepth; /* 每通道的比特数 */
|
|
HGByte colorType; /* 色彩类型, 见HGIMGFMT_PNGCLRTYPE_* */
|
|
HGByte channels; /* 通道数 */
|
|
HGByte filterType; /* 见HGIMGFMT_PNGFILTERTYPE_* */
|
|
HGByte InterlaceType; /* 见HGIMGFMT_PNGINTERLACE_* */
|
|
HGByte compressionType; /* 见HGIMGFMT_PNGCOMPTYPE_* */
|
|
HGByte pixelDepth; /* 每像素的比特数 */
|
|
HGByte physUnitType; /* 分辨率单位, 见HGIMGFMT_PNGPHYSUNIT_* */
|
|
HGUInt xPixelsPerUnit; /* 分辨率x */
|
|
HGUInt yPixelsPerUnit; /* 分辨率y */
|
|
}HGPngLoadInfo;
|
|
|
|
typedef struct
|
|
{
|
|
HGByte physUnitType; /* 分辨率单位, 见HGIMGFMT_PNGPHYSUNIT_* */
|
|
HGUInt xPixelsPerUnit; /* 分辨率x */
|
|
HGUInt yPixelsPerUnit; /* 分辨率y */
|
|
}HGPngSaveInfo;
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_CheckPngFile(const HGChar* fileName, HGBool* isPng);
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_LoadPngImage(const HGChar* fileName, HGPngLoadInfo* info,
|
|
HGUInt imgType, HGUInt imgOrigin, HGImage* image);
|
|
|
|
HGEXPORT HGResult HGAPI HGImgFmt_SavePngImage(HGImage image, const HGPngSaveInfo* info, const HGChar* fileName);
|
|
|
|
#endif /* __HGPNG_H__ */ |