#pragma once // hg_scanner_cfg is the base configuration definitions // // created on 2022-02-23 // #include #include "char_const.h" ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 硬件配置项定义 // #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) enum hg_scanner_type { HG_SCANNER_TYPE_NONE = 0, HG_SCANNER_TYPE_G100, HG_SCANNER_TYPE_G200, HG_SCANNER_TYPE_G300, HG_SCANNER_TYPE_G400, HG_SCANNER_TYPE_G139, HG_SCANNER_TYPE_G239, }; //100 200 3399 协议 typedef union hg_scanner_config { unsigned int value; struct { unsigned int paper : 5; // 纸张类型 (每个型号有不同的映射表) unsigned int color : 1; // 是否彩色 0 - 黑白, 1 - 彩色 unsigned int dpi : 2; // DPI (映射表) unsigned int ultrasonic_enable : 1; // 是否进行超声波检测(双/多张进纸检测) unsigned int staple_enbale : 1; // 是否进行钉书钉检测 unsigned int screw_detect_enable : 1; // 是否歪斜检测 unsigned int screw_detect_level : 3; // 歪斜检测水平 unsigned int iscorrect_mod : 1; // 是否自动校正 unsigned int is_autopaper : 1; // 是否自动进纸 unsigned int reserved1 : 4; // 保留 unsigned int pc_correct : 1; // 是否在PC端校正 unsigned int enable_sizecheck : 1; // 是否进行尺寸检测 unsigned int enabledsp_cache : 1; // 是否在片上缓存 unsigned int sizeerror_errorratio : 9; // 幅面检测 }g200params; }HGSCANCONF; //300 400 typedef union hg_scanner_config_dsp { unsigned int value; struct { unsigned int paper : 5; unsigned int color : 1; unsigned int dpi : 2; unsigned int double_feed_enbale : 1; unsigned int stable_enbale : 1; unsigned int screw_detect_enable : 1; unsigned int screw_detect_level : 3; unsigned int unused_one : 6; unsigned int pc_correct : 1; unsigned int enable_sizecheck : 1; unsigned int unused_two : 10; }params; }HGSCANCONF_DSP; typedef union hg_scanner_config_G400 { unsigned int value; struct { unsigned int pageSize : 5; unsigned int isColor : 1; unsigned int dpi : 2; unsigned int doubleFeeded : 1; unsigned int enableUV : 1; unsigned int enableLed : 1; unsigned int sizedetece : 1; unsigned int reversed1 : 5; unsigned int isCorrect : 1; unsigned int dstHeight : 8; unsigned int reversed2 : 6; }params; }HGSCANCONF_G400; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 设置项字符串定义 // // int match_best_xxx(std::string& val, bool* exact) 函数簇原型说明 // // Function: 匹配最接近的字符串,并返回对应的枚举值 // // Parameter: val - [in] 用户传入的设置参数字符串 // [out] 如果传入的参数不能精确匹配固定值,则修改为最接近的值或默认值 // // exact - [out] 如果val与固定选项精确匹配, 则返回true; // 否则返回false,并在val中返回精确的选项值 // // Return: 匹配字符串值的枚举值 // // 注意:下列所有文本定义,必须与设备JSON配置文件中的相关内容保持一致,否则将导致设备参数设置不正确,行为不可控!!! // // 颜色模式 选项 //#define HUAGAO_SETTING_STR_COLOR_MODE_BLACK_WHITE "黑白" //#define HUAGAO_SETTING_STR_COLOR_MODE_256_GRAY "256级灰度" //#define HUAGAO_SETTING_STR_COLOR_MODE_24_BITS "24位彩色" //#define HUAGAO_SETTING_STR_COLOR_MODE_AUTO_MATCH "颜色自动识别" enum { COLOR_MODE_BLACK_WHITE = 0, COLOR_MODE_256_GRAY, COLOR_MODE_24_BITS, COLOR_MODE_AUTO_MATCH, }; int match_best_color_mode(std::string& val, bool* exact); std::string color_mode_string(int clr_mode); //#define HUAGAO_SETTING_STR_MULTI_OUT_NOT "不选择输出模式" //#define HUAGAO_SETTING_STR_MULTI_OUT_ALL "彩色+灰度+黑白" //#define HUAGAO_SETTING_STR_MULTI_COLOR_ADN_GRAY "彩色+灰度" //#define HUAGAO_SETTING_STR_MULTI_COLOR_ADN_BW "彩色+黑白" //#define HUAGAO_SETTING_STR_MULTI_GRAY_ADN_BW "灰度+黑白" enum { MULTI_OUT_NOT = 0, MULTI_OUT_ALL, MULTI_COLOR_AND_GRAY, MULTI_COLOR_AND_BW, MULTI_GRAY_AND_BW }; int match_best_multi_out(std::string& val, bool* exact); std::string multi_out_string(int clr_mode); // 除色 选项 //#define HUAGAO_SETTING_STR_RID_COLOR_NONE "不除色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_RED "除红色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_GREEN "除绿色" //#define HUAGAO_SETTING_STR_RID_COLOR_RID_BLUE "除蓝色" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_RED "红色增强" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_GREEN "绿色增强" //#define HUAGAO_SETTING_STR_RID_COLOR_ENHANCE_BLUE "蓝色增强" enum { RID_COLOR_NONE = 0, RID_COLOR_RID_RED, RID_COLOR_RID_GREEN, RID_COLOR_RID_BLUE, RID_COLOR_ENHANCE_RED, RID_COLOR_ENHANCE_GREEN, RID_COLOR_ENHANCE_BLUE, }; int match_best_rid_color(std::string& val, bool* exact); std::string rid_color_string(int rid_color); // 纸张 选项 //#define HUAGAO_SETTING_STR_PAPER_A3 "A3" //#define HUAGAO_SETTING_STR_PAPER_A4 "A4" //#define HUAGAO_SETTING_STR_PAPER_A5 "A5" //#define HUAGAO_SETTING_STR_PAPER_A6 "A6" //#define HUAGAO_SETTING_STR_PAPER_B4 "B4" //#define HUAGAO_SETTING_STR_PAPER_B5 "B5" //#define HUAGAO_SETTING_STR_PAPER_B6 "B6" //#define HUAGAO_SETTING_STR_PAPER_8K "8开" //#define HUAGAO_SETTING_STR_PAPER_16K "16开" //#define HUAGAO_SETTING_STR_PAPER_LETTER "Letter" //#define HUAGAO_SETTING_STR_PAPER_A4_LATERAL "A4横向" //#define HUAGAO_SETTING_STR_PAPER_A5_LATERAL "A5横向" //#define HUAGAO_SETTING_STR_PAPER_A6_LATERAL "A6横向" //#define HUAGAO_SETTING_STR_PAPER_B5_LATERAL "B5横向" //#define HUAGAO_SETTING_STR_PAPER_B6_LATERAL "B6横向" //#define HUAGAO_SETTING_STR_PAPER_16K_LATERAL "16开横向" //#define HUAGAO_SETTING_STR_PAPER_LETTER_LATERAL "Letter横向" //#define HUAGAO_SETTING_STR_PAPER_DOUBLE_LETTER "Double Letter" //#define HUAGAO_SETTING_STR_PAPER_LEGAL "LEGAL" //#define HUAGAO_SETTING_STR_PAPER_AUTO_MATCH "匹配原始尺寸" //#define HUAGAO_SETTING_STR_PAPER_MAX_SIZE "最大扫描尺寸" //#define HUAGAO_SETTING_STR_PAPER_MAX_SIZE_CLIP "最大扫描尺寸自动裁切" //#define HUAGAO_SETTING_STR_PAPER_TRIGEMINY "三联试卷" enum { PAPER_A3 = 0, PAPER_A4, PAPER_A5, PAPER_A6, PAPER_B4, PAPER_B5, PAPER_B6, PAPER_8K, PAPER_16K, PAPER_LETTER, PAPER_A4_LATERAL, PAPER_A5_LATERAL, PAPER_A6_LATERAL, PAPER_B5_LATERAL, PAPER_B6_LATERAL, PAPER_16K_LATERAL, PAPER_LETTER_LATERAL, PAPER_DOUBLE_LETTER, PAPER_LEGAL, PAPER_AUTO_MATCH, PAPER_MAX_SIZE, PAPER_MAX_SIZE_CLIP, PAPER_TRIGEMINY, }; int match_best_paper(std::string& val, bool* exact); std::string paper_string(int paper); bool is_lateral(int paper); // 页面扫描模式 选项 //#define HUAGAO_SETTING_STR_PAGE_SINGLE "单面" //#define HUAGAO_SETTING_STR_PAGE_DOUBLE "双面" //#define HUAGAO_SETTING_STR_PAGE_OMIT_EMPTY "跳过空白页(通用)" //#define HUAGAO_SETTING_STR_PAGE_OMIT_EMPTY_RECEIPT "跳过空白页(发票纸)" //#define HUAGAO_SETTING_STR_PAGE_FOLIO "对折" enum { PAGE_SINGLE = 0, PAGE_DOUBLE, PAGE_OMIT_EMPTY, PAGE_OMIT_EMPTY_RECEIPT, PAGE_FOLIO, }; int match_best_page(std::string& val, bool* exact); std::string page_string(int page); // 锐化 选项 //#define HUAGAO_SETTING_STR_SHARPEN_NONE "无" //#define HUAGAO_SETTING_STR_SHARPEN_SHARPEN "锐化" //#define HUAGAO_SETTING_STR_SHARPEN_SHARPEN_MORE "进一步锐化" //#define HUAGAO_SETTING_STR_SHARPEN_HAZY "模糊" //#define HUAGAO_SETTING_STR_SHARPEN_HAZY_MORE "进一步模糊" enum { SHARPEN_NONE = 0, SHARPEN_SHARPEN, SHARPEN_SHARPEN_MORE, SHARPEN_HAZY, SHARPEN_HAZY_MORE, }; int match_best_sharpen(std::string& val, bool* exact); std::string sharpen_string(int sharpen); //背景填充方式 选项 //#define HUAGAO_SETTING_STR_FILL_BKG_CONVEX_POLYGON "凸多边形" //#define HUAGAO_SETTING_STR_FILL_BKG_CONCAVE_POLYGON "凹多边形" enum { FILL_BKG_CONVEX_POLYGON = 0, FILL_BKG_CONCAVE_POLYGON, }; int match_best_fill_background(std::string& val, bool* exact); std::string fill_background_string(int fill); // 扫描数量 选项 //#define HUAGAO_SETTING_STR_SCAN_MODE_CONTINUOUS "连续扫描" //#define HUAGAO_SETTING_STR_SCAN_MODE_GIVEN_COUNT "扫描指定张数" enum { SCAN_MODE_CONTINUOUS = 0, SCAN_MODE_GIVEN_COUNT, }; int match_best_scan_mode(std::string& val, bool* exact); std::string scan_mode_string(int mode); // 文稿方向 选项 //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_0 "0°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_90 "90°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_180 "180°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_270 "-90°" //#define HUAGAO_SETTING_STR_TEXT_DIRECTION_AUTO "自动文本方向识别°" enum { TEXT_DIRECTION_0 = 0, TEXT_DIRECTION_90, TEXT_DIRECTION_180, TEXT_DIRECTION_270, TEXT_DIRECTION_AUTO, }; int match_best_text_direction(std::string& val, bool* exact); std::string text_direction_string(int text_dir); //#define HUAGAO_SETTING_STR_PERMAEATE_WEAKER "较弱" //#define HUAGAO_SETTING_STR_PERMAEATE_WEAK "弱" //#define HUAGAO_SETTING_STR_PERMAEATE_ORDINARY "一般" //#define HUAGAO_SETTING_STR_PERMAEATE_STRONG "强" //#define HUAGAO_SETTING_STR_PERMAEATE_STRONGER "较强" enum { PERMAEATE_WEAKER = 0, PERMAEATE_WEAK, PERMAEATE_ORDINARY, PERMAEATE_STRONG, PERMAEATE_STRONGER, }; int match_best_permaeate_lv(std::string& val, bool* exact); std::string is_permaeate_string(int text_dir); //画质 enum { IMG_NONE = -1, IMG_SPEED , IMG_QUALITY, }; int match_best_img_quality(std::string& val, bool* exact); std::string is_img_quality(int is_quakuty); typedef union _img_proc_fixed_param { unsigned long long value; struct { unsigned long long rid_red : 1; // 多流输出除红 unsigned long long rid_answer_red : 1; // 答题卡除红 unsigned long long erase_bakground : 1; // 背景移除 unsigned long long noise_optimize : 1; // 噪点优化 unsigned long long exchange : 1; // 交换正反面 unsigned long long split : 1; // 图像拆分 unsigned long long rid_hole : 1; // 穿孔移除 unsigned long long dark_sample : 1; // 深色样张 unsigned long long rotate_back_180 : 1; // 背面旋转180度 unsigned long long fractate_check : 1; // 折角检测 unsigned long long is_permeate : 1; // 防止渗透 unsigned long long remove_morr : 1; // 去除摩尔纹 unsigned long long error_extention : 1; // 错误扩散 unsigned long long remove_txtture : 1; // 去网纹 unsigned long long fill_background : 2; // 背景填充方式 unsigned long long is_permeate_lv_ : 3; // 渗透等级 1 - 5 unsigned long long multi_out : 3; // 多流输出 unsigned long long erase_black_frame: 1; // 消除黑框 unsigned long long automatic_skew : 1; // 自动纠偏 unsigned long long rid_color : 3; // 除色 unsigned long long color_mode : 3; // 颜色模式 unsigned long long page : 3; // 页面模式 unsigned long long paper : 8; // 纸张类型 unsigned long long sharpen : 4; // 锐化模式 unsigned long long text_direction : 4; // 文稿方向 unsigned long long reserved2 : 14; // 保留 }bits; }IMGPRCFIXPARAM; // 设置项字符串定义 - OVER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 状态信息描述符 // // 状态信息描述符 - OVER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////图像参数及设备协议/////////////////////////////////////////////////////// // #ifndef uint8_t // #define uint8_t unsigned char // #endif // #ifndef uint32_t // #define uint32_t unsigned int // #endif //DSP设备USB读写协议结构 // typedef struct tag_USBCB { unsigned int u32_CMD; unsigned int u32_Data; unsigned int u32_Count; }USBCB, * PUSBCB; //DSP设备USB读写协议结构 - OVER typedef struct hg_tag_SIZE { long cx; long cy; }CSSIZE, *PCSSIZE, *LPCSSIZE; typedef CSSIZE CSSIZEL; typedef CSSIZE *PCSSIZEL, *LPCSSIZEL; enum PaperAlign :unsigned char { Rot0 = 0, Rot270 = 3, AutoTextOrientation = 5 }; enum LowPowerMode :unsigned int { Min_None = 0, Min_5, Min_10, Min_20, Min_30, Min_60, Min_120, Min_240 }; //纸张类型 // enum TwSS : unsigned short { None = 0, A4Letter = 1, A4 = 1, B5Letter = 2, JISB5 = 2, B5 = 2, USLetter = 3, USLegal = 4, A5 = 5, B4 = 6, ISOB4 = 6, B6 = 7, ISOB6 = 7, USLedger = 9, USExecutive = 10, A3 = 11, B3 = 12, ISOB3 = 12, A6 = 13, C4 = 14, C5 = 15, C6 = 16, _4A0 = 17, _2A0 = 18, A0 = 19, A1 = 20, A2 = 21, A7 = 22, A8 = 23, A9 = 24, A10 = 25, ISOB0 = 26, ISOB1 = 27, ISOB2 = 28, ISOB5 = 29, ISOB7 = 30, ISOB8 = 31, ISOB9 = 32, ISOB10 = 33, JISB0 = 34, JISB1 = 35, JISB2 = 36, JISB3 = 37, JISB4 = 38, JISB6 = 39, JISB7 = 40, JISB8 = 41, JISB9 = 42, JISB10 = 43, C0 = 44, C1 = 45, C2 = 46, C3 = 47, C7 = 48, C8 = 49, C9 = 50, C10 = 51, USStatement = 52, BusinessCard = 53, MaxSize = 54, K8 = 0x81, K16 = 0x82, Trigeminy = 0x83, }; //纸张类型 - OVER enum ScannerSerial { G100Serial, G200Serial, G300Serial, G400Serial, G10039Serial, G20039Serial, }; //设备状态 // typedef enum tagUsbSupported { //停止扫描 SCAN_STOP = -2, //异常 HAVE_ERROR = -1, //正常状态 NORMAL = 0, //开盖 OPEN_COVER = 1, // 无纸 NO_FEED = 2, // 搓纸失败 FEED_IN_ERROR = 4, // 卡纸 PAPER_JAM = 8, // 检测到双张 DETECT_DOUBLE_FEED = 16, // 检测到订书钉 DETECT_STAPLE = 32, // 纸张倾斜 PAPER_SKEW = 64, // 自动模式 AUTO_SCAN_MODE = 65, // 手动模式 MANAUL_SCAN_MODE = 66, // 计数模式 COUNT_MODE = 67, // 硬件错误 HARDWARE_ERROR = 68, // FPGA崩溃 FPGA_ERROR = 68, // 开始 START_SCAN = 69, //停止 STOP_SCAN = 70, //有图 HAVE_IMAGE = 71, // 更新扫描参数 UPDATE_SCAN_PARAMETER = 72, // PC繁忙或出错 PC_SCAN_BUSY_or_ERROR = 73, //摺角 DOG_EAR = 74, //幅面检测错误 SIZE_ERROR = 75, //取图超时 AQUIRE_IMAGE_TIMEOUT = 76, //获取图片与扫描张数不匹配 LOSE_IMAGE = 77, //usb读取数据错误 USB_BULK_ERROR = 78, //v4l2取图失败 V4L2_AQULRE_ERROR = 79, //扫描仪内部图片丢失 V4L2_IMAGE_EMPTY = 80, //处于休眠中 SLEEPING = 81, //检测到有折角 HAVE_DOGEAR = 82, //USB 未连接 USB_DISCONNECTED = 200, //用户点击停止 USER_STOP = 201, //自动校正完成 AUTO_FLAT_FINISHED = 202, //usb 已连接 USB_CONNECTED, HAVE_PAPER, /*USB链接断开***/ DEVICE_OFF_LINE, } UsbSupported, * PUsbSupported; // //设备状态 - OVER //G300 G400 纸张类型协议 // enum G400_PaperSize { G400_A3 = 0, G400_A4, G400_A4R, G400_A5, G400_A5R, G400_A6, G400_A6R, G400_B4, G400_B5, G400_B5R, G400_B6, G400_B6R, G400_DOUBLELETTER, G400_LEGAL, G400_LETTER, G400_LETTERR, G400_LONGLETTER, G400_MAXSIZE, G400_AUTO }; // //G300 G400 纸张类型协议 - OVER //G100 G200 3399设备协议 // enum tagUsbKeyWords { NO_COMMAND = 0, GET_DSP_STATUS = 1, GET_IMAGE = 2, POP_IMAGE = 3, START_COMMAND = 4, STOP = 5, GET_SCAN_MODE = 6, GET_FW_VERSION = 7, SEND_STATUS_PC = 8, CONFIGURED_DATA = 9, SEND_FW = 10, GET_CONFIG_DATA = 11, GET_SCANN_NUM = 12, GET_PAPERFEEDER_STATUS = 13, INIT_HARDWARE_SYS = 14, GET_PAPER_STATUS = 0x0d, SEND_COMPONENTS_GR = 15, SEND_COMPONENTS_GB = 16, SEND_SCAN_MODE = 17, START_FLAT = 18, STOP_FLAT = 19, SEND_200_COLOR_FLAT_DATA = 20, SEND_300_COLOR_FLAT_DATA = 21, GET_200_COLOR_FLAT_DATA = 22, GET_300_COLOR_FLAT_DATA = 23, SEND_200_GRAY_FLAT_DATA = 24, SEND_300_GRAY_FLAT_DATA = 25, GET_200_GRAY_FLAT_DATA = 26, GET_300_GRAY_FLAT_DATA = 27, SEND_SERIAL = 28, GET_SERIAL = 29, GET_ROLLER_NUM = 30, CLR_ROLLER_NUM = 31, START_COMMAND_COUNT = 38, SET_SLEEP_TIME = 39, GET_SLEEP_TIME = 40, CLR_HARDWARE_CACHE = 41, CHECK_IS_SLEEP = 0x100, }; //G100 G200 3399设备协议 - OVER #pragma pack(push) #pragma pack(4) //除色和增强 // typedef enum tagColor_Filter { FILTER_RED, FILTER_GREEN, FILTER_BLUE, FILTER_NONE, FILTER_ALL, ENHANCE_RED, ENHANCE_GREEN, ENHANCE_BLUE }ColorFilter; //除色和增强 - OVER //填穿孔 // typedef struct tagFillHole { uint8_t is_fillhole; int fillholeratio; }FillHole; //填穿孔 - OVER //黑白降噪 // typedef struct tagDetachNoise { unsigned char is_detachnoise; int detachnoise; }DetachNoise; //黑白降噪 -OVER //自定义裁切 // typedef struct tagCrop_Rect { int enable; int x; /*****自定义裁切区域左上角x坐标*/ int y; /*****自定义裁切区域左上角y坐标*/ int width; /*****自定义裁切区域宽度*******/ int height; /*****自定义裁切区域高度*******/ }CropRect; //自定义裁切 -OVER //多留输出 // typedef enum tagMulti_Output { Unused = -1, All, ColorGray, ColorBw, GrayBw }MultiOutput; //多留输出 -OVER //设置设备硬件状态 // typedef struct tagHhardware_Params { unsigned char capturepixtype; unsigned char en_doublefeed; unsigned char en_stapledetect; unsigned char en_skrewdetect; unsigned char skrewdetectlevel; LowPowerMode lowpowermode; #ifdef UV unsigned char en_uv; #endif }HardwareCaps; //设置设备硬件状态 -OVER //图像参数设置 // typedef struct _scan_conf { unsigned char papertype; /**< the current paper source ADF or Flatbed*/ unsigned char paperAlign; unsigned char en_sizecheck; /**< 尺寸检测*/ float imageRotateDegree; /**< 旋转 */ unsigned char is_duplex; /**< True to use duplex false for simplex, ignored if flatbed*/ unsigned char en_fold; /**<对折*/ int pixtype; /**< type of pixels to transfer image as */ int automaticcolor; /**<顔色自動識別*/ int automaticcolortype; /**<顔色自動識別后非彩色上傳類型*/ //ScanRect scanrect; float resolution_dst; /**< horizontal resolution */ float resolution_native; float gamma; /**< Gamma */ float contrast; /**< Contrast */ float brightness; /**< Brightness */ float threshold; /**< Threshold */ unsigned char is_autocontrast; /**< 自动对比度*/ unsigned char is_autocrop; /**< 自动裁切*/ unsigned char is_autodiscradblank_normal; /**< 自动丢弃空白页通用*/ int discardblank_percent; /**<跳过空白页阀值*/ unsigned char is_autodiscradblank_vince;/**自动丢弃空白页发票*/ unsigned char is_switchfrontback; /**交换正反面*/ unsigned char autodescrew; /**< 自动纠偏*/ unsigned char multi_output_red; /*多流输出*/ unsigned char hsvcorrect; /**<答题卡除红*/ unsigned char filter; /**< 除色*/ unsigned char sharpen; unsigned char enhance_color; /**< 颜色增强*/ unsigned char fillbackground; /**< 填黑框*/ bool is_convex; /**< 填黑框模式,true为凸多边形填充,false为凹多边形填充,默认true*/ int noise; /**< 除噪像素,能够消除noise宽度的背景竖条纹干扰,默认40*/ int indent; /**< 轮廓缩进,裁剪、纠偏或者黑底填充时,对探索到的纸张轮廓进行缩进indent像素,默认5*/ int AutoCrop_threshold; /**< 自动裁剪二值化阈值,取值范围(0, 255),默认40*/ unsigned short scannum; /**< 扫描张数*/ unsigned char is_backrotate180; /**< 背面旋转180*/ unsigned char is_dogeardetection; /**<折角检测*/ HardwareCaps hardwarecaps; /**< 硬件扫描参数*/ FillHole fillhole; /**< 填穿孔*/ DetachNoise detachnoise; /**< 黑白降噪*/ unsigned char is_autotext; /**< 自动文本方向识别*/ bool isfillcolor; /**< 自动裁切颜色填充>*/ int refuseInflow; /**< 防止渗透>*/ int colorCorrection; /**< 色彩校正>*/ int removeMorr; /**< 去除摩尔纹>*/ int errorExtention; /** < 错误扩散>*/ int textureRemove; /** < 除网纹>*/ int splitImage; /** < 图像拆分>*/ CropRect cropRect; /**< 自定义裁切>*/ MultiOutput multiOutput; /**< 多流输出>*/ bool normalCrop; /**< 自动裁切深色样张>*/ uint32_t dogeardistabce; bool fadeback; /**< 背景除色>*/ int fadebackrange; uint32_t reserve[1024]; /**< 预留4096字节做协议扩展*/ }SCANCONF ,*LPSCANCONF; //图像参数设置 -OVER #pragma pack(pop)