M8Test Help

图像函数

模板匹配

在虚拟屏幕中匹配

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