图色封装
截图
提示
图色截图数据返回值,保存在gScreen中
keepScreen保持屏幕数据,优化速度
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
keepScreen()
返回值 | 类型 | 说明 |
---|---|---|
true/false | boolean | 是否截图成功 |
keepScreenJpg 保持屏幕数据,优化速度
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
keepScreenJpg()
返回值 | 类型 | 说明 |
---|---|---|
true/false | boolean | 是否截图成功 |
keepScreenPng 保持屏幕数据,优化速度
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
keepScreenPng()
返回值 | 类型 | 说明 |
---|---|---|
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 |
提示
- 全局返回值gCmpKey格式,返回颜色色点的key具体值
- 具体使用参考VIP视频教程
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(img, 临时色对象)) {
//指定相似度
//if (cmpMultiColor(img, 临时色对象, 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 |
提示
- 全局返回值gCmpKey格式,返回颜色色点的key具体值
- 具体使用参考VIP视频教程
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 单点找色封装,需截图
提示
找到的坐标保存在gPoint里
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
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封装,无需截图
提示
找到的坐标保存在gPoint里
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
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 |
提示
- 找到的坐标保存在gPoint里
- 新增支持自定义找色范围,看文档最后
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封装,不需要截图及释放
提示
- 找到的坐标保存在gPoint里
- 新增支持自定义找色范围,看文档最后
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
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
提示
- 适合找小图
- 找图结果返回再gPoint中
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
imgName | 是 | String | res文件夹中png文件名,支持多图片 |
startX | 否 | Number | 范围起始X坐标 |
startY | 否 | Number | 范围起始Y坐标 |
endX | 否 | Number | 范围结束X坐标 |
endY | 否 | Number | 范围结束Y坐标 |
threshold | 否 | float | 相似度,默认0.9 |
laoleng.EC.init()
while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
//只填图片名
if (findImageByColor("图片名")) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//只填图片名2
if (findImageByColor("图片名.png")) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//找多图
if (findImageByColor("图片名.png|图片名2.png|图片名3.png|图片名4|图片名5")) {
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
提示
- 适合找小图
- 找图结果返回再gPointAll中
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
imgName | 是 | String | res文件夹中png文件名 |
startX | 否 | Number | 范围起始X坐标 |
startY | 否 | Number | 范围起始Y坐标 |
endX | 否 | Number | 范围结束X坐标 |
endY | 否 | Number | 范围结束Y坐标 |
threshold | 否 | float | 相似度,默认0.9 |
limit | 否 | Number | 返回找图个数,默认1 |
laoleng.EC.init()
while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
//只填图片名
if (findImageByColorAll("图片名")) {
logd("1:" + JSON.stringify(gPointAll))
for (let i = 0; i < gPointAll.length; i++) {
logd(gPointAll[i].x, gPointAll[i].y)
clickPoint(gPointAll[i].x, gPointAll[i].y)
sleep(500)
}
}
//限制查找范围
if (findImageByColorAll("图片名", 100, 100, 500, 500)) {
logd("1:" + JSON.stringify(gPointAll))
for (let i = 0; i < gPointAll.length; i++) {
logd(gPointAll[i].x, gPointAll[i].y)
clickPoint(gPointAll[i].x, gPointAll[i].y)
sleep(500)
}
}
//限制查找范围,并指定相似度
if (findImageByColorAll("图片名", 100, 100, 500, 500, 0.6)) {
logd("1:" + JSON.stringify(gPointAll))
for (let i = 0; i < gPointAll.length; i++) {
logd(gPointAll[i].x, gPointAll[i].y)
clickPoint(gPointAll[i].x, gPointAll[i].y)
sleep(500)
}
}
//限制查找范围,并指定相似度,指定返回值个数
if (findImageByColorAll("图片名", 100, 100, 500, 500, 0.6, 5)) {
logd("1:" + JSON.stringify(gPointAll))
for (let i = 0; i < gPointAll.length; i++) {
logd(gPointAll[i].x, gPointAll[i].y)
clickPoint(gPointAll[i].x, gPointAll[i].y)
sleep(500)
}
}
}
返回值 | 类型 | 说明 |
---|---|---|
[{x:500,y:600}] | Object数组 | 坐标点x,y对象数组 |
findImageByColorEx 透明找图封装Ex,不需初始化openCV
提示
- 适合找小图
- 找图结果返回再gPoint中
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
imgName | 是 | String | res文件夹中png文件名 |
startX | 否 | Number | 范围起始X坐标 |
startY | 否 | Number | 范围起始Y坐 标 |
endX | 否 | Number | 范围结束X坐标 |
endY | 否 | Number | 范围结束Y坐标 |
threshold | 否 | float | 相似度,默认0.9 |
deltaColor | 否 | Strng | 偏色,默认#101010 |
laoleng.EC.init()
while (true) {
sleep(10)
if (!keepScreen()) {
continue
}
//只填图片名
if (findImageByColorEx("图片名")) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制查找范围
if (findImageByColorEx("图片名", 100, 100, 500, 500)) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制查找范围,并指定相似度
if (findImageByColorEx("图片名", 100, 100, 500, 500, 0.8)) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
//限制查找范围,并指定相似度,指定偏色
if (findImageByColorEx("图片名", 100, 100, 500, 500, 0.8, "#202020")) {
logd("1:" + JSON.stringify(gPoint))
clickPoint(gPoint.x, gPoint.y)
sleep(500)
}
}
返回值 | 类型 | 说明 |
---|---|---|
{x:500,y:600} | Object | 坐标点x,y对象 |