code_app/sdk/scannerlib/HGScannerLib.h

689 lines
25 KiB
C
Raw Normal View History

2023-04-03 05:58:43 +00:00
#ifndef __HGSCANNERLIB_H__
2022-07-19 03:51:00 +00:00
#define __HGSCANNERLIB_H__
#include "HGDef.h"
HG_DECLARE_HANDLE(HGLibImage);
HG_DECLARE_HANDLE(HGLibDevice);
2023-04-03 05:58:43 +00:00
/* 1位黑白图 */
#define HGLIB_IMGTYPE_BINARY 1L
2023-04-03 05:58:43 +00:00
/* 8位灰度图 */
#define HGLIB_IMGTYPE_GRAY 2L
2023-04-03 05:58:43 +00:00
/* 24位真彩色B8G8R8格式 */
#define HGLIB_IMGTYPE_BGR 3L
2023-04-03 05:58:43 +00:00
/* 24位真彩色R8G8B8格式 */
#define HGLIB_IMGTYPE_RGB 4L
2023-04-03 05:58:43 +00:00
/* 32位真彩色带Alpha通道B8G8R8A8格式 */
#define HGLIB_IMGTYPE_BGRA 5L
2023-04-03 05:58:43 +00:00
/* 32位真彩色带Alpha通道R8G8B8A8格式 */
#define HGLIB_IMGTYPE_RGBA 6L
2023-04-03 05:58:43 +00:00
/* 图像数据保存方式 */
#define HGLIB_IMGORIGIN_TOP 1L
#define HGLIB_IMGORIGIN_BOTTOM 2L
2023-04-03 05:58:43 +00:00
/* TIFF压缩方式 */
2022-07-19 03:51:00 +00:00
#define HGLIB_TIFFCOMPRESSION_NONE 1L
#define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L
#define HGLIB_TIFFCOMPRESSION_LZW 3L
#define HGLIB_TIFFCOMPRESSION_JPEG 4L
/* 设备错误码 */
#define HGLIB_DEV_OPERATECODE_GOOD 0L /* everything A-OK */
#define HGLIB_DEV_OPERATECODE_UNSUPPORTED 1L /* operation is not supported */
#define HGLIB_DEV_OPERATECODE_CANCELLED 2L /* operation was cancelled */
#define HGLIB_DEV_OPERATECODE_BUSY 3L /* device is busy; try again later */
#define HGLIB_DEV_OPERATECODE_INVAL 4L /* data is invalid (includes no dev at open) */
#define HGLIB_DEV_OPERATECODE_EOF 5L /* no more data available (end-of-file) */
#define HGLIB_DEV_OPERATECODE_JAMMED 6L /* document feeder jammed */
#define HGLIB_DEV_OPERATECODE_NO_DOCS 7L /* document feeder out of documents */
#define HGLIB_DEV_OPERATECODE_COVER_OPEN 8L /* scanner cover is open */
#define HGLIB_DEV_OPERATECODE_IO_ERROR 9L /* error during device I/O */
#define HGLIB_DEV_OPERATECODE_NO_MEM 10L /* out of memory */
#define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 11L /* access to resource has been denied */
// 1软件逻辑错误
#define HGLIB_DEV_OPERATECODE_INVALID_PARAMETER 0x100 // 非法的参数调用
#define HGLIB_DEV_OPERATECODE_ERR_USER_CANCELED 0x101 // 用户取消了操作
#define HGLIB_DEV_OPERATECODE_INSUFFICIENT_MEMORY 0x102 // 分配的内存不足
#define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 0x103 // 访问被拒绝
#define HGLIB_DEV_OPERATECODE_IO_PENDING 0x104 // 异步访问,数据稍后返回
#define HGLIB_DEV_OPERATECODE_ERR_NOT_EXACT 0x105 // 数据不精确,精确的数据已经在同一缓存中返回
#define HGLIB_DEV_OPERATECODE_ERR_CONFIGURATION_CHANGED 0x106 // 设备的配置项发生改变,需要重新加载显示
#define HGLIB_DEV_OPERATECODE_ERR_NOT_OPEN 0x107 // 设备未打开
#define HGLIB_DEV_OPERATECODE_ERR_NOT_START 0x108 // 设备没有启动
#define HGLIB_DEV_OPERATECODE_ERR_NOT_ANY_MORE 0x109 // 用于回调返回,在本次扫描中,对相同操作不再回调
#define HGLIB_DEV_OPERATECODE_ERR_NO_DATA 0x10A // 没有数据
#define HGLIB_DEV_OPERATECODE_HAS_DATA_YET 0x10B // 有数据未被读取(异步操作中)
#define HGLIB_DEV_OPERATECODE_OUT_OF_RANGE 0x10C // 相关操作超出范围
#define HGLIB_DEV_OPERATECODE_IO 0x10D // IO错误
#define HGLIB_DEV_OPERATECODE_TIMEOUT 0x10E // 超时错误
#define HGLIB_DEV_OPERATECODE_OPEN_FILE_FAILED 0x10F // 打开本地文件失败
#define HGLIB_DEV_OPERATECODE_CREATE_FILE_FAILED 0x110 // 创建本地文件失败
#define HGLIB_DEV_OPERATECODE_WRITE_FILE_FAILED 0x111 // 写本地文件失败
#define HGLIB_DEV_OPERATECODE_DATA_DAMAGED 0x112 // 数据损坏(内置资源数据损坏)
#define HGLIB_DEV_OPERATECODE_OPENED_BY_OTHER_PROCESS 0x113 // 设备已经被其它进程打开占用
#define HGLIB_DEV_OPERATECODE_LANG_PAK_LOST 0x114 // 语言包丢失
#define HGLIB_DEV_OPERATECODE_RELOAD_IMAGE_PARAM 0x115 // 配置成功,会影响图像参数,应用需要重新加载图像参数 - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题
#define HGLIB_DEV_OPERATECODE_RELOAD_OPT_PARAM 0x116 // SCANNER_ERR_CONFIGURATION_CHANGED + SCANNER_ERR_RELOAD_IMAGE_PARAM - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题
#define HGLIB_DEV_OPERATECODE_IMAGE_PROC_FATAL 0x117 // 图像处理失败
// 2USB错误
#define HGLIB_DEV_OPERATECODE_USB_INIT_FAILED 0x5B00 // libusb_init 失败
#define HGLIB_DEV_OPERATECODE_USB_REGISTER_PNP_FAILED 0x5B01 // 注册USB监听事件失败
#define HGLIB_DEV_OPERATECODE_USB_CLAIM_INTERFACE_FAILED 0x5B02 // failed in calling libusb_claim_interface
// 3硬件错误
#define HGLIB_DEV_OPERATECODE_DEVICE_NOT_FOUND 0x0DE00 // 设备未找到
#define HGLIB_DEV_OPERATECODE_DEVICE_NOT_SUPPORT 0x0DE01 // 设备不支持该操作
#define HGLIB_DEV_OPERATECODE_DEVICE_BUSY 0x0DE02 // 设备正忙,不能响应该操作
#define HGLIB_DEV_OPERATECODE_DEVICE_SLEEPING 0x0DE03 // 设备处于睡眠状态
#define HGLIB_DEV_OPERATECODE_DEVICE_COUNT_MODE 0x0DE04 // 设备处于计数扫描状态?
#define HGLIB_DEV_OPERATECODE_DEVICE_STOPPED 0x0DE05 // 扫描停止
#define HGLIB_DEV_OPERATECODE_DEVICE_COVER_OPENNED 0x0DE06 // 扫描仪盖板呈打开状态
#define HGLIB_DEV_OPERATECODE_DEVICE_NO_PAPER 0x0DE07 // 没有纸张输入
#define HGLIB_DEV_OPERATECODE_DEVICE_FEEDING_PAPER 0x0DE08 // 搓纸失败
#define HGLIB_DEV_OPERATECODE_DEVICE_DOUBLE_FEEDING 0x0DE09 // 双张检测
#define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_JAMMED 0x0DE0A // 卡纸
#define HGLIB_DEV_OPERATECODE_DEVICE_STAPLE_ON 0x0DE0B // 有钉书钉
#define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_SKEW 0x0DE0C // 纸张倾斜
#define HGLIB_DEV_OPERATECODE_DEVICE_SIZE_CHECK 0x0DE0D // 尺寸检测错误
#define HGLIB_DEV_OPERATECODE_DEVICE_DOGEAR 0x0DE0E // 纸张有折角
#define HGLIB_DEV_OPERATECODE_DEVICE_NO_IMAGE 0x0DE0F // 设备没取到图
#define HGLIB_DEV_OPERATECODE_DEVICE_SCANN_ERROR 0x0DE10 // 设备扫图失败
#define HGLIB_DEV_OPERATECODE_DEVICE_PC_BUSY 0x0DE11 // PC繁忙或出错
#define HGLIB_DEV_OPERATECODE_DEVICE_ISLOCK 0x0DE12 // 设备被锁定
#define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_SUCCESSFUL 0x0DE13 // 固件升级成功
#define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_FAIL 0x0DE14 // 固件升级失败+
#define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_OVER 0x0DE15 // 设备平场自动校正结束
#define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_INFO 0x0DE16 // 设备平场自动校正信息传输
#define HGLIB_DEV_OPERATECODE_DEVICE_DISTORTION 0x0DE17 // 畸变修正失败
#define HGLIB_DEV_OPERATECODE_DEVICE_MAYBE_IS_HOLE 0x0DE18 // 纸张有孔洞
#define HGLIB_DEV_OPERATECODE_DEVICE_DEVS_BOOTING 0x0DE19 // 请稍等 - 设备正在准备
#define HGLIB_DEV_OPERATECODE_DEVICE_UNKNOWN_STATUS 0x0DE1A // 设备处于未知状态
#define HGLIB_DEV_OPERATECODE_DEVICE_LENS_DIRTY 0x0DE1B // 镜头脏污
2023-04-03 05:58:43 +00:00
/* 设备热拔插事件 */
2022-07-19 03:51:00 +00:00
#define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L
#define HGLIB_DEVHOTPLUG_EVENT_REMOVE 2L
2023-04-03 05:58:43 +00:00
/* 设备扫描事件 */
#define HGLIB_DEVSCAN_EVENT_BEGIN 1L
#define HGLIB_DEVSCAN_EVENT_END 2L
#define HGLIB_DEVSCAN_EVENT_INFO 3L
2023-04-03 05:58:43 +00:00
/* 组名 */
// 基本设置
#define HGLIB_GROUP_NAME_BASESETTING 1L
2023-04-03 05:58:43 +00:00
// 亮度
#define HGLIB_GROUP_NAME_BRIGHTNESS 2L
2023-04-03 05:58:43 +00:00
// 图像处理
#define HGLIB_GROUP_NAME_IMAGEPROCESS 3L
2023-04-03 05:58:43 +00:00
// 送纸方式设置
#define HGLIB_GROUP_NAME_PAPERFEEDING 4L
2023-04-03 05:58:43 +00:00
/* 配置名 */
#define HGLIB_OPTION_NAME_UNKNOWN 0L
2023-04-03 05:58:43 +00:00
// "多流输出"
#define HGLIB_OPTION_NAME_DLSC 1L
2023-04-03 05:58:43 +00:00
// "多流输出类型"
#define HGLIB_OPTION_NAME_DLSCLX 2L
2023-04-03 05:58:43 +00:00
// "颜色模式"
#define HGLIB_OPTION_NAME_YSMS 3L
2023-04-03 05:58:43 +00:00
// "黑白图像阈值"
#define HGLIB_OPTION_NAME_HBTXYZ 4L
2023-04-03 05:58:43 +00:00
// "灰度或黑白图像 - 除色"
#define HGLIB_OPTION_NAME_HDHHBTX_CS 5L
2023-04-03 05:58:43 +00:00
// "24位彩色图像 - 多流输出除红"
#define HGLIB_OPTION_NAME_24WCSTX_DLSCCH 6L
2023-04-03 05:58:43 +00:00
// "24位彩色图像 - 答题卡除红"
#define HGLIB_OPTION_NAME_24WCSTX_DTKCH 7L
2023-04-03 05:58:43 +00:00
// "背景移除"
#define HGLIB_OPTION_NAME_BJYC 8L
2023-04-03 05:58:43 +00:00
// "背景色彩浮动范围"
#define HGLIB_OPTION_NAME_BJSCFDFW 9L
2023-04-03 05:58:43 +00:00
// "锐化与模糊"
#define HGLIB_OPTION_NAME_RHYMH 10L
2023-04-03 05:58:43 +00:00
// "去除摩尔纹"
#define HGLIB_OPTION_NAME_QCMW 11L
2023-04-03 05:58:43 +00:00
// "除网纹"
#define HGLIB_OPTION_NAME_CWW 12L
2023-04-03 05:58:43 +00:00
// "错误扩散"
#define HGLIB_OPTION_NAME_CWKS 13L
2023-04-03 05:58:43 +00:00
// "黑白图像噪点优化"
#define HGLIB_OPTION_NAME_HBTXZDYH 14L
2023-04-03 05:58:43 +00:00
// "噪点优化尺寸"
#define HGLIB_OPTION_NAME_ZDYHCC 15L
2023-04-03 05:58:43 +00:00
// "纸张尺寸"
#define HGLIB_OPTION_NAME_ZZCC 16L
2023-04-03 05:58:43 +00:00
// "自定义扫描区域"
#define HGLIB_OPTION_NAME_ZDYSMQY 17L
2023-04-03 05:58:43 +00:00
// "扫描区域左侧mm"
#define HGLIB_OPTION_NAME_SMQYZCmm 18L
2023-04-03 05:58:43 +00:00
// "扫描区域右侧mm"
#define HGLIB_OPTION_NAME_SMQYYCmm 19L
2023-04-03 05:58:43 +00:00
// "扫描区域上侧mm"
#define HGLIB_OPTION_NAME_SMQYSCmm 20L
2023-04-03 05:58:43 +00:00
// "扫描区域下侧mm"
#define HGLIB_OPTION_NAME_SMQYXCmm 21L
2023-04-03 05:58:43 +00:00
// "尺寸检测"
#define HGLIB_OPTION_NAME_CCJC 22L
2023-04-03 05:58:43 +00:00
// "扫描页面"
#define HGLIB_OPTION_NAME_SMYM 23L
2023-04-03 05:58:43 +00:00
// "跳过空白页灵敏度"
#define HGLIB_OPTION_NAME_TGKBYLMD 24L
2023-04-03 05:58:43 +00:00
// "分纸强度"
#define HGLIB_OPTION_NAME_FZQD 25L
2023-04-03 05:58:43 +00:00
// "休眠时间"
#define HGLIB_OPTION_NAME_XMSJ 26L
2023-04-03 05:58:43 +00:00
// "分辨率"
#define HGLIB_OPTION_NAME_FBL 27L
2023-04-03 05:58:43 +00:00
// "画质"
#define HGLIB_OPTION_NAME_HZ 28L
2023-04-03 05:58:43 +00:00
// "交换正反面"
#define HGLIB_OPTION_NAME_JHZFM 29L
2023-04-03 05:58:43 +00:00
// "图像拆分"
#define HGLIB_OPTION_NAME_TXCF 30L
2023-04-03 05:58:43 +00:00
// "自动纠偏"
#define HGLIB_OPTION_NAME_ZDJP 31L
2023-04-03 05:58:43 +00:00
// "启用色调曲线"
#define HGLIB_OPTION_NAME_QYSDQX 32L
2023-04-03 05:58:43 +00:00
// "亮度值"
#define HGLIB_OPTION_NAME_LDZ 33L
2023-04-03 05:58:43 +00:00
// "对比度"
#define HGLIB_OPTION_NAME_DBD 34L
2023-04-03 05:58:43 +00:00
// "伽马值"
#define HGLIB_OPTION_NAME_GMZ 35L
2023-04-03 05:58:43 +00:00
// "照片模式"
#define HGLIB_OPTION_NAME_ZPMS 36L
2023-04-03 05:58:43 +00:00
// "消除黑框"
#define HGLIB_OPTION_NAME_XCHK 37L
2023-04-03 05:58:43 +00:00
// "深色样张"
#define HGLIB_OPTION_NAME_SSYZ 38L
2023-04-03 05:58:43 +00:00
// "阈值"
#define HGLIB_OPTION_NAME_YZ 39L
2023-04-03 05:58:43 +00:00
// "背景抗噪等级"
#define HGLIB_OPTION_NAME_BJKZDJ 40L
2023-04-03 05:58:43 +00:00
// "边缘缩进"
#define HGLIB_OPTION_NAME_BYSJ 41L
2023-04-03 05:58:43 +00:00
// "背景填充方式"
#define HGLIB_OPTION_NAME_BJTCFS 42L
2023-04-03 05:58:43 +00:00
// "防止渗透"
#define HGLIB_OPTION_NAME_FZST 43L
2023-04-03 05:58:43 +00:00
// "防止渗透等级"
#define HGLIB_OPTION_NAME_FZSTDJ 44L
2023-04-03 05:58:43 +00:00
// "穿孔移除—左侧"
#define HGLIB_OPTION_NAME_CKYCZC 45L
2023-04-03 05:58:43 +00:00
// #"左侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_ZCCKSSFWZFMBL 46L
2023-04-03 05:58:43 +00:00
// "穿孔移除—右侧"
#define HGLIB_OPTION_NAME_CKYCYC 47L
2023-04-03 05:58:43 +00:00
// #"右侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_YCCKSSFWZFMBL 48L
2023-04-03 05:58:43 +00:00
// "穿孔移除—上侧"
#define HGLIB_OPTION_NAME_CKYCSC 49L
2023-04-03 05:58:43 +00:00
// #"上侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_SCCKSSFWZFMBL 50L
2023-04-03 05:58:43 +00:00
// "穿孔移除—下侧"
#define HGLIB_OPTION_NAME_CKYCXC 51L
2023-04-03 05:58:43 +00:00
// #"下侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_XCCKSSFWZFMBL 52L
2023-04-03 05:58:43 +00:00
// "色彩填充"
#define HGLIB_OPTION_NAME_SCTC 53L
2023-04-03 05:58:43 +00:00
// "超声波检测"
#define HGLIB_OPTION_NAME_CSBJC 54L
2023-04-03 05:58:43 +00:00
// "双张图片处理"
#define HGLIB_OPTION_NAME_SZTPCL 55L
2023-04-03 05:58:43 +00:00
// "装订检测"
#define HGLIB_OPTION_NAME_ZDJC 56L
2023-04-03 05:58:43 +00:00
// "扫描张数"
#define HGLIB_OPTION_NAME_SMZS 57L
2023-04-03 05:58:43 +00:00
// "扫描数量"
#define HGLIB_OPTION_NAME_SMSL 58L
2023-04-03 05:58:43 +00:00
// "文稿方向"
#define HGLIB_OPTION_NAME_WGFX 59L
2023-04-03 05:58:43 +00:00
// "背面旋转180°"
#define HGLIB_OPTION_NAME_BMXZ180 60L
2023-04-03 05:58:43 +00:00
// "折角检测"
#define HGLIB_OPTION_NAME_ZJJC 61L
2023-04-03 05:58:43 +00:00
// "折角大小"
#define HGLIB_OPTION_NAME_ZJDX 62L
2023-04-03 05:58:43 +00:00
// "歪斜检测"
#define HGLIB_OPTION_NAME_WXJC 63L
2023-04-03 05:58:43 +00:00
// "歪斜容忍度"
#define HGLIB_OPTION_NAME_WXRRD 64L
2023-04-03 05:58:43 +00:00
// 自动分纸强度
#define HGLIB_OPTION_NAME_ZDCZQD 65L
2023-04-03 05:58:43 +00:00
// 进纸失败率
#define HGLIB_OPTION_NAME_CZYZ 66L
2023-04-03 05:58:43 +00:00
// 待纸扫描
#define HGLIB_OPTION_NAME_DZSM 67L
2023-04-03 05:58:43 +00:00
// 黑白图像反色输出正常颜色为0 - 黑色1 - 白色)
#define HGLIB_OPTION_NAME_HBTXFSSC 68L
2023-04-03 05:58:43 +00:00
// 对折模式
#define HGLIB_OPTION_NAME_DZMS 69L
2023-04-03 05:58:43 +00:00
// 色偏校正
#define HGLIB_OPTION_NAME_SPJZ 70L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间
#define HGLIB_OPTION_NAME_DZSMTCSJ 71L
// 跳过空白页
#define HGLIB_OPTION_NAME_TGKBY 72L
// 镜头脏污检测
#define HGLIB_OPTION_NAME_JTZWJC 73L
// 穿孔移除
#define HGLIB_OPTION_NAME_CKYC 74L
// 穿孔搜索范围占幅面比例
#define HGLIB_OPTION_NAME_CKSSFWZFMBL 75L
2023-04-03 05:58:43 +00:00
/* 配置枚举值 */
// "无"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_W 1L
2023-04-03 05:58:43 +00:00
// "彩色+灰度+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD_HB 2L
2023-04-03 05:58:43 +00:00
// "彩色+灰度"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD 3L
2023-04-03 05:58:43 +00:00
// "彩色+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HB 4L
2023-04-03 05:58:43 +00:00
// "灰度+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_HD_HB 5L
2023-04-03 05:58:43 +00:00
// "24位彩色"
#define HGLIB_OPTION_ENUMVALUE_YSMS_24WCS 6L
2023-04-03 05:58:43 +00:00
// "256级灰度"
#define HGLIB_OPTION_ENUMVALUE_YSMS_256JHD 7L
2023-04-03 05:58:43 +00:00
// "黑白"
#define HGLIB_OPTION_ENUMVALUE_YSMS_HB 8L
2023-04-03 05:58:43 +00:00
// "颜色自动识别"
#define HGLIB_OPTION_ENUMVALUE_YSMS_YSZDSB 9L
2023-04-03 05:58:43 +00:00
// "不除色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_BCS 10L
2023-04-03 05:58:43 +00:00
// "除红色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHS 11L
2023-04-03 05:58:43 +00:00
// "除绿色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CLS 12L
2023-04-03 05:58:43 +00:00
// "除蓝色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHULANSE 13L
2023-04-03 05:58:43 +00:00
// "红色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_HSZQ 14L
2023-04-03 05:58:43 +00:00
// "绿色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LSZQ 15L
2023-04-03 05:58:43 +00:00
// "蓝色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LANSEZENGQIANG 16L
2023-04-03 05:58:43 +00:00
// "无"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_W 17L
2023-04-03 05:58:43 +00:00
// "锐化"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_RH 18L
2023-04-03 05:58:43 +00:00
// "进一步锐化"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBRH 19L
2023-04-03 05:58:43 +00:00
// "模糊"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_MH 20L
2023-04-03 05:58:43 +00:00
// "进一步模糊"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBMH 21L
// "A3"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A3 22L
2023-04-03 05:58:43 +00:00
// "8开"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_8K 23L
// "A4"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A4 24L
2023-04-03 05:58:43 +00:00
// "A4横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A4HX 25L
2023-04-03 05:58:43 +00:00
// "16开"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_16K 26L
2023-04-03 05:58:43 +00:00
// "16开横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_16KHX 27L
// "A5"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A5 28L
2023-04-03 05:58:43 +00:00
// "A5横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A5HX 29L
// "A6"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A6 30L
2023-04-03 05:58:43 +00:00
// "A6横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A6HX 31L
// "B4"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B4 32L
// "B5"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B5 33L
2023-04-03 05:58:43 +00:00
// "B5横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B5HX 34L
// "B6"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B6 35L
2023-04-03 05:58:43 +00:00
// "B6横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B6HX 36L
// "Letter"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_Letter 37L
2023-04-03 05:58:43 +00:00
// "Letter横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_LetterHX 38L
// "Double Letter"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_DoubleLetter 39L
// "LEGAL"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_LEGAL 40L
2023-04-03 05:58:43 +00:00
// "匹配原始尺寸"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_PPYSCC 41L
2023-04-03 05:58:43 +00:00
// "最大扫描尺寸自动裁切"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCCZDCQ 42L
2023-04-03 05:58:43 +00:00
// "最大扫描尺寸"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCC 43L
2023-04-03 05:58:43 +00:00
// "三联试卷"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_SLSJ 44L
2023-04-03 05:58:43 +00:00
// "单面"
#define HGLIB_OPTION_ENUMVALUE_SMYM_DM 45L
2023-04-03 05:58:43 +00:00
// "双面"
#define HGLIB_OPTION_ENUMVALUE_SMYM_SM 46L
2023-04-03 05:58:43 +00:00
// "跳过空白页(通用)"
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYTY 47L
2023-04-03 05:58:43 +00:00
// "跳过空白页(发票纸)"
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYFPZ 48L
2023-04-03 05:58:43 +00:00
// "对折"
#define HGLIB_OPTION_ENUMVALUE_SMYM_DZ 49L
2023-04-03 05:58:43 +00:00
// "无"
#define HGLIB_OPTION_ENUMVALUE_HZ_W 50L
2023-04-03 05:58:43 +00:00
// "速度优先"
#define HGLIB_OPTION_ENUMVALUE_HZ_SDYX 51L
2023-04-03 05:58:43 +00:00
// "画质优先"
#define HGLIB_OPTION_ENUMVALUE_HZ_HZYX 52L
2023-04-03 05:58:43 +00:00
// "凸多边形"
#define HGLIB_OPTION_ENUMVALUE_BJTCFS_TDBX 53L
2023-04-03 05:58:43 +00:00
// "凹多边形"
#define HGLIB_OPTION_ENUMVALUE_BJTCFS_ADBX 54L
2023-04-03 05:58:43 +00:00
// "弱"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_R 55L
2023-04-03 05:58:43 +00:00
// "较弱"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JR 56L
2023-04-03 05:58:43 +00:00
// "一般"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_YB 57L
2023-04-03 05:58:43 +00:00
// "较强"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JQ 58L
2023-04-03 05:58:43 +00:00
// "强"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_Q 59L
2023-04-03 05:58:43 +00:00
// "丢弃图像并停止扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBTZSM 60L
2023-04-03 05:58:43 +00:00
// "丢弃图像并继续扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBJXSM 61L
2023-04-03 05:58:43 +00:00
// "上传图像并停止扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBTZSM 62L
2023-04-03 05:58:43 +00:00
// "上传图像并继续扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJXSM 63L
2023-04-03 05:58:43 +00:00
// "连续扫描"
#define HGLIB_OPTION_ENUMVALUE_SMZS_LXSM 64L
2023-04-03 05:58:43 +00:00
// "扫描指定张数"
#define HGLIB_OPTION_ENUMVALUE_SMZS_SMZDZS 65L
2023-04-03 05:58:43 +00:00
// "0°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_0 66L
2023-04-03 05:58:43 +00:00
// "90°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_90 67L
2023-04-03 05:58:43 +00:00
// "180°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_180 68L
2023-04-03 05:58:43 +00:00
// "-90°"
#define HGLIB_OPTION_ENUMVALUE_WGFX__90 69L
2023-04-03 05:58:43 +00:00
// "自动文本方向识别°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_ZDWBFXSB 70L
2023-04-03 05:58:43 +00:00
// "分纸强度-弱"
#define HGLIB_OPTION_ENUMVALUE_FZQD_R 71L
2023-04-03 05:58:43 +00:00
// "分纸强度-一般"
#define HGLIB_OPTION_ENUMVALUE_FZQD_YB 72L
2023-04-03 05:58:43 +00:00
// "分纸强度-强"
#define HGLIB_OPTION_ENUMVALUE_FZQD_Q 73L
2023-04-03 05:58:43 +00:00
// "不休眠"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_BXM 74L
2023-04-03 05:58:43 +00:00
// "五分钟"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_WFZ 75L
2023-04-03 05:58:43 +00:00
// "十分钟"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_SFZ 76L
2023-04-03 05:58:43 +00:00
// "半小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_BXS 77L
2023-04-03 05:58:43 +00:00
// "一小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_YXS 78L
2023-04-03 05:58:43 +00:00
// "两小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_LXS 79L
2023-04-03 05:58:43 +00:00
// "四小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_SXS 80L
2023-04-03 05:58:43 +00:00
// 左右对折
#define HGLIB_OPTION_ENUMVALUE_ZYDZ 81L
2023-04-03 05:58:43 +00:00
// 上下对折
#define HGLIB_OPTION_ENUMVALUE_SXDZ 82L
2023-04-03 05:58:43 +00:00
// 自动对折
#define HGLIB_OPTION_ENUMVALUE_ZDDZ 83L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间15s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_15S 84L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间30s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_30S 85L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间60s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_60S 86L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间2min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_2MIN 87L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间4min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_4MIN 88L
2023-04-03 05:58:43 +00:00
// 待纸扫描退出时间8min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_8MIN 89L
// 跳过空白页-基于文件大小
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYJYWJDX 90L
// 上传图像并校验
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJY 91L
2023-04-03 05:58:43 +00:00
/* 配置值类型 */
#define HGLIB_OPTION_VALUETYPE_INT 1L
#define HGLIB_OPTION_VALUETYPE_ENUM 2L
#define HGLIB_OPTION_VALUETYPE_DOUBLE 3L
#define HGLIB_OPTION_VALUETYPE_BOOL 4L
2023-04-03 05:58:43 +00:00
/* 配置值范围类型 */
#define HGLIB_OPTION_VALUERANGETYPE_NULL 0L
#define HGLIB_OPTION_VALUERANGETYPE_INTLIST 1L
#define HGLIB_OPTION_VALUERANGETYPE_ENUMLIST 2L
#define HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST 3L
#define HGLIB_OPTION_VALUERANGETYPE_INTRANGE 4L
#define HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE 5L
2022-07-19 03:51:00 +00:00
#pragma pack(push)
#pragma pack(4)
2022-07-19 03:51:00 +00:00
typedef struct
{
2023-04-03 05:58:43 +00:00
HGUInt size; /* 结构体大小必须初始化为sizeof(HGLibSaveImageParam) */
HGUInt jpegQuality; /* jpeg下有效, 0-100 */
HGUInt tiffCompression; /* tiff下有效, HGLIB_TIFFCOMPRESSION_* */
HGUInt tiffJpegQuality; /* tiff且HGLIB_TIFFCOMPRESSION_JPEG下有效, 0-100 */
HGBool ocr; /* 是否OCRpdf和ofd格式有效 */
2022-07-19 03:51:00 +00:00
}HGLibSaveImageParam;
2023-04-03 05:58:43 +00:00
/* 图像信息 */
typedef struct
{
2023-04-03 05:58:43 +00:00
HGUInt width; /* 宽(像素),列数 */
HGUInt height; /* 高(像素),行数 */
HGUInt type; /* 类型参见HGLIB_IMGTYPE_* */
HGUInt widthStep; /* 每行的字节数 */
HGUInt origin; /* 数据排列方式参见HGLIB_IMGORIGIN_* */
}HGLibImageInfo;
2022-07-19 03:51:00 +00:00
typedef struct
{
HGInt* value;
HGUInt count;
}HGLibDeviceIntValueList;
typedef struct
{
HGUInt* value;
2022-07-19 03:51:00 +00:00
HGUInt count;
}HGLibDeviceEnumValueList;
2022-07-19 03:51:00 +00:00
typedef struct
{
HGDouble* value;
HGUInt count;
}HGLibDeviceDoubleValueList;
typedef struct
{
HGInt minValue;
HGInt maxValue;
}HGLibDeviceIntValueRange;
typedef struct
{
HGDouble minValue;
HGDouble maxValue;
}HGLibDeviceDoubleValueRange;
typedef struct
{
2023-04-03 05:58:43 +00:00
HGUInt option; /* 配置名, 参见HGLIB_OPTION_NAME_* */
2022-08-18 10:42:57 +00:00
2023-04-03 05:58:43 +00:00
HGUInt type; /* 值类型, 参见HGLIB_OPTION_VALUETYPE_* */
2022-08-18 10:42:57 +00:00
union
{
HGInt intValue;
HGUInt enumValue;
2022-08-18 10:42:57 +00:00
HGDouble doubleValue;
HGBool boolValue;
};
2023-04-03 05:58:43 +00:00
HGUInt rangeType; /* 值范围类型, 参见HGLIB_OPTION_VALUERANGETYPE_* */
2022-07-19 03:51:00 +00:00
union
{
HGLibDeviceIntValueList intValueList;
HGLibDeviceEnumValueList enumValueList;
2022-07-19 03:51:00 +00:00
HGLibDeviceDoubleValueList doubleValueList;
HGLibDeviceIntValueRange intValueRange;
HGLibDeviceDoubleValueRange doubleValueRange;
};
}HGLibDeviceParam;
2022-07-19 03:51:00 +00:00
typedef struct
{
2023-04-03 05:58:43 +00:00
HGUInt group; /* 组名, 参见HGLIB_GROUP_NAME_* */
HGLibDeviceParam* param;
2022-07-19 03:51:00 +00:00
HGUInt paramCount;
}HGLibDeviceParamGroup;
2022-07-19 03:51:00 +00:00
#pragma pack(pop)
2023-04-03 05:58:43 +00:00
/* 设备热拔插回调
2022-07-19 03:51:00 +00:00
* event: HGLIB_DEVHOTPLUG_EVENT_*
2023-04-03 05:58:43 +00:00
* deviceName:
* param:
2022-07-19 03:51:00 +00:00
*/
typedef void (HGAPI *HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *deviceName, HGPointer param);
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 设备扫描事件回调
* device:
2022-07-19 03:51:00 +00:00
* event: HGLIB_DEVSCAN_EVENT_*
* operateCode: , HGLIB_DEVSCAN_EVENT_INFO下有效
2023-04-03 05:58:43 +00:00
* info: , HGLIB_DEVSCAN_EVENT_INFO下有效
* param:
2022-07-19 03:51:00 +00:00
*/
typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGInt operateCode, const HGChar *info, HGPointer param);
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 设备扫描图像回调
* device:
* image: , HGLib_ReleaseImage释放,
* param:
2022-07-19 03:51:00 +00:00
*/
typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
2022-07-19 03:51:00 +00:00
/* 内存拷贝 */
HGEXPORT HGBool HGAPI HGLib_MemoryCopy(HGVoid *dest, const HGVoid *src, HGUInt size);
2023-04-03 05:58:43 +00:00
/* 加载图像 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
2023-11-22 07:07:50 +00:00
/* 克隆图像 */
HGEXPORT HGLibImage HGAPI HGLib_CloneImage(HGLibImage image, HGUInt type, HGUInt origin);
2023-04-03 05:58:43 +00:00
/* 获取图像数据 */
HGEXPORT HGByte* HGAPI HGLib_GetImageData(HGLibImage image);
2023-04-03 05:58:43 +00:00
/* 获取图像信息 */
HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo);
/* 获取图像DPI */
HGEXPORT HGBool HGAPI HGLib_GetImageDpi(HGLibImage image, HGUInt *xDpi, HGUInt *yDpi);
2023-04-03 05:58:43 +00:00
/* 保存图像 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
2023-04-03 05:58:43 +00:00
/* 释放图像 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_ReleaseImage(HGLibImage image);
/* 获取OCR文本 */
HGEXPORT HGChar* HGAPI HGLib_GetOcrText(HGLibImage image);
/* 销毁OCR文本 */
HGEXPORT HGBool HGAPI HGLib_ReleaseOcrText(HGChar* ocrText);
2023-04-03 05:58:43 +00:00
/* 初始化扫描仪 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_InitDevice(HGLibDeviceHotPlugEventFunc func, HGPointer param);
2023-04-03 05:58:43 +00:00
/* 反初始化扫描仪 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_DeinitDevice();
2023-04-03 05:58:43 +00:00
/* 获取扫描仪名称列表 */
2022-07-19 09:09:52 +00:00
HGEXPORT HGChar** HGAPI HGLib_GetDeviceNameList();
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 销毁扫描仪名称列表 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceNameList(HGChar** deviceName);
2023-04-03 05:58:43 +00:00
/* 打开设备 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName);
2023-04-03 05:58:43 +00:00
/* 关闭设备 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device);
/* 获取设备型号 */
HGEXPORT HGBool HGAPI HGLib_GetDeviceType(HGLibDevice device, HGChar *type, HGUInt maxLen);
2023-04-03 05:58:43 +00:00
/* 获取设备序列号 */
HGEXPORT HGBool HGAPI HGLib_GetDeviceSN(HGLibDevice device, HGChar *sn, HGUInt maxLen);
2023-04-03 05:58:43 +00:00
/* 获取设备固件版本号*/
HGEXPORT HGBool HGAPI HGLib_GetDeviceFWVersion(HGLibDevice device, HGChar* fwVersion, HGUInt maxLen);
/* 获取设备滚轴计数 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceRollerCount(HGLibDevice device);
/* 获取设备历史扫描张数 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceTotalCount(HGLibDevice device);
/* 清除滚轴计数 */
HGEXPORT HGBool HGAPI HGLib_ClearDeviceRollerCount(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 设置设备参数 */
HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, HGUInt option, const HGVoid *data);
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 获取设备参数 */
HGEXPORT HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
HGEXPORT HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option);
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 销毁设备参数 */
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param);
2022-07-19 03:51:00 +00:00
2023-04-03 05:58:43 +00:00
/* 重置设备参数 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 设备是否有纸 */
HGEXPORT HGBool HGAPI HGLib_DeviceIsPaperOn(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 获取设备状态, -1表示异常0表示无纸1表示有纸 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceStatus(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 重启设备 */
HGEXPORT HGBool HGAPI HGLib_DeviceRestart(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 关闭设备 */
HGEXPORT HGBool HGAPI HGLib_DeviceShutDown(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 开始扫描 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
2023-04-03 05:58:43 +00:00
/* 停止扫描 */
2022-07-19 03:51:00 +00:00
HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device);
2023-04-03 05:58:43 +00:00
/* 停止扫描-异步 */
HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device);
/* 获取设备错误码(在调用设备操作函数以后) */
HGEXPORT HGInt HGAPI HGLib_GetDeviceOperateCode(HGLibDevice device);
#endif /* __HGSCANNERLIB_H__ */