HGScannerLib库增加获取图像数据地址和图像信息的接口,并完善文档

This commit is contained in:
luoliangyi 2023-01-12 15:34:14 +08:00
parent c194efba48
commit c13ae3d1ff
5 changed files with 68 additions and 0 deletions

View File

@ -3,6 +3,8 @@ LIBRARY
EXPORTS
HGLib_LoadImage
HGLib_GetImageData
HGLib_GetImageInfo
HGLib_SaveImage
HGLib_ReleaseImage
HGLib_InitDevice

View File

@ -30,6 +30,39 @@ HGLibImage HGAPI HGLib_LoadImage(const HGChar* filePath)
return (HGLibImage)image;
}
HGByte* HGAPI HGLib_GetImageData(HGLibImage image)
{
if (NULL == image)
{
return NULL;
}
HGByte* data = NULL;
HGBase_GetImageData((HGImage)image, &data);
return data;
}
HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo)
{
if (NULL == image || NULL == imageInfo)
{
return HGFALSE;
}
HGImageInfo imgInfo;
if (HGBASE_ERR_OK != HGBase_GetImageInfo((HGImage)image, &imgInfo))
{
return HGFALSE;
}
imageInfo->width = imgInfo.width;
imageInfo->height = imgInfo.height;
imageInfo->type = imgInfo.type;
imageInfo->origin = imgInfo.origin;
imageInfo->widthStep = imgInfo.widthStep;
return HGTRUE;
}
HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam)
{
if (NULL == image || NULL == savePath)

View File

@ -6,6 +6,23 @@
HG_DECLARE_HANDLE(HGLibImage);
HG_DECLARE_HANDLE(HGLibDevice);
/* 1位黑白图 */
#define HGLIB_IMGTYPE_BINARY 1L
/* 8位灰度图 */
#define HGLIB_IMGTYPE_GRAY 2L
/* 24位真彩色B8G8R8格式 */
#define HGLIB_IMGTYPE_BGR 3L
/* 24位真彩色R8G8B8格式 */
#define HGLIB_IMGTYPE_RGB 4L
/* 32位真彩色带Alpha通道B8G8R8A8格式 */
#define HGLIB_IMGTYPE_BGRA 5L
/* 32位真彩色带Alpha通道R8G8B8A8格式 */
#define HGLIB_IMGTYPE_RGBA 6L
/* 图像数据保存方式 */
#define HGLIB_IMGORIGIN_TOP 1L
#define HGLIB_IMGORIGIN_BOTTOM 2L
/* TIFF压缩方式 */
#define HGLIB_TIFFCOMPRESSION_NONE 1L
#define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L
@ -358,6 +375,16 @@ typedef struct
HGBool ocr; /* 是否OCRpdf和ofd格式有效 */
}HGLibSaveImageParam;
/* 图像信息 */
typedef struct
{
HGUInt width; /* 宽(像素),列数 */
HGUInt height; /* 高(像素),行数 */
HGUInt type; /* 类型参见HGLIB_IMGTYPE_* */
HGUInt widthStep; /* 每行的字节数 */
HGUInt origin; /* 数据排列方式参见HGLIB_IMGORIGIN_* */
}HGLibImageInfo;
typedef struct
{
HGInt* value;
@ -447,6 +474,12 @@ typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage im
/* 加载图像 */
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
/* 获取图像数据 */
HGEXPORT HGByte* HGAPI HGLib_GetImageData(HGLibImage image);
/* 获取图像信息 */
HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo);
/* 保存图像 */
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);