code_app/modules/imgfmt/HGBmp.h

69 lines
2.3 KiB
C
Raw Normal View History

2022-05-03 10:25:52 +00:00
#ifndef __HGBMP_H__
#define __HGBMP_H__
#include "../base/HGDef.h"
#include "../base/HGBaseErr.h"
#include "HGImgFmtErr.h"
#include "../base/HGImage.h"
/* 压缩方式 */
#define HGIMGFMT_BMPENCODING_RGB 0L
#define HGIMGFMT_BMPENCODING_RLE8 1L
#define HGIMGFMT_BMPENCODING_RLE4 2L
#define HGIMGFMT_BMPENCODING_BITFIELDS 3L
#pragma pack(push)
#pragma pack(4)
2022-05-03 10:25:52 +00:00
typedef struct
{
2022-05-09 10:58:09 +00:00
HGUInt width; /* 宽 */
HGUInt height; /* 高 */
HGUShort bitCount; /* 每像素比特数 */
HGUInt compression; /* 压缩方式, 见HGIMGFMT_BMPENCODING_ */
HGUInt xPelsPerMeter; /* 每米的像素数x */
HGUInt yPelsPerMeter; /* 每米的像素数y */
2022-05-03 10:25:52 +00:00
}HGBmpLoadInfo;
typedef struct
{
HGUInt xPelsPerMeter; /* 每米的像素数x */
HGUInt yPelsPerMeter; /* 每米的像素数y */
2022-05-03 10:25:52 +00:00
}HGBmpSaveInfo;
#pragma pack(pop)
2022-05-09 10:58:09 +00:00
/* 检查文件是否是BMP图像
* :
* 1) fileName: in, , windows系统上是GBK编码, linux系统上是UTF8编码
* 2) isBmp: out, BMP图像
* :
* 1)
*/
2022-05-03 10:25:52 +00:00
HGEXPORT HGResult HGAPI HGImgFmt_CheckBmpFile(const HGChar* fileName, HGBool* isBmp);
2022-05-09 10:58:09 +00:00
/* 加载BMP图像
* :
* 1) fileName: in, , windows系统上是GBK编码, linux系统上是UTF8编码
* 2) info: out, BMP图像加载信息, NULL
* 3) imgType: in, , HGBASE_IMGTYPE_*, 0
* 4) imgOrigin: in, , HGBASE_IMGORIGIN_*, 0
* 5) image: out,
* :
* 1) 使HGBase_DestroyImage销毁
*/
2022-05-03 10:25:52 +00:00
HGEXPORT HGResult HGAPI HGImgFmt_LoadBmpImage(const HGChar* fileName, HGBmpLoadInfo* info,
HGUInt imgType, HGUInt imgOrigin, HGImage* image);
2022-05-09 10:58:09 +00:00
/* 保存BMP图像
* :
* 1) image: in,
* 2) info: in, BMP图像保存信息, NULL
* 3) fileName: in, , windows系统上是GBK编码, linux系统上是UTF8编码
* :
* 1) fileName的文件扩展名
* 2) info不为NULL, DPI使用info指定的; 使image自带的
*/
2022-05-03 10:25:52 +00:00
HGEXPORT HGResult HGAPI HGImgFmt_SaveBmpImage(HGImage image, const HGBmpSaveInfo* info, const HGChar* fileName);
#endif /* __HGBMP_H__ */