图色类
截图
keepScreen 保持屏幕数据,优化速度
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
keepScreen()
返回值 | 类型 | 说明 |
---|---|---|
true/false | boolean | 是否截图成功 |
比色
cmpColor 多点比色封装,需要手动截图和释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
threshold | 否 | float | 相似度,默认0.9 |
if (keepScreen()) {
//默认不填相似度
if (cmpColor("291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010")) {
logd("首页")
clickPoint(111, 222)
sleep(500)
}
//修改相似度0.8
if (cmpColor("291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010", 0.8)) {
logd("首页")
clickPoint(111, 222)
sleep(500)
}
}
返回值 | 类型 | 说明 |
---|---|---|
true/false | boolean | 是否找到 |
cmpColorEx 多点比色Ex封装,不需要手动截图和释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
threshold | 否 | float | 相似度,默认0.9 |
//默认不填相似度
if (cmpColorEx("291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010")) {
logd("首页")
clickPoint(111, 222)
sleep(500)
}
//修改相似度0.8
if (cmpColorEx("291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010", 0.8)) {
logd("首页")
clickPoint(111, 222)
sleep(500)
}
返回值 | 类型 | 说明 |
---|---|---|
true/false | boolean | 是否找到 |
cmpMultiColor 多组比色封装,需要手动截图和释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
threshold | 否 | float | 相似度,默认0.9 |
let 流程_进入微信注册 = {
"桌面": "611|508|#07C762-#101010,609|472|#FFFFFF-#101010,654|325|#FFC600-#101010,636|303|#FEC106-#101010,503|501|#20091B-#101010",
"选择注册": "172|1246|#0E9956-#101010,157|1246|#F2F2F2-#101010,540|1247|#FFFCFA-#101010,498|1249|#07C160-#101010,491|1148|#030F1B-#101010",
"选择注册方式": "208|865|#07C160-#101010,270|875|#FFFDFF-#101010,187|1064|#2C2C2C-#101010,214|1062|#2C2C2C-#101010,434|1063|#DBDBDB-#101010",
"注册页": "291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010",
}
let 临时色对象 = cmpPreParse(流程_进入微信注册)
tag_进入注册页: while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
//默认相似度0.9
if (cmpMultiColor(临时色对象)) {
//指定相似度
//if (cmpMultiColor(临时色对象, 0.8)) {
logd("当前页面是:" + gCmpKey)
switch (gCmpKey) {
case "桌面":
clickPoint(633, 474)
sleep(500)
break
case "选择注册":
clickPoint(553, 1248)
sleep(500)
break
case "选择注册方式":
clickPoint(381, 872)
sleep(500)
break
case "注册页":
break tag_进入注册页
}
}
}
logd("脚本结束")
返回值 | 类型 | 说明 |
---|---|---|
桌面 | String | 颜色对象的key值 |
cmpMultiColorEx 多组比色Ex封装,不需要手动截图和释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
threshold | 否 | float | 相似度,默认0.9 |
let 流程_进入微信注册 = {
"桌面": "611|508|#07C762-#101010,609|472|#FFFFFF-#101010,654|325|#FFC600-#101010,636|303|#FEC106-#101010,503|501|#20091B-#101010",
"选择注册": "172|1246|#0E9956-#101010,157|1246|#F2F2F2-#101010,540|1247|#FFFCFA-#101010,498|1249|#07C160-#101010,491|1148|#030F1B-#101010",
"选择注册方式": "208|865|#07C160-#101010,270|875|#FFFDFF-#101010,187|1064|#2C2C2C-#101010,214|1062|#2C2C2C-#101010,434|1063|#DBDBDB-#101010",
"注册页": "291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010",
}
let 临时色对象 = cmpPreParse(流程_进入微信注册)
tag_进入注册页: while (true) {
//默认相似度0.9
if (cmpMultiColorEx(临时色对象)) {
//指定相似度
//if (cmpMultiColorEx(临时色对象, 0.8)) {
logd("当前页面是:" + gCmpKey)
switch (gCmpKey) {
case "桌面":
clickPoint(633, 474)
sleep(500)
break
case "选择注册":
clickPoint(553, 1248)
sleep(500)
break
case "选择注册方式":
clickPoint(381, 872)
sleep(500)
break
case "注册页":
break tag_进入注册页
}
}
sleep(10)
}
logd("脚本结束")
返回值 | 类型 | 说明 |
---|---|---|
桌面 | String | 颜色对象的key值 |
cmpPreParse 多点比色预处理
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
colors | 是 | Object | 未处理的颜色对象 |
let 流程_进入微信注册 = {
"桌面": "611|508|#07C762-#101010,609|472|#FFFFFF-#101010,654|325|#FFC600-#101010,636|303|#FEC106-#101010,503|501|#20091B-#101010",
"选择注册": "172|1246|#0E9956-#101010,157|1246|#F2F2F2-#101010,540|1247|#FFFCFA-#101010,498|1249|#07C160-#101010,491|1148|#030F1B-#101010",
"选择注册方式": "208|865|#07C160-#101010,270|875|#FFFDFF-#101010,187|1064|#2C2C2C-#101010,214|1062|#2C2C2C-#101010,434|1063|#DBDBDB-#101010",
"注册页": "291|1252|#515151-#101010,246|1241|#2B2B2B-#101010,105|617|#DFDFDF-#101010,305|260|#D5D5D5-#101010,499|265|#CECECE-#101010",
}
let 临时色对象 = cmpPreParse(流程_进入微信注册)
返回值 | 类型 | 说明 |
---|---|---|
{{keys: *[], values: *[]} }` | Object | 处理好的颜色对象 |
找色
findColor 单点找色封装,需截图
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
startX | 否 | int | 范围起点x坐标,默认0,全屏 |
startY | 否 | int | 范围起点y坐标,默认0,全屏 |
endX | 否 | int | 范围终点x坐标,默认0,全屏 |
endY | 否 | int | 范围终点y坐标,默认0,全屏 |
threshold | 否 | float | 相似度,默认0.9 |
orz | 否 | int | 查找方向,默认1 |
if (keepScreen()) {
//只填颜色,其他默认
if (findColor("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010")) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围
if (findColor("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围,指定相似度
if (findColor("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500, 0.8)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围,指定相似度,指定查找方向
if (findColor("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500, 0.8, 2)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |
findColorEx 单点找色Ex封装,无需截图
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
color | 是 | string | 颜色点阵 |
startX | 否 | int | 范围起点x坐标,默认0,全屏 |
startY | 否 | int | 范围起点y坐标,默认0,全屏 |
endX | 否 | int | 范围终点x坐标,默认0,全屏 |
endY | 否 | int | 范围终点y坐标,默认0,全屏 |
threshold | 否 | float | 相似度,默认0.9 |
orz | 否 | int | 查找方向,默认1 |
//只填颜色,其他默认
if (findColorEx("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010")) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围
if (findColorEx("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围,指定相似度
if (findColorEx("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500, 0.8)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制范围,指定相似度,指定查找方向
if (findColorEx("#909CB2-#101010,#0D1518-#101010,#878F9A-#101010,#091114-#101010", 100, 100, 500, 500, 0.8, 2)) {
logd("找到色点", JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |
findMultiColor 多点找色封装,需要截图及释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
colorArr | 是 | Array | 颜色数组 |
thresholdOrArray | 否 | float或数组[] | 相似度,默认0.9 或[起始x,起始y,结束x,结束y,相似度,查找方向] |
orz | 否 | int | 查找方向,默认1 |
let 多点找色 = {
//只填颜色
"首页": [
"#05DB6B-#101010", "-27|-29|#0FD96D-#101010,70|-20|#01DE6D-#101010,72|68|#00C860-#101010,-23|68|#00D05F-#101010,49|44|#FFFEFF-#101010,-19|7|#FEFFFF-#101010,32|-8|#FFFBFD-#101010"
],
//限制比色范围
"选择注册": ["#FEFFFB-#101010",
"0|0|#FEFFFB-#101010,-126|-32|#07C160-#101010,155|-12|#07C160-#101010,153|33|#08C060-#101010,-131|34|#03C35E-#101010,39|7|#DFFFED-#101010,-8|11|#EBFFF1-#101010"
, 370, 1150, 745, 1321
],
//限制比色范围,指定相似度
"选择注册方式": [
"#FFFFFD-#101010", "-56|-25|#07C160-#101010,358|39|#08BF63-#101010,34|-171|#D6D6D6-#101010,186|-168|#D6D6D6-#101010"
, 73, 657, 670, 955, 0.8
],
//限制比色范围,指定相似度,指定查找方向
"注册页面": [
"#909CB2-#101010", "-2|4|#0D1518-#101010,48|-11|#878F9A-#101010,52|-8|#091114-#101010"
, 345, 1046, 659, 1143, 0.8, 2
]
}
console.time("1")
tag_多点找色:while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
for (let key in 多点找色) {
// logd(key)
if (findMultiColor(多点找色[key])) {
logd(key)
switch (key) {
case "注册页面":
break tag_多点找色
default:
clickPoint(gPoint.x, gPoint.y)
sleep(500)
break
}
}
}
}
logd(console.timeEnd("1"))
//新增用法,第二个参数,相似度,升级为支持数组,数组里自定义找色范围,如下
if (findMultiColor(多点找色.首页, [起始x, 起始y, 结束x, 结束y, 相似度, 查找方向])) {
}
if (findMultiColor(多点找色.首页, [0, 0, 500, 500, 0.9, 1])) {
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |
findMultiColorEx 多点找色Ex封装,不需要截图及释放
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
colorArr | 是 | Array | 颜色数组 |
thresholdOrArray | 否 | float或数组 | 相似度,默认0.9,或数组[起始x, 起始y, 结束x, 结束y, 相似度, 查找方向 ] |
orz | 否 | int | 查找方向,默认1 |
let 多点找色 = {
//只填颜色
"首页": [
"#05DB6B-#101010", "-27|-29|#0FD96D-#101010,70|-20|#01DE6D-#101010,72|68|#00C860-#101010,-23|68|#00D05F-#101010,49|44|#FFFEFF-#101010,-19|7|#FEFFFF-#101010,32|-8|#FFFBFD-#101010"
],
//限制比色范围
"选择注册": ["#FEFFFB-#101010",
"0|0|#FEFFFB-#101010,-126|-32|#07C160-#101010,155|-12|#07C160-#101010,153|33|#08C060-#101010,-131|34|#03C35E-#101010,39|7|#DFFFED-#101010,-8|11|#EBFFF1-#101010"
, 370, 1150, 745, 1321
],
//限制比色范围,指定相似度
"选择注册方式": [
"#FFFFFD-#101010", "-56|-25|#07C160-#101010,358|39|#08BF63-#101010,34|-171|#D6D6D6-#101010,186|-168|#D6D6D6-#101010"
, 73, 657, 670, 955, 0.8
],
//限制比色范围,指定相似度,指定查找方向
"注册页面": [
"#909CB2-#101010", "-2|4|#0D1518-#101010,48|-11|#878F9A-#101010,52|-8|#091114-#101010"
, 345, 1046, 659, 1143, 0.8, 2
]
}
console.time("1")
tag_多点找色:while (true) {
sleep(10)
for (let key in 多点找色) {
// logd(key)
if (findMultiColorEx(多点找色[key])) {
logd(key)
switch (key) {
case "注册页面":
break tag_多点找色
default:
clickPoint(gPoint.x, gPoint.y)
sleep(500)
break
}
}
}
}
logd(console.timeEnd("1"))
//新增用法,第二个参数,相似度,升级为支持数组,数组里自定义找色范围,如下
if (findMultiColor(多点找色.首页, [起始x, 起始y, 结束x, 结束y, 相似度, 查找方向])) {
}
if (findMultiColor(多点找色.首页, [0, 0, 500, 500, 0.9, 1])) {
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |
透明图找图
findImageByColor 透明找图封装,不需初始化openCV
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
imgName | 是 | String | res文件夹中png文件名 |
startX | 否 | Number | 范围起始X坐标 |
startY | 否 | Number | 范围起始Y坐标 |
endX | 否 | Number | 范围结束X坐标 |
endY | 否 | Number | 范围结束Y坐标 |
threshold | 否 | float | 相似度,0.4-0.6才能找得到,应该是有bug |
laoleng.EC.init()
while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
//只填图片名
if (findImageByColor("图片名")) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制查找范围
if (findImageByColor("图片名", 100, 100, 500, 500)) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制查找范围,并指定相似度
if (findImageByColor("图片名", 100, 100, 500, 500, 0.6)) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |
findImageByColorAll 透明找图封装,返回多个坐标,不需初始化openCV
参数名 | 必选 | 类型 |
---|