函数: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 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。

Copyright 北京帮你玩科技有限公司 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-03-06 17:50:18

results matching ""

    No results matching ""