函数:findColor 图片多点区域找色
函数功能:在图片指定区域使用 table 格式查找颜色并返回所有符合条件的坐标
函数方法
point,msg = image.findColor(img,tab,degree, x1, y1, x2, y2)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
img | usedata | 是 | 需要操作的图片对象 |
tab | table | 是 | 找色参数 |
degree | number | 否 | 寻找精度,范围:0 ~ 100,当是 100 时为完全匹配, 不写或者小于 0 默认为 0,超过 100 默认为 100 |
x1 | number | 否 | 图片对象的找色区域左上角顶点屏幕横坐标,不写默认为 0 |
y1 | number | 否 | 图片对象的找色区域左上角顶点屏幕纵坐标,不写默认为 0 |
x2 | number | 否 | 图片对象的找色区域右下角顶点屏幕横坐标,不写默认为屏幕宽度 |
y2 | number | 否 | 图片对象的找色区域右下角顶点屏幕纵坐标,不写默认为屏幕高度 |
tab 参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
find_all | boolean | 否 | true - 多个返回值写入表中,格式为 {}; 不写默认 false - 返回 1 个坐标 |
max_results | number | 否 | 设置返回值坐标数量上限,不写默认为 100 |
max_miss | number | 否 | 设置忽略返回值坐标数量上限,不写默认为 0 |
array | table | 是 | 颜色数组 |
返回值 | 类型 | 说明 |
---|---|---|
point | table/number | find_all 为 true 时以 table 形式返回所有符合条件的参照点的坐标; 为 false 时返回横坐标,找不到返回 -1 |
msg | table/number | find_all 为 true,table 为空时返回失败原因; 为 false 时返回纵坐标,找不到返回 -1 |
函数用例
local image = require("tsimg")
snapshot("findColor.png", 0, 0, 500, 500)
--将文件转换为图片对象
local newImage,msg = image.loadFile(userPath() .. "/res/findColor.png")
if image.is(newImage) then
local point, msg = image.findColor(newImage,
{
find_all = true,
max_results = 3,
max_miss = 2,
{42, 56, 0x120325},
{124,123, 0xffffff},
{74, 154, 0xffe167},
}
,90,10, 10, 500, 500);
if #point ~= 0 then
for var = 1,#point do
dialog(point[var].x..":"..point[var].y)
end
else
dialog("未找到颜色")
end
else
dialog("未找到颜色")
end
注意事项
- max_miss 的数量不能超过(#array - 1)
Android 仅支持引擎版本 v3.0.1 及其以上,支持标准版、企业版及小精灵。
安卓普通版需要登录账号、购买 VIP 并且在调用过程中账号需要保持登录状态否则会导致调用失效。
iOS 仅支持专业版、企业版及小精灵。
Android 真机与模拟器 tsimg.so 文件不同,需要按照设备类型进行下载。
点击 使用方法、tsimg.so 下载 查看使用方法及下载地址。
雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。