找图函数

函数:findImage() 全屏找图

函数说明 : 全屏寻找符合指定图案,返回左上角坐标,不支持模糊查找。
函数方法 : findImage(文本型 picpath, 整型 alpha);
返回值 : 整数型 x, y

参数类型说明
picpath文本型要找的图片的路径, 只支持BMP格式
alpha整数型指定图片中透明颜色(可不写)
返回值类型说明
x整数型找到的坐标X值,未找到返回 -1
y整数型找到的坐标Y值,未找到返回 -1

示例

x, y = findImage("/mnt/sdcard/a.bmp"); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片, 将其左上角坐标保存到变量x和y中
if x ~= -1 and y ~= -1 then            -- 如果找到了
    touchDown(0, x, y);                -- 点击那个点
    touchUp(0);
end

示例:忽略图片中的黑色

x, y = findImage("a.bmp", 0x000000); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中
if x ~= -1 and y ~= -1 then                      -- 如果找到了
    touchDown(0, x, y);                          -- 点击那个点
    touchUp(0);
end

教程:透明找图时图片的处理

在找图时,如果需要忽略掉一部分会变动的背景,这时候可以使用透明找图,将要找的图片中不参与比较的颜色填充成一个固定的颜色,然后在找图时指定该颜色为透明色,这样在找图时,即使那部分画面变了,也一样可以找到图片。

如下图是原图,除文字以外的部分背景是变化的,用其他找图时会因为变化的背景导致图片找不到:

那么可以将图片处理成下图这样,然后在找图时指定黑色(0x000000)为透明色,那么就算是背景变化,也可以找到了。

注意事项:

1,全屏找图耗费资源,速度慢,不推荐使用。
2,图片路径不写为默认res目录,其他目录请填写绝对路径。
3,图片只支持BMP格式。

函数:findImageFuzzy() 全屏模糊找图

函数说明 : 全屏寻找符合指定图案,返回左上角坐标,支持模糊查找。
函数方法 : findImageFuzzy(文本型 picpath, 整数型 degree,整型 alpha);
返回值 : 整数型 x, y

参数类型说明
picpath文本型要找的图片的路径, 只支持BMP格式
degree整数型精度,范围:1 ~ 100,数值越大精度越高,100为完全匹配
alpha整数型指定图片中透明颜色(可不写)
返回值类型说明
x整数型找到的坐标X值,未找到返回 -1
y整数型找到的坐标Y值,未找到返回 -1

示例

x, y = findImageFuzzy("/mnt/sdcard/a.bmp", 90, 0x000000); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片, 精确度为90, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中
if x ~= -1 and y ~= -1 then                               -- 如果找到了
    touchDown(0, x, y);                                   -- 点击那个点
    touchUp(0);
end

注意事项:

1,全屏找图耗费资源,速度慢,不推荐使用。
2,图片路径不写为默认res目录,其他目录请填写绝对路径。
3,图片只支持BMP格式。

函数:findImageInRegion() 区域找图

函数说明 : 在指定区域中寻找符合指定图案,返回左上角坐标,不支持模糊查找。
函数方法 : findImageInRegion(文本型 picpath, 整数型 x1, 整数型 y1, 整数型 x2, 整数型 y2,整型 alpha);
返回值 : 整数型 x, y

参数类型说明
picpath文本型要找的图片的路径, 只支持BMP格式
x1整数型欲寻找的区域左上角的X坐标
y1整数型欲寻找的区域左上角的Y坐标
x2整数型欲寻找的区域右下角的X坐标
y2整数型欲寻找的区域右下角的Y坐标
alpha整数型指定图片中透明颜色(可不写)
返回值类型说明
x整数型找到的坐标X值,未找到返回 -1
y整数型找到的坐标Y值,未找到返回 -1

示例

x, y = findImageInRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200, 0x000000); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中
if x ~= -1 and y ~= -1 then                                                  -- 如果找到了
    touchDown(0, x, y);                                                      -- 点击那个点
    touchUp(0);
end

注意事项:

1,由于颜色可能会产生肉眼不可见的变化导致找图失败,建议使用区域模糊找图。
2,图片路径不写为默认res目录,其他目录请填写绝对路径。
3,图片只支持BMP格式。

函数:findImageInRegionFuzzy() 区域模糊找图

函数说明 : 在指定区域中寻找符合指定图案,返回左上角坐标,支持模糊查找。
函数方法 : findImageInRegionFuzzy(文本型 picpath, 整数型 degree, 整数型 x1, 整数型 y1, 整数型 x2, 整数型 y2,整型 alpha);
返回值 : 整数型 x, y

参数类型说明
picpath文本型要找的图片的路径, 只支持BMP格式
degree整数型精度,范围:1 ~ 100,数值越大精度越高,100为完全匹配
x1整数型欲寻找的区域左上角的X坐标
y1整数型欲寻找的区域左上角的Y坐标
x2整数型欲寻找的区域右下角的X坐标
y2整数型欲寻找的区域右下角的Y坐标
alpha整数型指定图片中透明颜色(可不写)
返回值类型说明
x整数型找到的坐标X值,未找到返回 -1
y整数型找到的坐标Y值,未找到返回 -1

示例

x, y = findImageInRegionFuzzy("/mnt/sdcard/a.bmp", 90, 100, 100, 200, 200, 0x000000); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片, 精确度为90, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中
if x ~= -1 and y ~= -1 then                                                           -- 如果找到了
    touchDown(0, x, y);                                                               -- 点击那个点
    touchUp(0);
end

注意事项:

1,图片路径不写为默认res目录,其他目录请填写绝对路径。
2,图片只支持BMP格式。