code_app/modules/imgproc/HGImgProc.h

200 lines
7.3 KiB
C
Raw Normal View History

2022-05-03 10:25:52 +00:00
#ifndef __HGIMGPROC_H__
#define __HGIMGPROC_H__
#include "../base/HGDef.h"
#include "../base/HGBaseErr.h"
#include "HGImgProcErr.h"
#include "../base/HGImage.h"
/* 最近邻插值 */
#define HGIMGPROC_INTERPOTYPE_NN 1L
/* 双线性插值 */
#define HGIMGPROC_INTERPOTYPE_LINEAR 2L
2022-06-15 01:50:21 +00:00
/* 线条类型-实线 */
#define HGIMGPROC_LINETYPE_SOLID 1L
/* 线条类型-虚线 */
#define HGIMGPROC_LINETYPE_DASH 2L
/* 水印位置-左侧 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_LEFT 1L
2022-06-15 01:50:21 +00:00
/* 水印位置-上侧 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_TOP 2L
2022-06-15 01:50:21 +00:00
/* 水印位置-右侧 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_RIGHT 3L
2022-06-15 01:50:21 +00:00
/* 水印位置-下侧 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_BOTTOM 4L
2022-06-15 01:50:21 +00:00
/* 水印位置-左上 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_LEFTTOP 5L
2022-06-15 01:50:21 +00:00
/* 水印位置-右上 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_RIGHTTOP 6L
2022-06-15 01:50:21 +00:00
/* 水印位置-左下 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_LEFTBOTTOM 7L
2022-06-15 01:50:21 +00:00
/* 水印位置-右下 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_RIGHTBOTTOM 8L
2022-06-15 01:50:21 +00:00
/* 水印位置-中间 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_CENTER 9L
2022-06-15 01:50:21 +00:00
/* 水印位置-自定义 */
2022-06-13 11:56:43 +00:00
#define HGIMGPROC_WMPOSTYPE_LOCATION 10L
2022-06-20 09:32:28 +00:00
/* 内部去污 */
#define HGIMGPROC_DECOTYPE_INSIDE 1L
/* 外部去污 */
#define HGIMGPROC_DECOTYPE_OUTSIDE 2L
/* 自动裁剪参数 */
2022-05-03 10:25:52 +00:00
typedef struct
{
2022-06-20 06:18:21 +00:00
HGBool convex; /* 黑底填充时的填充方式, HGTRUE为凸多边形填充HGFALSE为凹多边形填充默认HGTRUE */
HGBool fillColor; /* 黑底填充时采用自适应色彩填充HGFALSE为白色填充HGTRUE为自适应文稿底色填充默认HGFALSE */
HGDouble threshold; /* 二值化阈值,取值范围(0, 255)默认40 */
HGInt noise; /* 除噪像素能够消除noise宽度的背景竖条纹干扰默认8 */
HGInt indent; /* 轮廓缩进裁剪、纠偏或者黑底填充时对探索到的纸张轮廓进行缩进indent像素默认5 */
2022-06-20 06:18:21 +00:00
HGBool normalCrop; /* crop deskew fillBlank失效固定裁切采用最传统的裁切方式默认HGFALSE */
HGBool dispersion; /* 是否除色散默认HGTRUE */
}HGImgAutoCropParam;
/* 白底检查参数 */
typedef struct
{
HGDouble threshold; /* 默认40 */
HGInt edge; /* 默认150 */
HGInt blockSize; /* 默认10 */
HGDouble devTh; /* 默认50 */
HGDouble meanTh; /* 默认200 */
}HGImgBlankCheckParam;
2022-05-03 10:25:52 +00:00
2022-06-13 11:56:43 +00:00
/* 水印字体参数 */
typedef struct
{
2022-06-20 03:06:18 +00:00
HGChar foneName[64]; /* 字体名, windows上为GBK编码, linux上为UTF8编码, 默认宋体 */
HGUInt fontSize; /* 字号, 默认20 */
HGBool bold; /* 是否粗体, 默认HGFALSE */
HGBool underline; /* 是否有下划线, 默认HGFALSE */
HGBool italic; /* 是否斜体, 默认HGFALSE */
HGBool strikeout; /* 是否有删除线, 默认HGFALSE */
2022-06-13 11:56:43 +00:00
}HGImgWatermarkFontParam;
/* 去底色参数 */
typedef struct
{
HGInt threshold; /* 默认100 */
HGInt offset; /* 默认0 */
HGInt range; /* 默认40 */
}HGImgFaceBkColorParam;
2022-05-03 10:25:52 +00:00
/* 图像缩放
* :
* 1) image: in,
* 2) destImage: in,
* 3) interpolation: in, , HGIMGPROC_INTERPOTYPE_*
* :
* 1) ROI区域
* 2) type必须一样
* 3) origon不一致的情况
* 4) image和destImage不能是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ResizeImage(HGImage image, HGImage destImage, HGUInt interp);
/*
*
* 1) image: in,
* 2) destImage: in,
* 3) brightness: in, , -255255
* 4) contrast: in, , -127127
* 5) gamma: , 0.15.0
* :
* 1) ROI区域, ROI区域的大小必须一致
* 2) type必须一样
* 3) origon不一致的情况
* 4) image和destImage可以是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageAdjustColors(HGImage image, HGImage destImage,
HGInt brightness, HGInt contrast, HGFloat gamma);
/*
*
2022-05-03 10:25:52 +00:00
* 1) image: in,
* 2) autoCrop: in, , HGTRUE则忽略destWidth和destHeight
* 3) deskew: in,
* 4) fillBlank: in,
* 5) param: in, , NULL时使用默认参数
* 6) destWidth: in,
* 7) destHeight: in,
2022-05-26 11:01:38 +00:00
* 8) destType: in, , 0image一样
* 9) destOrigin: in, , 0image一样
* 10) destImage: out, , HGBase_DestroyImage销毁
* :
2022-05-03 10:25:52 +00:00
* 1) image的ROI区域
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageAutoCrop(HGImage image, HGBool autoCrop, HGBool deskew, HGBool fillBlank, const HGImgAutoCropParam* param,
2022-05-03 10:25:52 +00:00
HGUInt destWidth, HGUInt destHeight, HGUInt destType, HGUInt destOrigin, HGImage* destImage);
/* 判断图像是否是空白
* 1) image: in,
* 2) param: in, , NULL时使用默认参数
* 3) blank: out, HGTRUE为空白图像, HGFALSE为非空白图像
* :
* 1) image的ROI区域
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageBlankCheck(HGImage image, const HGImgBlankCheckParam *param, HGBool *blank);
2022-06-15 01:50:21 +00:00
/* 图像画线
* 1) image: in,
* 2) x1: in, x坐标
* 3) y1: in, y坐标
* 4) x2: in, x坐标
* 5) y2: in, y坐标
* 6) color: in,
* 7) width: in, 线
* 8) type: in, 线, HGIMGPROC_LINETYPE_*
* :
* 1) ROI区域
2022-06-14 09:06:19 +00:00
*/
2022-06-15 01:50:21 +00:00
HGEXPORT HGResult HGAPI HGImgProc_ImageDrawLine(HGImage image, HGInt x1, HGInt y1, HGInt x2, HGInt y2,
HGColor color, HGUInt width, HGUInt type);
2022-06-14 09:06:19 +00:00
2022-06-13 11:56:43 +00:00
/* 添加图像水印
* 1) image: in,
* 2) text: , windows上为GBK编码, linux上为UTF8编码
* 3) color:
* 4) posType: , HGIMGPROC_WMPOSTYPE_*
* 5) locationX: posType为HGIMGPROC_WMPOSTYPE_LOCATION时表示x坐标
* 6) locationY: posType为HGIMGPROC_WMPOSTYPE_LOCATION时表示y坐标
* 7) fontParam: , NULL时使用默认参数
* :
* 1) ROI区域
*/
HGEXPORT HGResult HGAPI HGImgProc_AddImageWatermark(HGImage image, const HGChar *text, HGColor color, HGUInt posType,
HGInt locationX, HGInt locationY, const HGImgWatermarkFontParam *fontParam);
/* 消除文稿纸张底色
* 1) image: in,
* 2) destImage: in,
* 3) param: in, , NULL时使用默认参数
* :
* 1) ROI区域, ROI区域的大小必须一致
* 2) type必须一样
* 3) origon不一致的情况
* 4) image和destImage可以是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageFadeBkColor(HGImage image, HGImage destImage, const HGImgFaceBkColorParam *param);
2022-06-20 09:32:28 +00:00
/* 图像去污
* 1) image: in,
* 2) destImage: in,
* 3) decoType: in, , HGIMGPROC_DECOTYPE_*
* 4) x: in, x坐标
* 5) y: in, y坐标
* 6) width: in,
* 7) height: in,
* :
* 1) ROI区域, ROI区域的大小必须一致
* 2) type必须一样
* 3) origon不一致的情况
* 4) image和destImage可以是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageDecontamination(HGImage image, HGImage destImage, HGUInt decoType, HGUInt x, HGUInt y,
HGUInt width, HGUInt height, HGColor color);
2022-05-03 10:25:52 +00:00
#endif /* __HGIMGPROC_H__ */