跳到主要内容

在图片上多点找色(:findColors)

函数

找色结果 = 图片对象:findColors(颜色值数组,[相似度 或色偏值] ,[是否匹配多个目标] ,[开始横坐标
,开始纵坐标 ,结束横坐标 ,结束纵坐标])

参数

  • 颜色值数组 数组型

  • 相似度 数组型

    可选 默认 90

    这个参数 可以是色偏值

  • 是否匹配多个目标 文本型

    可选 默认 nil

    参数的固定文本为 "find_all"

  • 开始横坐标 整数型

    可选 默认 0

  • 开始纵坐标 整数型

    可选 默认 0

  • 结束横坐标 整数型

    可选 默认 图片宽度

  • 结束纵坐标 整数型

    可选 默认 图片高度

返回值

  • 横坐标 整数型

    成功返回 横坐标 失败返回 -1

  • 纵坐标 整数型

    成功返回 纵坐标 失败返回 -1

  • "find_all" 数组型

    当参数 "find_all" 存在时 返回数组型的 坐标数组

说明

用于在图片上 范围查找 对应的颜色值数组

示例

 简单的示例    相似度模式
local img = screen.image()
local x, y = img:findColors({
{ 123, 177, 0x030712 },
{ 157, 96, 0xFD6303 },
{ 242, 196, 0x062C50 },
{ 126, 211, 0x011D32 },
{ 47, 138, 0x1C395B },
{ 80, 112, 0x092D4D },
} ,95)
if (x ~= -1 and y ~= -1) then
print(string.format("成功找到坐标 x = %d ,y = %d" , x ,y))
end


简单的示例 色偏模式
local x, y = img:findColors({
{ 123, 177, 0x030712 },
{ 157, 96, 0xFD6303 },
{ 242, 196, 0x062C50 },
{ 126, 211, 0x011D32 },
{ 47, 138, 0x1C395B },
{ 80, 112, 0x092D4D },
} ,0x202020)
if (x ~= -1 and y ~= -1) then
print(string.format("成功找到坐标 x = %d ,y = %d" , x ,y))
end


简单的示例
local x, y = img:findColors({
{ 123, 177, 0x030712 , 80 }, --设置这个点的 相似度为 80
{ 157, 96, 0xFD6303 , 0x202020}, --设置这个点的色偏模式
{ 242, 196, 0x062C50 }, --以下使用色偏模式 值为 0x202020
{ 126, 211, 0x011D32 },
{ 47, 138, 0x1C395B },
{ 80, 112, 0x092D4D },
} ,0x202020)
if (x ~= -1 and y ~= -1) then
print(string.format("成功找到坐标 x = %d ,y = %d" , x ,y))
end


简单的示例
local x, y = img:findColors({
{ 123, 177, 0x030712 , 80 }, --设置这个点的 相似度为 80
{ 157, 96, 0xFD6303 , 0x202020}, --设置这个点的色偏模式
{ 242, 196, 0x062C50 }, --以下使用色偏模式 值为 0x202020
{ 126, 211, 0x011D32 },
{ 47, 138, 0x1C395B },
{ 80, 112, 0x092D4D },
} ,0x202020 , 100,100,300,300) --设置多点找色区域为 起始点 100,100 结束点 300,300
if (x ~= -1 and y ~= -1) then
print(string.format("成功找到坐标 x = %d ,y = %d" , x ,y))
end


简单的示例 匹配多个结果
local result = img:findColors({
{ 123, 177, 0x030712 , 80 }, --设置这个点的 相似度为 80
{ 157, 96, 0xFD6303 , 0x202020}, --设置这个点的色偏模式
{ 242, 196, 0x062C50 }, --以下使用色偏模式 值为 0x202020
{ 126, 211, 0x011D32 },
{ 47, 138, 0x1C395B },
{ 80, 112, 0x092D4D },
} ,0x202020 , "find_all" ,100,100,300,300) --设置多点找色区域为 起始点 100,100 结束点 300,300

for k ,v in pairs(result) do
print(string.format("第 %d 个结果 x = %d, y = %d" ,k ,v[1] ,v[2]))
end