图像函数
模板匹配
在虚拟屏幕中匹配
import com.m8test.script.GlobalVariables.*
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
fun getDisplay(): Display {
return _displays.getAll().firstOrNull() ?: _displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
}
// 获取一个虚拟屏幕
val display = getDisplay()
// 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
val results = _images!!.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1) {}
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console.log("匹配结果:", results.getAll())
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
Display getDisplay() {
def allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
def display = $displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
return display
}
// 获取一个虚拟屏幕
def display = getDisplay()
// 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
def results = $images.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1) {}
// 遍历所有的结果
$iterables.toList(results.getAll()).forEach {
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", it.getRegion())
}
import com.m8test.image.api.RegionResult;
import com.m8test.image.api.Results;
import com.m8test.script.core.api.display.Display;
import kotlin.jvm.functions.Function1;
import java.util.List;
import static com.m8test.script.GlobalVariables.*;
private static Display getDisplay() {
List<Display> allDisplays = $displays.getAll();
if (allDisplays.size() > 0) return (Display) allDisplays.get(0);
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(new Function1() {
@Override
public Object invoke(Object o) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
return null;
}
});
}
// 获取一个虚拟屏幕
Display display = getDisplay();
// 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
Results<RegionResult> results = $images.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1, new Function1() {
@Override
public Object invoke(Object o) {
return null;
}
});
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll());
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
*
* @returns {Packages.com.m8test.script.core.api.display.Display}
*/
function getDisplay() {
let allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(function (config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
})
}
// 获取一个虚拟屏幕
let display = getDisplay()
// 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
let results = $images.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1, function () {
})
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll())
-- 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
--- @return m8test_java.com.m8test.script.core.api.display.Display
function getDisplay()
local allDisplays = _displays:getAll()
if not allDisplays:isEmpty() then
return allDisplays:get(0)
else
return _displays:create(function(config)
-- 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
end)
end
end
-- 获取一个虚拟屏幕
local display = getDisplay()
-- 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
local results = _images:matchTemplatesInDisplay(display:getId(), "/sdcard/M8Test/opencv/template.png", 90, 1,
function(config) end)
-- 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console:log("匹配结果:", results:getAll())
<?php
/** @var m8test_java\com\m8test\script\core\api\display\Displays $displays */
global $displays;
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
* @param \m8test_java\com\m8test\script\core\api\display\Displays $displays
* @return \m8test_java\com\m8test\script\core\api\display\Display
*/
function getDisplay($displays)
{
$allDisplays = $displays->getAll();
if ($allDisplays->size() > 0) {
return $allDisplays->get(0);
} else {
return $displays->create(function ($config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
});
}
}
// 获取一个虚拟屏幕
$display = getDisplay($displays);
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
$results = $images->matchTemplatesInDisplay($display->getId(), "/sdcard/M8Test/opencv/template.png", 90, 1, function ($config) {
});
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console->log(javaString("匹配结果:"), $results->getAll());
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _displays
from m8test_java.com.m8test.script.GlobalVariables import _images
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
def getDisplay():
allDisplays = _displays.getAll()
if allDisplays.size() > 0:
return allDisplays.get(0)
else:
return _displays.create(lambda config:
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
config)
# 获取一个虚拟屏幕
display = getDisplay()
# 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
results = _images.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1,
lambda config: config)
# 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console.log("匹配结果:", results.getAll())
# encoding: utf-8
java_import 'com.m8test.script.core.api.display.Display'
# encoding: utf-8
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
# @return [Display] 已存在或者新创建的虚拟屏幕
def getDisplay
allDisplays = $displays.getAll
if allDisplays.size > 0
allDisplays.get(0)
else
$displays.create { |config|
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
end
end
# 获取一个虚拟屏幕
display = getDisplay()
# 在指定的虚拟屏幕中匹配给定的图片,第一个参数为虚拟屏幕id,第二个参数为图片路径,第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
results = $images.matchTemplatesInDisplay(display.getId(), "/sdcard/M8Test/opencv/template.png", 90, 1) { |config| }
# 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll())
在图片中匹配
import com.m8test.script.GlobalVariables._console
import com.m8test.script.GlobalVariables._images
// 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
val results =
_images!!.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2) {}
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console.log("匹配结果:", results.getAll())
// 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
def results = $images.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2) {}
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll())
import com.m8test.image.api.RegionResult;
import com.m8test.image.api.Results;
import kotlin.jvm.functions.Function1;
import static com.m8test.script.GlobalVariables.$console;
import static com.m8test.script.GlobalVariables.$images;
// 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
Results<RegionResult> results = $images.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2, new Function1() {
@Override
public Object invoke(Object o) {
return null;
}
});
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll());
// 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
let results = $images.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2, function (config) {
})
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll())
-- 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
local results = _images:matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2,
function(config) end)
-- 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console:log("匹配结果:", results:getAll())
<?php
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
$results = $images->matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2, function ($config) {
});
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
// 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console->log("匹配结果:", $results->getAll());
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _images
# 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
results = _images.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2,
lambda config: config)
# 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
_console.log("匹配结果:", results.getAll())
# encoding: utf-8
java_import 'com.m8test.script.core.api.display.Display'
# 模板匹配, 在大图中查找小图, 第一个参数为大图,第二个参数为小图(模板图),第三个参数为相似度,第四个参数为匹配数量,第五个参数为额外配置的函数
results = $images.matchTemplates("/sdcard/M8Test/opencv/super_mario.jpg", "/sdcard/M8Test/opencv/block.png", 90, 2) { |config| }
# 打印匹配结果的区域, 实际开发时可以根据需要实现点击、长按等操作
$console.log("匹配结果:", results.getAll())
颜色比较
在虚拟屏幕中比较
import com.m8test.script.GlobalVariables.*
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
fun getDisplay(): Display {
return _displays.getAll().firstOrNull() ?: _displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
}
// 获取一个虚拟屏幕
val display = getDisplay()
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console.log(_images!!.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
setColors("100|25|FF111318,50|-25|FF111318|90")
})
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console.log(_images!!.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
setColors("100|25|FF111318,50|-25|FFE01318|90")
})
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
Display getDisplay() {
def allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
def display = $displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
return display
}
// 获取一个虚拟屏幕
def display = getDisplay()
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
})
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FFE01318|90")
})
import com.m8test.image.api.config.CompareColorsConfig;
import com.m8test.script.core.api.display.Display;
import kotlin.jvm.functions.Function1;
import java.util.List;
import static com.m8test.script.GlobalVariables.*;
private static Display getDisplay() {
List<Display> allDisplays = $displays.getAll();
if (allDisplays.size() > 0) return (Display) allDisplays.get(0);
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(new Function1() {
@Override
public Object invoke(Object o) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
return null;
}
});
}
// 获取一个虚拟屏幕
Display display = getDisplay();
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, new Function1() {
public Object invoke(Object o) {
CompareColorsConfig it = (CompareColorsConfig) o;
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90");
return null;
}
}));
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, new Function1() {
public Object invoke(Object o) {
CompareColorsConfig it = (CompareColorsConfig) o;
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FFE01318|90");
return null;
}
}));
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
*
* @returns {Packages.com.m8test.script.core.api.display.Display}
*/
function getDisplay() {
let allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(function (config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
})
}
// 获取一个虚拟屏幕
let display = getDisplay()
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, function (it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
}))
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, function (it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FFE01318|90")
}))
-- 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
--- @return m8test_java.com.m8test.script.core.api.display.Display
function getDisplay()
local allDisplays = _displays:getAll()
if not allDisplays:isEmpty() then
return allDisplays:get(0)
else
return _displays:create(function(config)
-- 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
end)
end
end
-- 获取一个虚拟屏幕
local display = getDisplay()
-- 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console:log(_images:compareColorsInDisplay(display:getId(), "FF111318", 250, 125, 90, function(it)
-- 相对于基准点的坐标颜色,
-- (250, 125) 的颜色16进制值为FF111318
-- (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
-- (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it:setColors("100|25|FF111318,50|-25|FF111318|90")
end))
-- 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console:log(_images:compareColorsInDisplay(display:getId(), "FF111318", 250, 125, 90, function(it)
-- 相对于基准点的坐标颜色,
-- (250, 125) 的颜色16进制值为FF111318
-- (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
-- (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it:setColors("100|25|FF111318,50|-25|FFE01318|90")
end))
<?php
/** @var m8test_java\com\m8test\script\core\api\display\Displays $displays */
global $displays;
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
* @param \m8test_java\com\m8test\script\core\api\display\Displays $displays
* @return \m8test_java\com\m8test\script\core\api\display\Display
*/
function getDisplay($displays)
{
$allDisplays = $displays->getAll();
if ($allDisplays->size() > 0) {
return $allDisplays->get(0);
} else {
return $displays->create(function ($config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
});
}
}
// 获取一个虚拟屏幕
$display = getDisplay($displays);
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console->log($images->compareColorsInDisplay($display->getId(), "FF111318", 250, 125, 90, function ($it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
$it->setColors("100|25|FF111318,50|-25|FF111318|90");
}));
// 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console->log($images->compareColorsInDisplay($display->getId(), "FF111318", 250, 125, 90, function ($it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
$it->setColors("100|25|FF111318,50|-25|FFE01318|90");
}));
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _displays
from m8test_java.com.m8test.script.GlobalVariables import _images
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
def getDisplay():
allDisplays = _displays.getAll()
if allDisplays.size() > 0:
return allDisplays.get(0)
else:
return _displays.create(lambda config:
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
config)
# 获取一个虚拟屏幕
display = getDisplay()
# 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console.log(_images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, lambda it:
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")))
# 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
_console.log(_images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90, lambda it:
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FFE01318|90")))
# encoding: utf-8
java_import 'com.m8test.script.core.api.display.Display'
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
# @return [Display] 已存在或者新创建的虚拟屏幕
def getDisplay
allDisplays = $displays.getAll
if allDisplays.size > 0
allDisplays.get(0)
else
$displays.create { |config|
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
end
end
# 获取一个虚拟屏幕
display = getDisplay()
java_import 'com.m8test.image.api.config.CompareColorsConfig'
# 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
# @type it [CompareColorsConfig]
|it|
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FF111318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FF111318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
})
# 比较给定的颜色集合是否匹配虚拟屏幕的颜色,第一个参数为屏幕ID,第二个参数为基准点颜色,第三个参数为基准点x坐标,第四个参数为基准点y坐标,第五个参数为相似度
$console.log($images.compareColorsInDisplay(display.getId(), "FF111318", 250, 125, 90) {
# @type it [CompareColorsConfig]
|it|
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FFE01318|90")
})
在图片中比较
import com.m8test.script.GlobalVariables._console
import com.m8test.script.GlobalVariables._images
// 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
val isMatch = _images!!.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
setColors("100|25|a1adff,50|-25|f6ddc9|90")
}
_console.log("颜色比较:", isMatch)
// 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
def isMatch = $images.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90")
}
$console.log("颜色比较:", isMatch)
import com.m8test.image.api.config.CompareColorsConfig;
import kotlin.jvm.functions.Function1;
import static com.m8test.script.GlobalVariables.$console;
import static com.m8test.script.GlobalVariables.$images;
// 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
boolean isMatch = $images.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95, new Function1() {
@Override
public Object invoke(Object o) {
CompareColorsConfig it = (CompareColorsConfig) o;
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90");
return null;
}
});
$console.log("颜色比较:", isMatch);
// 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
let isMatch = $images.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95, function (it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90")
})
$console.log("颜色比较:", isMatch)
-- 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
local isMatch = _images:compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95, function(it)
-- 相对于基准点的坐标颜色,
-- (250, 125) 的颜色16进制值为a1adff
-- (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
-- (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it:setColors("100|25|a1adff,50|-25|f6ddc9|90")
end)
_console:log("颜色比较:", isMatch)
<?php
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
$isMatch = $images->compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95, function ($it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
$it->setColors("100|25|a1adff,50|-25|f6ddc9|90");
});
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
$console->log(javaString("颜色比较:"), $isMatch);
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _images
# 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
isMatch = _images.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95, lambda it:
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为a1adff
# (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
# (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90"))
_console.log("颜色比较:", isMatch)
# encoding: utf-8
java_import 'com.m8test.image.api.config.CompareColorsConfig'
# 比较颜色,用于判断在给定图片的指定坐标点以及相对坐标点的颜色是否匹配,如果匹配返回true,否则返回false,第一个参数为图片路径,第二个参数为基准点的颜色值,第三个参数为基准点X坐标,第四个参数为基准点Y坐标,第五个参数为基准点坐标颜色的相似度,第六个参数为配置额外参数的函数
isMatch = $images.compareColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 250, 125, 95) {
# @type it [CompareColorsConfig]
|it|
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为a1adff
# (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
# (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90")
}
$console.log("颜色比较:", isMatch)
查找颜色
在虚拟屏幕中查找
import com.m8test.script.GlobalVariables.*
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
fun getDisplay(): Display {
return _displays.getAll().firstOrNull() ?: _displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
}
// 获取一个虚拟屏幕
val display = getDisplay()
// 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
val results = _images!!.findColorsInDisplay(display.getId(), "FF111318", 90, 1, {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
setColors("100|25|FF111318,50|-25|FF111318|90")
// 设置查找区域
setRegion {
set(200, 90, 360, 160)
}
})
_console.log(results.getAll())
import com.m8test.script.core.api.display.Display
// 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
Display getDisplay() {
def allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
def display = $displays.create {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
return display
}
// 获取一个虚拟屏幕
def display = getDisplay()
// 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
def results = $images.findColorsInDisplay(display.getId(), "FF111318", 90, 1, {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
// 设置查找区域
it.setRegion { region ->
region.set(200, 90, 360, 160)
}
})
$console.log(results.getAll())
import android.graphics.Rect;
import com.m8test.image.api.CoordinateResult;
import com.m8test.image.api.Results;
import com.m8test.image.api.config.FindColorsConfig;
import com.m8test.script.core.api.display.Display;
import kotlin.jvm.functions.Function1;
import java.util.List;
import static com.m8test.script.GlobalVariables.*;
private static Display getDisplay() {
List<Display> allDisplays = $displays.getAll();
if (allDisplays.size() > 0) return (Display) allDisplays.get(0);
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(new Function1() {
@Override
public Object invoke(Object o) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
return null;
}
});
}
// 获取一个虚拟屏幕
Display display = getDisplay();
// 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
Results<CoordinateResult> results = $images.findColorsInDisplay(display.getId(), "FF111318", 90, 1, new Function1() {
public Object invoke(Object o) {
FindColorsConfig it = (FindColorsConfig) o;
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90");
// 设置查找区域
it.setRegion(new Function1() {
public Object invoke(Object o) {
Rect region = (Rect) o;
region.set(200, 90, 360, 160);
return null;
}
});
return null;
}
});
$console.log(results.getAll());
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
*
* @returns {Packages.com.m8test.script.core.api.display.Display}
*/
function getDisplay() {
let allDisplays = $displays.getAll()
if (allDisplays.size() > 0) return allDisplays.get(0)
// 创建虚拟屏幕, create 方法会返回一个 Display 对象
return $displays.create(function (config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
})
}
// 获取一个虚拟屏幕
let display = getDisplay()
// 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
let results = $images.findColorsInDisplay(display.getId(), "FF111318", 90, 1, function (it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
// 设置查找区域
it.setRegion(function (region) {
region.set(200, 90, 360, 160)
})
})
$console.log(results.getAll())
-- 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
--- @return m8test_java.com.m8test.script.core.api.display.Display
function getDisplay()
local allDisplays = _displays:getAll()
if not allDisplays:isEmpty() then
return allDisplays:get(0)
else
return _displays:create(function(config)
-- 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
end)
end
end
-- 获取一个虚拟屏幕
local display = getDisplay()
-- 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
local results = _images:findColorsInDisplay(display:getId(), "FF111318", 90, 1, function(it)
-- 相对于基准点的坐标颜色,
-- (250, 125) 的颜色16进制值为FF111318
-- (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
-- (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it:setColors("100|25|FF111318,50|-25|FF111318|90")
-- 设置查找区域
it:setRegion(function(region)
region:set(200, 90, 360, 160)
end)
end)
_console:log(results:getAll())
<?php
/** @var m8test_java\com\m8test\script\core\api\display\Displays $displays */
global $displays;
/**
* 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
* @param \m8test_java\com\m8test\script\core\api\display\Displays $displays
* @return \m8test_java\com\m8test\script\core\api\display\Display
*/
function getDisplay($displays)
{
$allDisplays = $displays->getAll();
if ($allDisplays->size() > 0) {
return $allDisplays->get(0);
} else {
return $displays->create(function ($config) {
// 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
});
}
}
// 获取一个虚拟屏幕
$display = getDisplay($displays);
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
$results = $images->findColorsInDisplay($display->getId(), "FF111318", 90, 1, function ($it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为FF111318
// (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
// (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
$it->setColors("100|25|FF111318,50|-25|FF111318|90");
// 设置查找区域
$it->setRegion(function ($region) {
$region->set(200, 90, 360, 160);
});
});
$console->log($results->getAll());
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _displays
from m8test_java.com.m8test.script.GlobalVariables import _images
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
def getDisplay():
allDisplays = _displays.getAll()
if allDisplays.size() > 0:
return allDisplays.get(0)
else:
return _displays.create(lambda config:
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
config)
# 获取一个虚拟屏幕
display = getDisplay()
# 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
results = _images.findColorsInDisplay(display.getId(), "FF111318", 90, 1, lambda it:
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
(it.setColors("100|25|FF111318,50|-25|FF111318|90"),
# 设置查找区域
it.setRegion(lambda region: region.set(200, 90, 360, 160))))
_console.log(results.getAll())
# encoding: utf-8
java_import 'com.m8test.script.core.api.display.Display'
# 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个
# @return [Display] 已存在或者新创建的虚拟屏幕
def getDisplay
allDisplays = $displays.getAll
if allDisplays.size > 0
allDisplays.get(0)
else
$displays.create { |config|
# 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置
}
end
end
# 获取一个虚拟屏幕
display = getDisplay()
java_import 'com.m8test.image.api.config.FindColorsConfig'
# 在虚拟屏幕上查找给定的颜色集合, 返回满足条件的基准点的坐标集合, 第一个参数为虚拟屏幕id, 第二个参数为基准点颜色, 第三个参数为相似度, 第四个参数为返回数量, 第五个参数为额外配置的函数
results = $images.findColorsInDisplay(display.getId(), "FF111318", 90, 1) {
# @type it [FindColorsConfig]
|it|
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为FF111318
# (350, 150) 的颜色16进制值为FF111318, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|FF111318
# (300, 100) 的颜色16进制值为FFE01318, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|FFE01318|90
it.setColors("100|25|FF111318,50|-25|FF111318|90")
# 设置查找区域
java_import 'android.graphics.Rect'
it.setRegion {
# @type region [Rect]
|region|
region.set(200, 90, 360, 160)
}
}
$console.log(results.getAll())
在图片中查找
import com.m8test.script.GlobalVariables._console
import com.m8test.script.GlobalVariables._images
// 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
val results = _images!!.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
setColors("100|25|a1adff|100,50|-25|f6ddc9|100")
}
_console.log("查找结果:", results.getAll())
// 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
def results = $images.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff|100,50|-25|f6ddc9|100")
}
$console.log("查找结果:", results.getAll())
import com.m8test.image.api.CoordinateResult;
import com.m8test.image.api.Results;
import com.m8test.image.api.config.FindColorsConfig;
import kotlin.jvm.functions.Function1;
import static com.m8test.script.GlobalVariables.$console;
import static com.m8test.script.GlobalVariables.$images;
// 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
Results<CoordinateResult> results = $images.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1, new Function1() {
@Override
public Object invoke(Object o) {
FindColorsConfig it = (FindColorsConfig) o;
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff,50|-25|f6ddc9|90");
return null;
}
});
$console.log("查找结果:", results.getAll());
// 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
let results = $images.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1, function (it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff|100,50|-25|f6ddc9|100")
})
$console.log("查找结果:", results.getAll())
-- 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
local results = _images:findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1, function(it)
-- 相对于基准点的坐标颜色,
-- (250, 125) 的颜色16进制值为a1adff
-- (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
-- (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it:setColors("100|25|a1adff|100,50|-25|f6ddc9|100")
end)
_console:log("查找结果:", results:getAll())
<?php
/** @var m8test_java\com\m8test\image\api\Images $images */
global $images;
// 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
$results = $images->findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1, function ($it) {
// 相对于基准点的坐标颜色,
// (250, 125) 的颜色16进制值为a1adff
// (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
// (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
$it->setColors("100|25|a1adff|100,50|-25|f6ddc9|100");
});
/** @var m8test_java\com\m8test\script\core\api\console\Console $console */
global $console;
$console->log(javaString("查找结果:"), $results->getAll());
from m8test_java.com.m8test.script.GlobalVariables import _console
from m8test_java.com.m8test.script.GlobalVariables import _images
# 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
results = _images.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1, lambda it:
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为a1adff
# (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
# (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff|100,50|-25|f6ddc9|100"))
_console.log("查找结果:", results.getAll())
# encoding: utf-8
java_import 'com.m8test.image.api.config.FindColorsConfig'
# 查找图像中匹配的颜色点集合,第一个参数为待分析的图像文件路径,第二个参数为目标主颜色,支持RGB和ARGB格式,第三个参数为颜色相似度阈值(0-100),null使用默认值,第四个参数为最大返回结果数量,null表示无限制,第五个参数为额外配置的函数
results = $images.findColors("/sdcard/M8Test/opencv/super_mario.jpg", "a1adff", 100, 1) {
# @type it [FindColorsConfig]
|it|
# 相对于基准点的坐标颜色,
# (250, 125) 的颜色16进制值为a1adff
# (350, 150) 的颜色16进制值为a1adff, x偏移100,y偏移25, 最后面没有相似度则使用默认的相似度, 100|25|a1adff
# (300, 100) 的颜色16进制值为f6ddc9, x偏移50,y偏移-25, 最后面90表示相似度, 50|-25|f6ddc9|90
it.setColors("100|25|a1adff|100,50|-25|f6ddc9|100")
}
$console.log("查找结果:", results.getAll())
Last modified: 08 August 2025