code_app/imgfmt/HGBmp.h

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__ */