59 lines
2.0 KiB
C
59 lines
2.0 KiB
C
#ifndef __HGBMP_H__
|
|
#define __HGBMP_H__
|
|
|
|
#include "../base/HGDef.h"
|
|
#include "../base/HGBaseErr.h"
|
|
#include "HGImgFmtErr.h"
|
|
#include "../base/HGImage.h"
|
|
|
|
typedef struct
|
|
{
|
|
HGUInt width; /* 宽 */
|
|
HGUInt height; /* 高 */
|
|
HGUShort bitCount; /* 每像素比特数 */
|
|
HGUInt compression; /* 压缩方式 */
|
|
|
|
HGUInt xPelsPerMeter; /* 水平每米的像素数 */
|
|
HGUInt yPelsPerMeter; /* 垂直每米的像素数 */
|
|
}HGBmpLoadInfo;
|
|
|
|
typedef struct
|
|
{
|
|
HGUInt xPelsPerMeter; /* 水平每米的像素数 */
|
|
HGUInt yPelsPerMeter; /* 垂直每米的像素数 */
|
|
}HGBmpSaveInfo;
|
|
|
|
/* 检查文件是否是BMP图像
|
|
* 参数:
|
|
* 1) fileName: in, 文件名, windows系统上是GBK编码, linux系统上是UTF8编码
|
|
* 2) isBmp: out, 是否是BMP图像
|
|
* 说明:
|
|
* 1) 该函数会打开文件判断文件头,而不是判断文件名后缀
|
|
*/
|
|
HGEXPORT HGResult HGAPI HGImgFmt_CheckBmpFile(const HGChar* fileName, HGBool* isBmp);
|
|
|
|
/* 加载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销毁
|
|
*/
|
|
HGEXPORT HGResult HGAPI HGImgFmt_LoadBmpImage(const HGChar* fileName, HGBmpLoadInfo* info,
|
|
HGUInt imgType, HGUInt imgOrigin, HGImage* image);
|
|
|
|
/* 保存BMP图像
|
|
* 参数:
|
|
* 1) image: in, 要保存的图像句柄
|
|
* 2) info: in, BMP图像保存信息, 如果没有则传NULL
|
|
* 3) fileName: in, 文件名, windows系统上是GBK编码, linux系统上是UTF8编码
|
|
* 说明:
|
|
* 1) 忽略fileName的文件扩展名
|
|
* 2) 如果info不为NULL, 保存的DPI使用info指定的; 否则使用image自带的
|
|
*/
|
|
HGEXPORT HGResult HGAPI HGImgFmt_SaveBmpImage(HGImage image, const HGBmpSaveInfo* info, const HGChar* fileName);
|
|
|
|
#endif /* __HGBMP_H__ */ |