From 750d94beb8e02e444d0cd67f264ba6e7d9a5d0e1 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Thu, 10 Nov 2022 10:05:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4JSON=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8F=8A=E5=B7=A5=E5=85=B7=EF=BC=8C=E4=BE=9D=E8=B5=96=E9=A1=B9?= =?UTF-8?q?=E4=BB=8E=E5=BA=8F=E5=8F=B7=E5=85=B3=E8=81=94=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E4=BB=A5name=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/G100-G200 - lsc.txt | 282 ++++++++++---------------- docs/G100-G200.txt | 282 ++++++++++---------------- docs/G139-239 - lsc.txt | 325 ++++++++++++------------------ docs/G139-239-x86.txt | 325 ++++++++++++------------------ docs/G139-239.txt | 325 ++++++++++++------------------ docs/G300 - lsc.txt | 271 ++++++++++--------------- docs/G300.txt | 274 ++++++++++--------------- docs/G302 - lsc.txt | 274 ++++++++++--------------- docs/G302.txt | 274 ++++++++++--------------- docs/G400 - lsc.txt | 270 ++++++++++--------------- docs/G400.txt | 265 ++++++++++-------------- docs/G402-lsc.txt | 270 ++++++++++--------------- docs/G402-x86.txt | 265 ++++++++++-------------- docs/G402.txt | 265 ++++++++++-------------- docs/G439-lsc.txt | 282 ++++++++++---------------- docs/G439.txt | 290 ++++++++++---------------- tools/apps/hgjson/hgjsonDlg.cpp | 161 ++++++++++----- tools/apps/hgjson/hgjsonDlg.h | 8 +- tools/solution/Release/hgjson.exe | Bin 272384 -> 276480 bytes 19 files changed, 1872 insertions(+), 2836 deletions(-) diff --git a/docs/G100-G200 - lsc.txt b/docs/G100-G200 - lsc.txt index 431b977..7f86632 100644 --- a/docs/G100-G200 - lsc.txt +++ b/docs/G100-G200 - lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G100-G200-lsc", - "option_count": 65, - "1": { + "global": { + "device_type": "G100-G200-lsc", + "option_count": 65 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4!=true"] + "depend_or": ["is-multiout!=true"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 1, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "8开", "A4", "A4横向", "16开", "16开横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -462,9 +425,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -472,22 +434,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -498,11 +458,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -513,11 +472,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -528,22 +486,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -551,9 +507,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -561,11 +516,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -573,9 +527,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -586,11 +539,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -598,9 +550,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -611,11 +562,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -623,9 +573,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -636,11 +585,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -648,9 +596,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -661,17 +608,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -680,20 +625,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -702,20 +645,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -723,9 +664,8 @@ "default": true, "size": 4 }, - "62": { + "is-staple": { "category": "base", - "name": "is-staple", "title": "装订检测", "desc": "检测是否出现粘连送入", "type": "bool", @@ -733,9 +673,8 @@ "default": false, "size": 4 }, - "63": { + "is-check-askew": { "category": "base", - "name": "is-check-askew", "title": "歪斜检测", "desc": "检测是否出现歪斜送入", "type": "bool", @@ -743,9 +682,8 @@ "default": true, "size": 4 }, - "64": { + "askew-range": { "category": "base", - "name": "askew-range", "title": "歪斜容忍度", "desc": "值越小,能容忍得送入文稿歪斜角度越小", "type": "int", @@ -756,6 +694,6 @@ "min": 1, "max": 5 }, - "depend_or": ["63==true"] + "depend_or": ["is-check-askew==true"] } } \ No newline at end of file diff --git a/docs/G100-G200.txt b/docs/G100-G200.txt index fe02b5b..95639b7 100644 --- a/docs/G100-G200.txt +++ b/docs/G100-G200.txt @@ -1,9 +1,10 @@ { - "device_type": "G100-G200", - "option_count": 65, - "1": { + "global": { + "device_type": "G100-G200", + "option_count": 65 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 128, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4!=true"] + "depend_or": ["is-multiout!=true"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 1, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "8开", "A4", "A4横向", "16开", "16开横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -462,9 +425,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -472,22 +434,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -498,11 +458,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -513,11 +472,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -528,22 +486,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -551,9 +507,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -561,11 +516,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -573,9 +527,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -586,11 +539,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -598,9 +550,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -611,11 +562,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -623,9 +573,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -636,11 +585,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -648,9 +596,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -661,17 +608,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -680,20 +625,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -702,20 +645,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -723,9 +664,8 @@ "default": true, "size": 4 }, - "62": { + "is-staple": { "category": "base", - "name": "is-staple", "title": "装订检测", "desc": "检测是否出现粘连送入", "type": "bool", @@ -733,9 +673,8 @@ "default": false, "size": 4 }, - "63": { + "is-check-askew": { "category": "base", - "name": "is-check-askew", "title": "歪斜检测", "desc": "检测是否出现歪斜送入", "type": "bool", @@ -743,9 +682,8 @@ "default": true, "size": 4 }, - "64": { + "askew-range": { "category": "base", - "name": "askew-range", "title": "歪斜容忍度", "desc": "值越小,能容忍得送入文稿歪斜角度越小", "type": "int", @@ -756,6 +694,6 @@ "min": 1, "max": 5 }, - "depend_or": ["63==true"] + "depend_or": ["is-check-askew==true"] } } \ No newline at end of file diff --git a/docs/G139-239 - lsc.txt b/docs/G139-239 - lsc.txt index 409a536..6e5e307 100644 --- a/docs/G139-239 - lsc.txt +++ b/docs/G139-239 - lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G139-G239-lsc", - "option_count": 76, - "1": { + "global": { + "device_type": "G139-G239-lsc", + "option_count": 76 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4!=true"] + "depend_or": ["is-multiout!=true"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "8开", "A4", "A4横向", "16开", "16开横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A5横向", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A5横向", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,11 +309,10 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(通用)", "27==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -351,9 +324,8 @@ "max": 600 } }, - "30": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -361,11 +333,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] + "depend_or": ["page==对折"] }, - "31": { + "image-quality": { "category": "base", - "name": "image-quality", "title": "画质", "desc": "选择扫描仪的画质模式", "type": "string", @@ -373,28 +344,25 @@ "default": "速度优先", "size": 24, "range": ["速度优先", "画质优先"], - "depend_or": ["29>=300"] + "depend_or": ["resolution>=300"] }, - "32": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "33": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "34": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -402,9 +370,8 @@ "default": false, "size": 4 }, - "35": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -415,11 +382,10 @@ "min": 1, "max": 255 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -430,11 +396,10 @@ "min": 1, "max": 7 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "37": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -445,39 +410,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "38": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "39": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "27!=跳过空白页(发票纸)", "27!=跳过空白页(通用)"] + "depend_and": ["page!=对折", "!=跳过空白页(发票纸)", "!=跳过空白页(通用)"] }, - "41": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -485,9 +446,8 @@ "default": false, "size": 4 }, - "42": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -495,9 +455,8 @@ "default": true, "size": 4 }, - "43": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -505,22 +464,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["42==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "44": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["42==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "45": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -531,11 +488,10 @@ "min": 30, "max": 50 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "46": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -546,11 +502,10 @@ "min": 1, "max": 20 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "47": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -561,22 +516,20 @@ "min": 5, "max": 30 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "39==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "48": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "42!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "39!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "49": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -584,9 +537,8 @@ "default": false, "size": 4 }, - "50": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -594,11 +546,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["49==true"] + "depend_or": ["is-anti-permeate==true"] }, - "51": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -606,9 +557,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +569,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["51==true"] + "depend_and": ["is-rid-hole-l==true"] }, - "53": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -631,9 +580,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +592,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["53==true"] + "depend_and": ["is-rid-hole-r==true"] }, - "55": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -656,9 +603,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,11 +615,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["55==true"] + "depend_and": ["is-rid-hole-t==true"] }, - "57": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -681,9 +626,8 @@ "default": false, "size": 4 }, - "58": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -694,17 +638,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["57==true"] + "depend_and": ["is-rid-hole-b==true"] }, - "59": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "60": { + "is-wait-scan": { "category": "base", - "name": "is-wait-scan", "title": "待纸扫描", "desc": "启用后,文稿放入扫描仪时将自动启动扫描", "type": "bool", @@ -712,9 +654,8 @@ "default": false, "size": 4 }, - "61": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -723,20 +664,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "62": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["61==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "63": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -745,20 +684,18 @@ "size": 24, "range": ["0°", "90°", "180°", "-90°"] }, - "64": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折", "63!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "65": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -766,9 +703,8 @@ "default": true, "size": 4 }, - "66": { + "double-feed": { "category": "base", - "name": "double-feed", "title": "双张图片处理", "desc": "检测到双张进纸后的处理方式", "type": "string", @@ -776,11 +712,10 @@ "default": "丢弃图像并停止扫描", "size": 40, "range": ["丢弃图像并停止扫描", "上传图像并停止扫描"], - "depend_or": ["65==true"] + "depend_or": ["is-ultrosonic==true"] }, - "67": { + "is-staple": { "category": "base", - "name": "is-staple", "title": "装订检测", "desc": "检测是否出现粘连送入", "type": "bool", @@ -788,9 +723,8 @@ "default": false, "size": 4 }, - "68": { + "is-check-askew": { "category": "base", - "name": "is-check-askew", "title": "歪斜检测", "desc": "检测是否出现歪斜送入", "type": "bool", @@ -798,9 +732,8 @@ "default": true, "size": 4 }, - "69": { + "askew-range": { "category": "base", - "name": "askew-range", "title": "歪斜容忍度", "desc": "值越小,能容忍得送入文稿歪斜角度越小", "type": "int", @@ -811,11 +744,10 @@ "min": 1, "max": 5 }, - "depend_or": ["68==true"] + "depend_or": ["is-check-askew==true"] }, - "70": { + "is-check-dog-ear": { "category": "base", - "name": "is-check-dog-ear", "title": "折角检测", "desc": "检测文稿是否存在折角", "type": "bool", @@ -823,9 +755,8 @@ "default": false, "size": 4 }, - "71": { + "dog-ear-size": { "category": "base", - "name": "dog-ear-size", "title": " 折角大小", "desc": "值越小,能检测到的折角越小", "type": "int", @@ -836,11 +767,10 @@ "min": 0, "max": 100 }, - "depend_or": ["70==true"] + "depend_or": ["is-check-dog-ear==true"] }, - "72": { + "feed-strength": { "category": "base", - "name": "feed-strength", "title": "分纸强度", "desc": "设置扫描仪的分纸力度", "type": "string", @@ -849,9 +779,8 @@ "size": 16, "range": ["弱", "一般", "强"] }, - "73": { + "time-to-sleep": { "category": "base", - "name": "time-to-sleep", "title": "休眠时间", "desc": "设置扫描仪的休眠时间", "type": "string", @@ -860,9 +789,8 @@ "size": 24, "range": ["不休眠", "五分钟", "十分钟", "半小时", "一小时", "两小时", "四小时"] }, - "74": { + "is-auto-strength": { "category": "base", - "name": "is-auto-strength", "title": "自动分纸强度", "desc": "扫描仪自动修正分纸力度", "type": "bool", @@ -870,9 +798,8 @@ "default": false, "size": 4 }, - "75": { + "feed-strength-value": { "category": "base", - "name": "feed-strength-value", "title": " 进纸失败率", "desc": "高于该值时扫描仪将调整分纸力度", "type": "float", @@ -883,6 +810,6 @@ "min": 0.100000, "max": 0.900000 }, - "depend_or": ["74==true"] + "depend_or": ["is-auto-strength==true"] } } \ No newline at end of file diff --git a/docs/G139-239-x86.txt b/docs/G139-239-x86.txt index ae0bcf3..2954878 100644 --- a/docs/G139-239-x86.txt +++ b/docs/G139-239-x86.txt @@ -1,9 +1,10 @@ { - "device_type": "G139-239-x86", - "option_count": 76, - "1": { + "global": { + "device_type": "G139-239-x86", + "option_count": 76 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4!=true"] + "depend_or": ["is-multiout!=true"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "8开", "A4", "A4横向", "16开", "16开横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A5横向", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A5横向", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,11 +309,10 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(通用)", "27==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -351,9 +324,8 @@ "max": 600 } }, - "30": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -361,11 +333,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] + "depend_or": ["page==对折"] }, - "31": { + "image-quality": { "category": "base", - "name": "image-quality", "title": "画质", "desc": "选择扫描仪的画质模式", "type": "string", @@ -373,28 +344,25 @@ "default": "速度优先", "size": 24, "range": ["速度优先", "画质优先"], - "depend_or": ["29>=300"] + "depend_or": ["resolution>=300"] }, - "32": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "33": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "34": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -402,9 +370,8 @@ "default": false, "size": 4 }, - "35": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -415,11 +382,10 @@ "min": 1, "max": 255 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -430,11 +396,10 @@ "min": 1, "max": 7 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "37": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -445,39 +410,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "38": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "39": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "27!=跳过空白页(发票纸)", "27!=跳过空白页(通用)"] + "depend_and": ["page!=对折", "!=跳过空白页(发票纸)", "!=跳过空白页(通用)"] }, - "41": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -485,9 +446,8 @@ "default": false, "size": 4 }, - "42": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -495,9 +455,8 @@ "default": true, "size": 4 }, - "43": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -505,22 +464,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["42==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "44": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["42==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "45": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -531,11 +488,10 @@ "min": 30, "max": 50 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "46": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -546,11 +502,10 @@ "min": 1, "max": 20 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "47": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -561,22 +516,20 @@ "min": 5, "max": 30 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "39==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "48": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "42!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "39!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "49": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -584,9 +537,8 @@ "default": false, "size": 4 }, - "50": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -594,11 +546,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["49==true"] + "depend_or": ["is-anti-permeate==true"] }, - "51": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -606,9 +557,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +569,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "53": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -631,9 +580,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +592,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "55": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -656,9 +603,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,11 +615,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "57": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -681,9 +626,8 @@ "default": false, "size": 4 }, - "58": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -694,17 +638,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["57==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "59": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "60": { + "is-wait-scan": { "category": "base", - "name": "is-wait-scan", "title": "待纸扫描", "desc": "启用后,文稿放入扫描仪时将自动启动扫描", "type": "bool", @@ -712,9 +654,8 @@ "default": false, "size": 4 }, - "61": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -723,20 +664,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "62": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["61==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "63": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -745,20 +684,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "64": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折", "63!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "65": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -766,9 +703,8 @@ "default": true, "size": 4 }, - "66": { + "double-feed": { "category": "base", - "name": "double-feed", "title": "双张图片处理", "desc": "检测到双张进纸后的处理方式", "type": "string", @@ -776,11 +712,10 @@ "default": "丢弃图像并停止扫描", "size": 40, "range": ["丢弃图像并停止扫描", "上传图像并停止扫描"], - "depend_or": ["65==true"] + "depend_or": ["is-ultrosonic==true"] }, - "67": { + "is-staple": { "category": "base", - "name": "is-staple", "title": "装订检测", "desc": "检测是否出现粘连送入", "type": "bool", @@ -788,9 +723,8 @@ "default": false, "size": 4 }, - "68": { + "is-check-askew": { "category": "base", - "name": "is-check-askew", "title": "歪斜检测", "desc": "检测是否出现歪斜送入", "type": "bool", @@ -798,9 +732,8 @@ "default": true, "size": 4 }, - "69": { + "askew-range": { "category": "base", - "name": "askew-range", "title": "歪斜容忍度", "desc": "值越小,能容忍得送入文稿歪斜角度越小", "type": "int", @@ -811,11 +744,10 @@ "min": 1, "max": 5 }, - "depend_or": ["68==true"] + "depend_or": ["is-check-askew==true"] }, - "70": { + "is-check-dog-ear": { "category": "base", - "name": "is-check-dog-ear", "title": "折角检测", "desc": "检测文稿是否存在折角", "type": "bool", @@ -823,9 +755,8 @@ "default": false, "size": 4 }, - "71": { + "dog-ear-size": { "category": "base", - "name": "dog-ear-size", "title": " 折角大小", "desc": "值越小,能检测到的折角越小", "type": "int", @@ -836,11 +767,10 @@ "min": 0, "max": 100 }, - "depend_or": ["70==true"] + "depend_or": ["is-check-dog-ear==true"] }, - "72": { + "feed-strength": { "category": "base", - "name": "feed-strength", "title": "分纸强度", "desc": "设置扫描仪的分纸力度", "type": "string", @@ -849,9 +779,8 @@ "size": 16, "range": ["弱", "一般", "强"] }, - "73": { + "time-to-sleep": { "category": "base", - "name": "time-to-sleep", "title": "休眠时间", "desc": "设置扫描仪的休眠时间", "type": "string", @@ -860,9 +789,8 @@ "size": 24, "range": ["不休眠", "五分钟", "十分钟", "半小时", "一小时", "两小时", "四小时"] }, - "74": { + "is-auto-strength": { "category": "base", - "name": "is-auto-strength", "title": "自动分纸强度", "desc": "扫描仪自动修正分纸力度", "type": "bool", @@ -870,9 +798,8 @@ "default": false, "size": 4 }, - "75": { + "feed-strength-value": { "category": "base", - "name": "feed-strength-value", "title": " 进纸失败率", "desc": "高于该值时扫描仪将调整分纸力度", "type": "float", @@ -883,6 +810,6 @@ "min": 0.100000, "max": 0.900000 }, - "depend_or": ["74==true"] + "depend_or": ["is-auto-strength==true"] } } \ No newline at end of file diff --git a/docs/G139-239.txt b/docs/G139-239.txt index bf50714..df5cb6a 100644 --- a/docs/G139-239.txt +++ b/docs/G139-239.txt @@ -1,9 +1,10 @@ { - "device_type": "G139-G239", - "option_count": 76, - "1": { + "global": { + "device_type": "G139-G239", + "option_count": 76 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4!=true"] + "depend_or": ["is-multiout!=true"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "8开", "A4", "A4横向", "16开", "16开横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A5横向", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A5横向", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,11 +309,10 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(通用)", "27==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "29": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -347,11 +320,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] + "depend_or": ["page==对折"] }, - "30": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -363,9 +335,8 @@ "max": 600 } }, - "31": { + "image-quality": { "category": "base", - "name": "image-quality", "title": "画质", "desc": "选择扫描仪的画质模式", "type": "string", @@ -373,28 +344,25 @@ "default": "速度优先", "size": 24, "range": ["速度优先", "画质优先"], - "depend_or": ["30>=300"] + "depend_or": ["resolution>=300"] }, - "32": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "33": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "34": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -402,9 +370,8 @@ "default": false, "size": 4 }, - "35": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -415,11 +382,10 @@ "min": 1, "max": 255 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -430,11 +396,10 @@ "min": 1, "max": 7 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "37": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -445,39 +410,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["34==false"] + "depend_and": ["is-custom-gamma==false"] }, - "38": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "39": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "27!=跳过空白页(发票纸)", "27!=跳过空白页(通用)"] + "depend_and": ["page!=对折", "!=跳过空白页(发票纸)", "!=跳过空白页(通用)"] }, - "41": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -485,9 +446,8 @@ "default": false, "size": 4 }, - "42": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -495,9 +455,8 @@ "default": true, "size": 4 }, - "43": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -505,22 +464,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["42==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "44": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["42==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "45": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -531,11 +488,10 @@ "min": 30, "max": 50 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "46": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -546,11 +502,10 @@ "min": 1, "max": 20 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "39==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "47": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -561,22 +516,20 @@ "min": 5, "max": 30 }, - "depend_or": ["42==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "39==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "48": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "42!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "39!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "49": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -584,9 +537,8 @@ "default": false, "size": 4 }, - "50": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -594,11 +546,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["49==true"] + "depend_or": ["is-anti-permeate==true"] }, - "51": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -606,9 +557,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +569,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["51==true"] + "depend_and": ["is-rid-hole-l==true"] }, - "53": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -631,9 +580,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +592,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["53==true"] + "depend_and": ["is-rid-hole-r==true"] }, - "55": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -656,9 +603,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,11 +615,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["55==true"] + "depend_and": ["is-rid-hole-t==true"] }, - "57": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -681,9 +626,8 @@ "default": false, "size": 4 }, - "58": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -694,17 +638,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["57==true"] + "depend_and": ["is-rid-hole-b==true"] }, - "59": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "60": { + "is-wait-scan": { "category": "base", - "name": "is-wait-scan", "title": "待纸扫描", "desc": "启用后,文稿放入扫描仪时将自动启动扫描", "type": "bool", @@ -712,9 +654,8 @@ "default": false, "size": 4 }, - "61": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -723,20 +664,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "62": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["61==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "63": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -745,20 +684,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "64": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折", "63!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "65": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -766,9 +703,8 @@ "default": true, "size": 4 }, - "66": { + "double-feed": { "category": "base", - "name": "double-feed", "title": "双张图片处理", "desc": "检测到双张进纸后的处理方式", "type": "string", @@ -776,11 +712,10 @@ "default": "丢弃图像并停止扫描", "size": 40, "range": ["丢弃图像并停止扫描", "上传图像并停止扫描"], - "depend_or": ["65==true"] + "depend_or": ["is-ultrosonic==true"] }, - "67": { + "is-staple": { "category": "base", - "name": "is-staple", "title": "装订检测", "desc": "检测是否出现粘连送入", "type": "bool", @@ -788,9 +723,8 @@ "default": false, "size": 4 }, - "68": { + "is-check-askew": { "category": "base", - "name": "is-check-askew", "title": "歪斜检测", "desc": "检测是否出现歪斜送入", "type": "bool", @@ -798,9 +732,8 @@ "default": true, "size": 4 }, - "69": { + "askew-range": { "category": "base", - "name": "askew-range", "title": "歪斜容忍度", "desc": "值越小,能容忍得送入文稿歪斜角度越小", "type": "int", @@ -811,11 +744,10 @@ "min": 1, "max": 5 }, - "depend_or": ["68==true"] + "depend_or": ["is-check-askew==true"] }, - "70": { + "is-check-dog-ear": { "category": "base", - "name": "is-check-dog-ear", "title": "折角检测", "desc": "检测文稿是否存在折角", "type": "bool", @@ -823,9 +755,8 @@ "default": false, "size": 4 }, - "71": { + "dog-ear-size": { "category": "base", - "name": "dog-ear-size", "title": " 折角大小", "desc": "值越小,能检测到的折角越小", "type": "int", @@ -836,11 +767,10 @@ "min": 0, "max": 100 }, - "depend_or": ["70==true"] + "depend_or": ["is-check-dog-ear==true"] }, - "72": { + "feed-strength": { "category": "base", - "name": "feed-strength", "title": "分纸强度", "desc": "设置扫描仪的分纸力度", "type": "string", @@ -849,9 +779,8 @@ "size": 16, "range": ["弱", "一般", "强"] }, - "73": { + "time-to-sleep": { "category": "base", - "name": "time-to-sleep", "title": "休眠时间", "desc": "设置扫描仪的休眠时间", "type": "string", @@ -860,9 +789,8 @@ "size": 24, "range": ["不休眠", "五分钟", "十分钟", "半小时", "一小时", "两小时", "四小时"] }, - "74": { + "is-auto-strength": { "category": "base", - "name": "is-auto-strength", "title": "自动分纸强度", "desc": "扫描仪自动修正分纸力度", "type": "bool", @@ -870,9 +798,8 @@ "default": false, "size": 4 }, - "75": { + "feed-strength-value": { "category": "base", - "name": "feed-strength-value", "title": " 进纸失败率", "desc": "高于该值时扫描仪将调整分纸力度", "type": "float", @@ -883,6 +810,6 @@ "min": 0.100000, "max": 0.900000 }, - "depend_or": ["74==true"] + "depend_or": ["is-auto-strength==true"] } } \ No newline at end of file diff --git a/docs/G300 - lsc.txt b/docs/G300 - lsc.txt index 9dc5338..3e53147 100644 --- a/docs/G300 - lsc.txt +++ b/docs/G300 - lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G300-lsc", - "option_count": 62, - "1": { + "global": { + "device_type": "G300-lsc", + "option_count": 62 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 40, "range": ["A4", "A5", "A5横向", "A6", "A6横向", "B5", "B5横向", "B6", "B6横向", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -462,9 +425,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -472,22 +434,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -498,11 +458,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -513,11 +472,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -528,22 +486,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -551,9 +507,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -561,11 +516,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -573,9 +527,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -586,11 +539,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -598,9 +550,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -611,11 +562,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -623,9 +573,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -636,11 +585,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -648,9 +596,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -661,17 +608,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -680,20 +625,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -702,20 +645,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G300.txt b/docs/G300.txt index afd285e..4de8bce 100644 --- a/docs/G300.txt +++ b/docs/G300.txt @@ -1,9 +1,10 @@ { - "device_type": "G300", - "option_count": 63, - "1": { + "global": { + "device_type": "G300", + "option_count": 63 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 40, "range": ["A4", "A5", "A5横向", "A6", "A6横向", "B5", "B5横向", "B6", "B6横向", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -462,9 +425,8 @@ "default": false, "size": 4 }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -472,9 +434,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -482,22 +443,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -508,11 +467,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -523,11 +481,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -538,22 +495,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -561,9 +516,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -571,11 +525,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -583,9 +536,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -596,11 +548,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["49==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -608,9 +559,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -621,11 +571,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -633,9 +582,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -646,11 +594,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -658,9 +605,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -671,17 +617,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -690,20 +634,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -712,20 +654,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "60!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G302 - lsc.txt b/docs/G302 - lsc.txt index 3ac03c0..694b893 100644 --- a/docs/G302 - lsc.txt +++ b/docs/G302 - lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G302-lsc", - "option_count": 63, - "1": { + "global": { + "device_type": "G302-lsc", + "option_count": 63 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 40, "range": ["A4", "A5", "A5横向", "A6", "A6横向", "B5", "B5横向", "B6", "B6横向", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -462,9 +425,8 @@ "default": false, "size": 4 }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -472,9 +434,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -482,22 +443,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -508,11 +467,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -523,11 +481,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -538,22 +495,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -561,9 +516,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -571,11 +525,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -583,9 +536,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -596,11 +548,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["49==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -608,9 +559,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -621,11 +571,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -633,9 +582,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -646,11 +594,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -658,9 +605,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -671,17 +617,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -690,20 +634,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -712,20 +654,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "60!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G302.txt b/docs/G302.txt index d5f41f7..3bc6c4e 100644 --- a/docs/G302.txt +++ b/docs/G302.txt @@ -1,9 +1,10 @@ { - "device_type": "G302", - "option_count": 63, - "1": { + "global": { + "device_type": "G302", + "option_count": 63 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 40, "range": ["A4", "A5", "A5横向", "A6", "A6横向", "B5", "B5横向", "B6", "B6横向", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(通用)", "26==跳过空白页(发票纸)"] + "depend_or": ["page==跳过空白页(通用)", "==跳过空白页(发票纸)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 24, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -392,11 +361,10 @@ "min": 1, "max": 255 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,11 +375,10 @@ "min": 1, "max": 7 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -422,39 +389,35 @@ "min": 0.010000, "max": 5.000000 }, - "depend_and": ["32==false"] + "depend_and": ["is-custom-gamma==false"] }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -462,9 +425,8 @@ "default": false, "size": 4 }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -472,9 +434,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -482,22 +443,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -508,11 +467,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -523,11 +481,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -538,22 +495,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -561,9 +516,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -571,11 +525,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -583,9 +536,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -596,11 +548,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["49==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -608,9 +559,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -621,11 +571,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -633,9 +582,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -646,11 +594,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -658,9 +605,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -671,17 +617,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -690,20 +634,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -712,20 +654,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "60!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G400 - lsc.txt b/docs/G400 - lsc.txt index be993fd..82e1916 100644 --- a/docs/G400 - lsc.txt +++ b/docs/G400 - lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G400-lsc", - "option_count": 63, - "1": { + "global": { + "device_type": "G400-lsc", + "option_count": 63 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,11 +309,10 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(发票纸)", "27==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "29": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -347,11 +320,10 @@ "default": "左右对折", "size": 200, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] + "depend_or": ["page==对折"] }, - "30": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -363,26 +335,23 @@ "max": 600 } }, - "31": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "32": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "33": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -390,9 +359,8 @@ "default": false, "size": 4 }, - "34": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -404,9 +372,8 @@ "max": 255 } }, - "35": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -418,9 +385,8 @@ "max": 7 } }, - "36": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -432,37 +398,33 @@ "max": 5.000000 } }, - "37": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "38": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -470,9 +432,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -480,22 +441,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -506,11 +465,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -521,11 +479,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -536,22 +493,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "38==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "38!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -559,9 +514,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -569,11 +523,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -581,9 +534,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -594,11 +546,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["49==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -606,9 +557,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +569,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -631,9 +580,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +592,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -656,9 +603,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,17 +615,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -688,20 +632,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -710,20 +652,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折"] + "depend_and": ["page!=单面", "!=对折"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G400.txt b/docs/G400.txt index 1ca7297..fd46f31 100644 --- a/docs/G400.txt +++ b/docs/G400.txt @@ -1,9 +1,10 @@ { - "device_type": "G400", - "option_count": 62, - "1": { + "global": { + "device_type": "G400", + "option_count": 62 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(发票纸)", "26==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "上下对折", "size": 200, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -393,9 +362,8 @@ "max": 255 } }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,9 +375,8 @@ "max": 7 } }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -421,37 +388,33 @@ "max": 5.000000 } }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -459,9 +422,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -469,22 +431,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -495,11 +455,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -510,11 +469,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -525,22 +483,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -548,9 +504,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -558,11 +513,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -570,9 +524,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -583,11 +536,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -595,9 +547,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -608,11 +559,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -620,9 +570,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -633,11 +582,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -645,9 +593,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -658,17 +605,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -677,20 +622,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -699,20 +642,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G402-lsc.txt b/docs/G402-lsc.txt index 8897369..ef3f6cb 100644 --- a/docs/G402-lsc.txt +++ b/docs/G402-lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G402-lsc", - "option_count": 63, - "1": { + "global": { + "device_type": "G402-lsc", + "option_count": 63 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,11 +309,10 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(发票纸)", "27==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "29": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -347,11 +320,10 @@ "default": "上下对折", "size": 50, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] + "depend_or": ["page==对折"] }, - "30": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -363,26 +335,23 @@ "max": 600 } }, - "31": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "32": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "33": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -390,9 +359,8 @@ "default": false, "size": 4 }, - "34": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -404,9 +372,8 @@ "max": 255 } }, - "35": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -418,9 +385,8 @@ "max": 7 } }, - "36": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -432,37 +398,33 @@ "max": 5.000000 } }, - "37": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "38": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -470,9 +432,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -480,22 +441,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -506,11 +465,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -521,11 +479,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -536,22 +493,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "38==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "38!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -559,9 +514,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -569,11 +523,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -581,9 +534,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -594,11 +546,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["49==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -606,9 +557,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +569,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["51==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -631,9 +580,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +592,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["53==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -656,9 +603,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,17 +615,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["55==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -688,20 +632,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -710,20 +652,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折"] + "depend_and": ["page!=单面", "!=对折"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G402-x86.txt b/docs/G402-x86.txt index 8a0fafd..b425fdf 100644 --- a/docs/G402-x86.txt +++ b/docs/G402-x86.txt @@ -1,9 +1,10 @@ { - "device_type": "G402-x86", - "option_count": 62, - "1": { + "global": { + "device_type": "G402-x86", + "option_count": 62 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(发票纸)", "26==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "28": { + "fold-type": { "category": "base", - "name": "fold-type", "title": "对折模式", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 200, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -393,9 +362,8 @@ "max": 255 } }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,9 +375,8 @@ "max": 7 } }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -421,37 +388,33 @@ "max": 5.000000 } }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -459,9 +422,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -469,22 +431,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -495,11 +455,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -510,11 +469,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -525,22 +483,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -548,9 +504,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -558,11 +513,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -570,9 +524,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -583,11 +536,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -595,9 +547,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -608,11 +559,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -620,9 +570,8 @@ "default": true, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -633,11 +582,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -645,9 +593,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -658,17 +605,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -677,20 +622,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -699,20 +642,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G402.txt b/docs/G402.txt index 31da1c4..b369c53 100644 --- a/docs/G402.txt +++ b/docs/G402.txt @@ -1,9 +1,10 @@ { - "device_type": "G402", - "option_count": 62, - "1": { + "global": { + "device_type": "G402", + "option_count": 62 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,11 +275,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -311,9 +287,8 @@ "size": 40, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "27": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -324,11 +299,10 @@ "min": 1, "max": 100 }, - "depend_or": ["26==跳过空白页(发票纸)", "26==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "28": { + "cfg-28": { "category": "base", - "name": "cfg-28", "title": "自动对折", "desc": "", "type": "string", @@ -336,11 +310,10 @@ "default": "左右对折", "size": 200, "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["26==对折"] + "depend_or": ["page==对折"] }, - "29": { + "resolution": { "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", @@ -352,26 +325,23 @@ "max": 600 } }, - "30": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面"] + "depend_and": ["page!=单面"] }, - "31": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "32": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -379,9 +349,8 @@ "default": false, "size": 4 }, - "33": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -393,9 +362,8 @@ "max": 255 } }, - "34": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -407,9 +375,8 @@ "max": 7 } }, - "35": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -421,37 +388,33 @@ "max": 5.000000 } }, - "36": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "37": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "38": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["26!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -459,9 +422,8 @@ "default": true, "size": 4 }, - "40": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -469,22 +431,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["39==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "41": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["39==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "42": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -495,11 +455,10 @@ "min": 30, "max": 50 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "43": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -510,11 +469,10 @@ "min": 1, "max": 20 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "37==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -525,22 +483,20 @@ "min": 5, "max": 30 }, - "depend_or": ["39==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "37==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "45": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=对折", "39!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "37!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "46": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -548,9 +504,8 @@ "default": false, "size": 4 }, - "47": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -558,11 +513,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["46==true"] + "depend_or": ["is-anti-permeate==true"] }, - "48": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -570,9 +524,8 @@ "default": false, "size": 4 }, - "49": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -583,11 +536,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["48==true"] + "depend_or": ["is-rid-hole-l==true"] }, - "50": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -595,9 +547,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -608,11 +559,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["50==true"] + "depend_or": ["is-rid-hole-r==true"] }, - "52": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -620,9 +570,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -633,11 +582,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["52==true"] + "depend_or": ["is-rid-hole-t==true"] }, - "54": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -645,9 +593,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -658,17 +605,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_or": ["54==true"] + "depend_or": ["is-rid-hole-b==true"] }, - "56": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "57": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -677,20 +622,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "58": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["57==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "59": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -699,20 +642,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "60": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["26!=单面", "26!=对折", "59!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "61": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G439-lsc.txt b/docs/G439-lsc.txt index 47b5f7c..8043de7 100644 --- a/docs/G439-lsc.txt +++ b/docs/G439-lsc.txt @@ -1,9 +1,10 @@ { - "device_type": "G439-lsc", - "option_count": 63, - "1": { + "global": { + "device_type": "G439-lsc", + "option_count": 62 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,54 +309,35 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(发票纸)", "27==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "29": { + "resolution": { "category": "base", - "name": "fold-type", - "title": "对折模式", - "desc": "", - "type": "string", - "cur": "左右对折", - "default": "左右对折", - "size": 200, - "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] - }, - "30": { - "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", "cur": 200, "default": 200, "size": 4, - "range": { - "min": 1, - "max": 600 - } + "range": [100, 150, 200, 300, 600] }, - "31": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "32": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "33": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -390,9 +345,8 @@ "default": false, "size": 4 }, - "34": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -404,9 +358,8 @@ "max": 255 } }, - "35": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -418,9 +371,8 @@ "max": 7 } }, - "36": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -432,37 +384,33 @@ "max": 5.000000 } }, - "37": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "38": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -470,9 +418,8 @@ "default": true, "size": 4 }, - "41": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -480,22 +427,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["40==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "42": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["40==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "43": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -506,11 +451,10 @@ "min": 30, "max": 50 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "44": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -521,11 +465,10 @@ "min": 1, "max": 20 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -536,22 +479,20 @@ "min": 5, "max": 30 }, - "depend_or": ["40==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "38==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "46": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "40!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "38!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "47": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -559,9 +500,8 @@ "default": false, "size": 4 }, - "48": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -569,11 +509,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["47==true"] + "depend_or": ["is-anti-permeate==true"] }, - "49": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -581,9 +520,8 @@ "default": false, "size": 4 }, - "50": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -594,11 +532,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["49==true"] + "depend_and": ["is-rid-hole-l==true"] }, - "51": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -606,9 +543,8 @@ "default": false, "size": 4 }, - "52": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -619,11 +555,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["51==true"] + "depend_and": ["is-rid-hole-r==true"] }, - "53": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -631,9 +566,8 @@ "default": false, "size": 4 }, - "54": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -644,11 +578,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["53==true"] + "depend_and": ["is-rid-hole-t==true"] }, - "55": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -656,9 +589,8 @@ "default": false, "size": 4 }, - "56": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -669,17 +601,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["55==true"] + "depend_and": ["is-rid-hole-b==true"] }, - "57": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "58": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -688,20 +618,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "59": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["58==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "60": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -710,20 +638,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°"] }, - "61": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折", "60!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "62": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", diff --git a/docs/G439.txt b/docs/G439.txt index 9c23707..89783ea 100644 --- a/docs/G439.txt +++ b/docs/G439.txt @@ -1,9 +1,10 @@ { - "device_type": "G439", - "option_count": 65, - "1": { + "global": { + "device_type": "G439", + "option_count": 64 + }, + "restore": { "category": "base", - "name": "restore", "title": "恢复默认设置", "desc": "恢复默认设置", "type": "button", @@ -11,9 +12,8 @@ "default": "button", "size": 0 }, - "2": { + "help": { "category": "advanced", - "name": "help", "title": "帮助", "desc": "显示软件帮助文档", "type": "button", @@ -21,15 +21,13 @@ "default": "true", "size": 4 }, - "3": { + "grp-1": { "category": "base", - "name": "grp-1", "title": "基本设置", "type": "group" }, - "4": { + "is-multiout": { "category": "base", - "name": "is-multiout", "title": "多流输出", "desc": "同时输出多种颜色模式的图像", "type": "bool", @@ -37,9 +35,8 @@ "default": false, "size": 4 }, - "5": { + "multiout-type": { "category": "base", - "name": "multiout-type", "title": "多流输出类型", "desc": "选择多流输出的类型", "type": "string", @@ -47,11 +44,10 @@ "default": "彩色+灰度+黑白", "size": 32, "range": ["彩色+灰度+黑白", "彩色+灰度", "彩色+黑白", "灰度+黑白"], - "depend_or": ["4==true"] + "depend_or": ["is-multiout==true"] }, - "6": { + "mode": { "category": "base", - "name": "mode", "title": "颜色模式", "desc": "选择色彩模式", "type": "string", @@ -59,11 +55,10 @@ "default": "24位彩色", "size": 32, "range": ["24位彩色", "256级灰度", "黑白", "颜色自动识别"], - "depend_or": ["4==false"] + "depend_or": ["is-multiout==false"] }, - "7": { + "binary-threshold": { "category": "base", - "name": "binary-threshold", "title": "黑白图像阈值", "desc": "高于该阈值为1(白),低于该阈值为0(黑)", "type": "int", @@ -74,22 +69,20 @@ "min": 0, "max": 255 }, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "8": { + "reverse-bw": { "category": "base", - "name": "reverse-bw", "title": "黑白图像反色输出", "desc": "输出的黑白图像以“1”代表黑色,“0”代表白色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["4==true", "6==黑白"] + "depend_or": ["is-multiout==true", "mode==黑白"] }, - "9": { + "filter": { "category": "base", - "name": "filter", "title": "灰度或黑白图像 - 除色与增强", "desc": "消除或增强指定色彩", "type": "string", @@ -97,44 +90,40 @@ "default": "不除色", "size": 24, "range": ["不除色", "除红色", "除绿色", "除蓝色", "红色增强", "绿色增强", "蓝色增强"], - "depend_and": ["4!=true", "6!=24位彩色", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=24位彩色", "!=颜色自动识别"] }, - "10": { + "is-rid-multiout-red": { "category": "base", - "name": "is-rid-multiout-red", "title": "24位彩色图像 - 多流输出除红", "desc": "同时输出彩色图像和灰度除红图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "11": { + "is-rid-answer-sheet-red": { "category": "base", - "name": "is-rid-answer-sheet-red", "title": "24位彩色图像 - 答题卡除红", "desc": "输出除红彩色图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "12": { + "is-erase-bkg": { "category": "base", - "name": "is-erase-bkg", "title": "背景移除", "desc": "移除文稿背景底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=256级灰度", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=256级灰度", "!=黑白", "!=颜色自动识别"] }, - "13": { + "bkg-color-range": { "category": "base", - "name": "bkg-color-range", "title": " 背景色彩浮动范围", "desc": "与背景底色偏差在该值范围内的颜色,都将被移除", "type": "int", @@ -145,11 +134,10 @@ "min": 1, "max": 128 }, - "depend_or": ["12==true"] + "depend_or": ["is-erase-bkg==true"] }, - "14": { + "sharpen": { "category": "base", - "name": "sharpen", "title": "锐化与模糊", "desc": "选择锐化效果或模糊效果", "type": "string", @@ -157,55 +145,50 @@ "default": "无", "size": 24, "range": ["无", "锐化", "进一步锐化", "模糊", "进一步模糊"], - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "15": { + "is-rid-morr": { "category": "base", - "name": "is-rid-morr", "title": "去除摩尔纹", "desc": "去除图像中的摩尔纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "16": { + "is-rid-grid": { "category": "base", - "name": "is-rid-grid", "title": "除网纹", "desc": "去除图像中的网纹", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["4!=true", "6!=黑白", "6!=颜色自动识别"] + "depend_and": ["is-multiout!=true", "mode!=黑白", "!=颜色自动识别"] }, - "17": { + "is-err-extension": { "category": "base", - "name": "is-err-extension", "title": "错误扩散", "desc": "以点阵形式构建图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "18": { + "is-noise-optimize": { "category": "base", - "name": "is-noise-optimize", "title": "黑白图像噪点优化", "desc": "去除图像中的孤立黑点", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["6==黑白"] + "depend_or": ["mode==黑白"] }, - "19": { + "noise-size": { "category": "base", - "name": "noise-size", "title": " 噪点优化尺寸", "desc": "设置需要去除的黑色孤立点的连通个数", "type": "int", @@ -216,11 +199,10 @@ "min": 10, "max": 50 }, - "depend_or": ["18==true"] + "depend_or": ["is-noise-optimize==true"] }, - "20": { + "paper": { "category": "base", - "name": "paper", "title": "纸张尺寸", "desc": "设置出图大小", "type": "string", @@ -229,20 +211,18 @@ "size": 48, "range": ["A3", "A4", "A4横向", "A5", "A5横向", "A6", "A6横向", "B4", "B5", "B5横向", "B6", "B6横向", "Letter", "Letter横向", "Double Letter", "LEGAL", "匹配原始尺寸", "最大扫描尺寸自动裁切", "最大扫描尺寸", "三联试卷"] }, - "21": { + "is-custom-area": { "category": "base", - "name": "is-custom-area", "title": "自定义扫描区域", "desc": "自定义扫描区域", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["20!=匹配原始尺寸", "20!=三联试卷", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切"] + "depend_and": ["paper!=匹配原始尺寸", "!=三联试卷", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切"] }, - "22": { + "tl-x": { "category": "base", - "name": "tl-x", "title": "扫描区域左侧(mm)", "desc": "自定义扫描区域左上角x坐标", "type": "float", @@ -253,11 +233,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "23": { + "br-x": { "category": "base", - "name": "br-x", "title": "扫描区域右侧(mm)", "desc": "自定义扫描区域右下角x坐标", "type": "float", @@ -268,11 +247,10 @@ "min": 0.000000, "max": 210.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "24": { + "tl-y": { "category": "base", - "name": "tl-y", "title": "扫描区域上侧(mm)", "desc": "自定义扫描区域左上角y坐标", "type": "float", @@ -283,11 +261,10 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "25": { + "br-y": { "category": "base", - "name": "br-y", "title": "扫描区域下侧(mm)", "desc": "自定义扫描区域右下角y坐标", "type": "float", @@ -298,22 +275,20 @@ "min": 0.000000, "max": 297.000000 }, - "depend_and": ["21==true"] + "depend_and": ["is-custom-area==true"] }, - "26": { + "is-size-check": { "category": "base", - "name": "is-size-check", "title": "尺寸检测", "desc": "检测纸张实际尺寸与设置是否匹配", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["20==A3", "20==A4", "20==A4横向", "20==A5", "20==A6", "20==A6横向", "20==B4", "20==B5", "20==B5横向", "20==B6", "20==B6横向", "20==Double Letter", "20==LEGAL", "20==Letter", "20==Letter横向"] + "depend_or": ["paper==A3", "==A4", "==A4横向", "==A5", "==A6", "==A6横向", "==B4", "==B5", "==B5横向", "==B6", "==B6横向", "==Double Letter", "==LEGAL", "==Letter", "==Letter横向"] }, - "27": { + "page": { "category": "base", - "name": "page", "title": "扫描页面", "desc": "设置页面扫描方式", "type": "string", @@ -322,9 +297,8 @@ "size": 50, "range": ["单面", "双面", "跳过空白页(通用)", "跳过空白页(发票纸)", "对折"] }, - "28": { + "blank-sensitivity": { "category": "base", - "name": "blank-sensitivity", "title": " 跳过空白页灵敏度", "desc": "数值越大,则越容易跳过", "type": "int", @@ -335,54 +309,35 @@ "min": 1, "max": 100 }, - "depend_or": ["27==跳过空白页(发票纸)", "27==跳过空白页(通用)"] + "depend_or": ["page==跳过空白页(发票纸)", "==跳过空白页(通用)"] }, - "29": { + "resolution": { "category": "base", - "name": "fold-type", - "title": "对折模式", - "desc": "", - "type": "string", - "cur": "左右对折", - "default": "左右对折", - "size": 200, - "range": ["左右对折", "上下对折", "自动对折"], - "depend_or": ["27==对折"] - }, - "30": { - "category": "base", - "name": "resolution", "title": "分辨率", "desc": "设置扫描图像的分辨率", "type": "int", "cur": 200, "default": 200, "size": 4, - "range": { - "min": 1, - "max": 600 - } + "range": [100, 150, 200, 300] }, - "31": { + "is-exchange": { "category": "base", - "name": "is-exchange", "title": "交换正反面", "desc": "交换每张文稿的正反面出图顺序", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面"] + "depend_and": ["page!=单面"] }, - "32": { + "grp-2": { "category": "base", - "name": "grp-2", "title": "亮度", "type": "group" }, - "33": { + "is-custom-gamma": { "category": "base", - "name": "is-custom-gamma", "title": "启用色调曲线", "desc": "自定义图像色调效果", "type": "bool", @@ -390,9 +345,8 @@ "default": false, "size": 4 }, - "34": { + "brightness": { "category": "base", - "name": "brightness", "title": "亮度值", "desc": "调整图像亮度", "type": "int", @@ -404,9 +358,8 @@ "max": 255 } }, - "35": { + "contrast": { "category": "base", - "name": "contrast", "title": "对比度", "desc": "调整图像对比度", "type": "int", @@ -418,9 +371,8 @@ "max": 7 } }, - "36": { + "gamma": { "category": "base", - "name": "gamma", "title": "伽马值", "desc": "调整图像伽玛值", "type": "float", @@ -432,37 +384,33 @@ "max": 5.000000 } }, - "37": { + "grp-3": { "category": "base", - "name": "grp-3", "title": "图像处理", "type": "group" }, - "38": { + "is-anti-skew": { "category": "base", - "name": "is-anti-skew", "title": "自动纠偏", "desc": "自动纠正歪斜送入的文稿图像", "type": "bool", "cur": true, "default": true, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "39": { + "is-split": { "category": "base", - "name": "is-split", "title": "图像拆分", "desc": "自动拆分图像", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_or": ["27!=对折"] + "depend_or": ["page!=对折"] }, - "40": { + "is-photo-mode": { "category": "base", - "name": "is-photo-mode", "title": "照片模式", "desc": "启用该模式可保留图像原始细节", "type": "bool", @@ -470,9 +418,8 @@ "default": false, "size": 4 }, - "41": { + "is-erase-black-frame": { "category": "base", - "name": "is-erase-black-frame", "title": "消除黑框", "desc": "消除文稿范围外的黑色背景", "type": "bool", @@ -480,9 +427,8 @@ "default": true, "size": 4 }, - "42": { + "bkg-fill-mode": { "category": "advanced", - "name": "bkg-fill-mode", "title": "背景填充方式", "desc": "选择背景填充方式", "type": "string", @@ -490,22 +436,20 @@ "default": "凸多边形", "size": 40, "range": ["凸多边形", "凹多边形"], - "depend_or": ["41==true"] + "depend_or": ["is-erase-black-frame==true"] }, - "43": { + "is-fill-color": { "category": "base", - "name": "is-fill-color", "title": "色彩填充", "desc": "启用后黑框部分将填充为文稿底色", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["41==true"] + "depend_and": ["is-erase-black-frame==true"] }, - "44": { + "threshold": { "category": "advanced", - "name": "threshold", "title": "阈值", "desc": "文稿底色与黑色背景灰度值的差值大于该值,才会被识别为文稿", "type": "int", @@ -516,11 +460,10 @@ "min": 30, "max": 50 }, - "depend_or": ["41==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "45": { + "anti-noise-level": { "category": "advanced", - "name": "anti-noise-level", "title": "背景抗噪等级", "desc": "能够容忍的背景杂色条纹的宽度", "type": "int", @@ -531,11 +474,10 @@ "min": 1, "max": 20 }, - "depend_or": ["41==true", "20==匹配原始尺寸", "20==最大扫描尺寸", "20==最大扫描尺寸自动裁切", "38==true"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸", "==最大扫描尺寸自动裁切", "is-anti-skew==true"] }, - "46": { + "margin": { "category": "advanced", - "name": "margin", "title": "边缘缩进", "desc": "寻找文稿边缘时对边缘的侵入程度", "type": "int", @@ -546,22 +488,20 @@ "min": 5, "max": 30 }, - "depend_or": ["41==true", "20==匹配原始尺寸", "20==最大扫描尺寸自动裁切", "38==true", "20==最大扫描尺寸"] + "depend_or": ["is-erase-black-frame==true", "paper==匹配原始尺寸", "==最大扫描尺寸自动裁切", "==最大扫描尺寸", "is-anti-skew==true"] }, - "47": { + "is-dark-sample": { "category": "base", - "name": "is-dark-sample", "title": "深色样张", "desc": "启用该模式防止深色底色的文稿图像被误处理", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=对折", "41!=true", "20!=匹配原始尺寸", "20!=最大扫描尺寸", "20!=最大扫描尺寸自动裁切", "38!=true"] + "depend_and": ["page!=对折", "is-erase-black-frame!=true", "paper!=匹配原始尺寸", "!=最大扫描尺寸", "!=最大扫描尺寸自动裁切", "is-anti-skew!=true"] }, - "48": { + "is-anti-permeate": { "category": "base", - "name": "is-anti-permeate", "title": "防止渗透", "desc": "防止背面图案渗透", "type": "bool", @@ -569,9 +509,8 @@ "default": false, "size": 4 }, - "49": { + "permeate-level": { "category": "base", - "name": "permeate-level", "title": " 防止渗透等级", "desc": "选择防止渗透的等级", "type": "string", @@ -579,11 +518,10 @@ "default": "较弱", "size": 16, "range": ["弱", "较弱", "一般", "较强", "强"], - "depend_or": ["48==true"] + "depend_or": ["is-anti-permeate==true"] }, - "50": { + "is-rid-hole-l": { "category": "base", - "name": "is-rid-hole-l", "title": "穿孔移除—左侧", "desc": "穿孔在纸张上的左侧", "type": "bool", @@ -591,9 +529,8 @@ "default": false, "size": 4 }, - "51": { + "search-hole-range-l": { "category": "base", - "name": "search-hole-range-l", "title": " 左侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -604,11 +541,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["50==true"] + "depend_and": ["is-rid-hole-l==true"] }, - "52": { + "is-rid-hole-r": { "category": "base", - "name": "is-rid-hole-r", "title": "穿孔移除—右侧", "desc": "穿孔在纸张上的右侧", "type": "bool", @@ -616,9 +552,8 @@ "default": false, "size": 4 }, - "53": { + "search-hole-range-r": { "category": "base", - "name": "search-hole-range-r", "title": " 右侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -629,11 +564,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["52==true"] + "depend_and": ["is-rid-hole-r==true"] }, - "54": { + "is-rid-hole-t": { "category": "base", - "name": "is-rid-hole-t", "title": "穿孔移除—上侧", "desc": "穿孔在纸张的上部", "type": "bool", @@ -641,9 +575,8 @@ "default": false, "size": 4 }, - "55": { + "search-hole-range-t": { "category": "base", - "name": "search-hole-range-t", "title": " 上侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -654,11 +587,10 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["54==true"] + "depend_and": ["is-rid-hole-t==true"] }, - "56": { + "is-rid-hole-b": { "category": "base", - "name": "is-rid-hole-b", "title": "穿孔移除—下侧", "desc": "穿孔在纸张的下部", "type": "bool", @@ -666,9 +598,8 @@ "default": false, "size": 4 }, - "57": { + "search-hole-range-b": { "category": "base", - "name": "search-hole-range-b", "title": " 下侧穿孔搜索范围占幅面比例", "desc": "穿孔搜索范围占幅面比例", "type": "float", @@ -679,17 +610,15 @@ "min": 0.000000, "max": 0.500000 }, - "depend_and": ["56==true"] + "depend_and": ["is-rid-hole-b==true"] }, - "58": { + "grp-4": { "category": "base", - "name": "grp-4", "title": "送纸方式设置", "type": "group" }, - "59": { + "scan-mode": { "category": "base", - "name": "scan-mode", "title": "扫描张数", "desc": "选择指定数量扫描或连续扫描", "type": "string", @@ -698,20 +627,18 @@ "size": 32, "range": ["连续扫描", "扫描指定张数"] }, - "60": { + "scan-count": { "category": "base", - "name": "scan-count", "title": " 扫描数量", "desc": "扫描指定数量", "type": "int", "cur": 1, "default": 1, "size": 4, - "depend_or": ["59==扫描指定张数"] + "depend_or": ["scan-mode==扫描指定张数"] }, - "61": { + "direction": { "category": "base", - "name": "direction", "title": "文稿方向", "desc": "设置图像的方向", "type": "string", @@ -720,20 +647,18 @@ "size": 40, "range": ["0°", "90°", "180°", "-90°", "自动文本方向识别°"] }, - "62": { + "is-rotate-bkg-180": { "category": "base", - "name": "is-rotate-bkg-180", "title": "背面旋转180°", "desc": "背面扫描的图像旋转180°", "type": "bool", "cur": false, "default": false, "size": 4, - "depend_and": ["27!=单面", "27!=对折", "61!=自动文本方向识别°"] + "depend_and": ["page!=单面", "!=对折", "direction!=自动文本方向识别°"] }, - "63": { + "is-ultrosonic": { "category": "base", - "name": "is-ultrosonic", "title": "超声波检测", "desc": "检测是否出现双张送入", "type": "bool", @@ -741,9 +666,8 @@ "default": true, "size": 4 }, - "64": { + "double-feed": { "category": "base", - "name": "double-feed", "title": "双张图片处理", "desc": "检测到双张进纸后的处理方式", "type": "string", @@ -751,6 +675,6 @@ "default": "丢弃图像并停止扫描", "size": 40, "range": ["丢弃图像并停止扫描", "上传图像并停止扫描"], - "depend_or": ["63==true"] + "depend_or": ["is-ultrosonic==true"] } } \ No newline at end of file diff --git a/tools/apps/hgjson/hgjsonDlg.cpp b/tools/apps/hgjson/hgjsonDlg.cpp index b53ffac..986bb2a 100644 --- a/tools/apps/hgjson/hgjsonDlg.cpp +++ b/tools/apps/hgjson/hgjsonDlg.cpp @@ -5852,7 +5852,7 @@ struct }, g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // ڰͼɫɫΪ0-ɫ1-ɫ , {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // ҶȻڰͼ - ɫ - , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // Զֽǿ + , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // Զֽǿ , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " ֵֽ" }; @@ -6392,7 +6392,7 @@ void ChgjsonDlg::set_control_status(const HGITEM& item) } } -void* ChgjsonDlg::create_json(int item, std::vector* def_h) +void* ChgjsonDlg::create_json(int item, std::vector* def_h, std::wstring* name) { known_file_util::IJsonW* jsn = known_file_util::create_jsonW(); wchar_t buf[128] = { 0 }; @@ -6400,12 +6400,19 @@ void* ChgjsonDlg::create_json(int item, std::vector* def_h) const char* opt_name = title_to_name(hg_items_[item].title); jsn->set_value(L"category", hg_items_[item].advanced ? L"advanced" : L"base"); - if (opt_name) - jsn->set_value(L"name", coding::utf82u(opt_name).c_str()); - else + if (name) { - swprintf_s(buf, _countof(buf) - 1, L"cfg-%d", hg_items_[item].index); - jsn->set_value(L"name", buf); + if (opt_name) + { + // jsn->set_value(L"name", coding::utf82u(opt_name).c_str()); + *name = coding::utf82u(opt_name); + } + else + { + swprintf_s(buf, _countof(buf) - 1, L"cfg-%d", hg_items_[item].index); + // jsn->set_value(L"name", buf); + *name = buf; + } } jsn->set_value(L"title", hg_items_[item].title.c_str()); @@ -6489,6 +6496,9 @@ void* ChgjsonDlg::create_json(int item, std::vector* def_h) if (hg_items_[item].depend.size()) { + std::wstring prev(L""); + + std::sort(hg_items_[item].depend.begin(), hg_items_[item].depend.end()); known_file_util::IJsonW* d = known_file_util::create_jsonW(); d->set_as_array(true); for (int i = 0; i < hg_items_[item].depend.size(); ++i) @@ -6496,9 +6506,14 @@ void* ChgjsonDlg::create_json(int item, std::vector* def_h) int ind = find_config_item(hg_items_[item].depend[i].parent.c_str()); if (ind != -1) { - swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); - // d->set_value(i, (buf + hg_items_[item].depend[i].logic_values).c_str(), true); - *d += (buf + hg_items_[item].depend[i].logic_values).c_str(); + std::wstring n(coding::utf82u(title_to_name(hg_items_[ind].title))); + if (prev != n) + { + *d += (n + hg_items_[item].depend[i].logic_values).c_str(); + prev = n; + } + else + *d += hg_items_[item].depend[i].logic_values.c_str(); } } @@ -6515,7 +6530,7 @@ void* ChgjsonDlg::create_json(int item, std::vector* def_h) } std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) { - known_file_util::IJsonW* jsn = known_file_util::create_jsonW(), * item = NULL; + known_file_util::IJsonW* jsn = known_file_util::create_jsonW(), * item = NULL, *glb = known_file_util::create_jsonW(); HTREEITEM root = tree_.GetRootItem(), child = NULL; std::wstring val(get_tree_item_text(&tree_, root)); int count = 1, group = 1, ind = 0; @@ -6535,8 +6550,8 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) if (dev) *dev = val; - jsn->set_value(L"device_type", val.c_str()); - jsn->set_value(L"option_count", (int)hg_items_.size()); // occupy position + glb->set_value(L"device_type", val.c_str()); + jsn->set_value(L"global", glb); root = tree_.GetChildItem(root); while (root) { @@ -6546,10 +6561,11 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) ind = find_config_item(val.c_str()); if (ind != -1) { + std::wstring key(L""); hg_items_[ind].index = count++; - item = (known_file_util::IJsonW*)create_json(ind, &header); - swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); - jsn->set_value(buf, item); + item = (known_file_util::IJsonW*)create_json(ind, &header, &key); + // swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); + jsn->set_value(key.c_str(), item); item->release(); item = NULL; } @@ -6560,10 +6576,11 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) item = known_file_util::create_jsonW(); item->set_value(L"category", L"base"); swprintf_s(buf, _countof(buf) - 1, L"grp-%d", group++); - item->set_value(L"name", buf); + // item->set_value(L"name", buf); item->set_value(L"title", val.c_str()); item->set_value(L"type", L"group"); - swprintf_s(buf, _countof(buf) - 1, L"%d", count++); + // swprintf_s(buf, _countof(buf) - 1, L"%d", count++); + count++; jsn->set_value(buf, item); child = tree_.GetChildItem(root); @@ -6579,10 +6596,11 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) item->set_value(L"category", hg_items_[ind].advanced ? L"advanced" : L"base"); item->release(); } - item = (known_file_util::IJsonW*)create_json(ind, &header); + std::wstring key(L""); + item = (known_file_util::IJsonW*)create_json(ind, &header, &key); - swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); - jsn->set_value(buf, item); + // swprintf_s(buf, _countof(buf) - 1, L"%d", hg_items_[ind].index); + jsn->set_value(key.c_str(), item); item->release(); item = NULL; } @@ -6596,7 +6614,8 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) } val = L""; - jsn->set_value(L"option_count", count); + glb->set_value(L"option_count", count); + glb->release(); jsn->to_string(coding::get_wstring, &val); jsn->release(); @@ -6617,7 +6636,7 @@ std::string ChgjsonDlg::to_json_text(bool for_const, std::wstring* dev) return utf8; } -void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent) +void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool old_ver) { known_file_util::IJsonW* jsn = (known_file_util::IJsonW*)jsn_obj, * child = NULL, * root = (known_file_util::IJsonW*)jsn_root; @@ -6691,28 +6710,18 @@ void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent) { known_file_util::JSONMEMW m = child->first_member(known_file_util::JV_STRING); DEPENDITEM di; + std::wstring parent_item(L""); + int num = 1; - if (split(m.str_val, &di)) + do { - known_file_util::IJsonW* d = NULL; - root->get_value(di.parent.c_str(), &d); - if (d) - { - d->get_value(L"title", &val); - if (val) - { - di.parent = val; - item.depend.push_back(di); - } - d->release(); - } - } - for (int i = 1; i < child->members(); ++i) - { - m = child->next_member(); if (split(m.str_val, &di)) { known_file_util::IJsonW* d = NULL; + if (di.parent.empty()) + di.parent = parent_item; + else + parent_item = di.parent; root->get_value(di.parent.c_str(), &d); if (d) { @@ -6725,7 +6734,8 @@ void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent) d->release(); } } - } + m = child->next_member(); + } while (num++ < child->members()); } child->release(); } @@ -6842,24 +6852,75 @@ bool ChgjsonDlg::load_from_json_text(const wchar_t* txt, std::wstring* err_msg) const wchar_t* val = NULL; HTREEITEM root = NULL, son = NULL; int count = 0; + bool old_ver = false; jsn->get_value(L"device_type", &val); if (val) + { root = add_tree_item(val, TREE_ITEM_PRODUCT); + jsn->get_value(L"option_count", count); + old_ver = true; + } else - root = add_tree_item(L"Unkonwn Product", TREE_ITEM_PRODUCT); + { + known_file_util::IJsonW* all = nullptr; + jsn->get_value(L"global", &all); + if (all) + { + all->get_value(L"device_type", &val); + if(val) + root = add_tree_item(val, TREE_ITEM_PRODUCT); + all->release(); + } + if (!root) + { + jsn->release(); + return false; + } + } son = root; - jsn->get_value(L"option_count", count); GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE); - for (int i = 1; i < count; ++i) + if (old_ver) { - wchar_t key[20] = { 0 }; + for (int i = 1; i < count; ++i) + { + wchar_t key[20] = { 0 }; - swprintf_s(key, _countof(key) - 1, L"%d", i); - jsn->get_value(key, &child); - if (child) + swprintf_s(key, _countof(key) - 1, L"%d", i); + jsn->get_value(key, &child); + if (child) + { + child->get_value(L"type", &val); + if (val) + { + if (wcscmp(val, L"group") == 0) + { + child->get_value(L"title", &val); + if (!val) + { + swprintf_s(key, _countof(key) - 1, L"group-%d", i); + val = key; + } + son = add_tree_item(val, TREE_ITEM_GROUP, root); + } + else + { + add_item(jsn, child, son, old_ver); + } + } + child->release(); + } + } + } + else if (child = jsn->first_child()) + { + int sn = 0; + wchar_t key[20] = { 0 }; + + child->release(); + while ((child = jsn->next_child())) { child->get_value(L"type", &val); if (val) @@ -6869,14 +6930,14 @@ bool ChgjsonDlg::load_from_json_text(const wchar_t* txt, std::wstring* err_msg) child->get_value(L"title", &val); if (!val) { - swprintf_s(key, _countof(key) - 1, L"group-%d", i); + swprintf_s(key, _countof(key) - 1, L"group-%d", ++sn); val = key; } son = add_tree_item(val, TREE_ITEM_GROUP, root); } else { - add_item(jsn, child, son); + add_item(jsn, child, son, old_ver); } } child->release(); diff --git a/tools/apps/hgjson/hgjsonDlg.h b/tools/apps/hgjson/hgjsonDlg.h index 870b5cc..603d9cc 100644 --- a/tools/apps/hgjson/hgjsonDlg.h +++ b/tools/apps/hgjson/hgjsonDlg.h @@ -34,6 +34,10 @@ public: { return wcscmp(name, parent.c_str()) == 0; } + bool operator<(const struct _depend_item& r) + { + return parent < r.parent; + } }DEPENDITEM; enum range_type { @@ -114,9 +118,9 @@ protected: int check_depend(const wchar_t* l, const wchar_t* r); // -1: l depends on r; 0: no depend; 1: r depends on l void set_control_status(const HGITEM& item); - void* create_json(int item, std::vector *def_h = NULL); + void* create_json(int item, std::vector *def_h = NULL, std::wstring* name = NULL); std::string to_json_text(bool for_const = false, std::wstring *dev = NULL); - void add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent); + void add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool old_ver); bool load_from_json_text(const wchar_t* txt, std::wstring* err_msg = NULL); bool load_from_file(const wchar_t* path_file); void get_all_names(HTREEITEM root, std::vector& names, DWORD mask = 0); diff --git a/tools/solution/Release/hgjson.exe b/tools/solution/Release/hgjson.exe index d4b99e0dd648f2082bb59b17841ae2c8340d6b6d..a4a32497d29c89c40e6796c97f22766f1397a37f 100644 GIT binary patch delta 76375 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 bLDTs#j54|h^=U(Of+$QT%O7|(=i>hW$K3lP delta 72508 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 P0JaPRjHU-3WBLaGeR|Gj