图色函数
说明
设置
image.useOpencvMat 初始化参数
- 切换图片存储模式为opencv的mat格式
- 适合EC iOS 7.11.0+
- 切换后抓图、读取图片、找图、找色等都会切换到mat格式,速度更快内存更少
- 实测内存减少50%-80%,CPU减少20%-30%,速度提升100%-200%
- 如果让图片格式切换请参考 imageToMatFormat和matToImageFormat两个函数
- @param use 1 是 0 否
- @return
{boolean|*}
true 成功 false 失败
function main() {
let r = image.useOpencvMat(1);
logd(r)
//剩下的代码和之前一样 找色 找图等操作
}
main();
image.setInitParam 初始化参数
- 设置图色模块初始化参数,设置找图超时时间
- @param params 超时时间,单位是毫秒
function main() {
//action_timeout 找图找色动作的最大时间,超时后会自动返回避免阻塞
image.setInitParam({"action_timeout": 1000});
image.setInitParam(
{
"action_timeout": 1000,
"auto_click_request_dialog": false
}
);
}
main();
image.setFindColorImageMode 设置找色的算法模式
- 设置找色找图的算法模式
- 适合EC iOS 6.11.0+
- @param type 1 代表老的查找算法,2代表新的查找算法
- @return boolean
function main() {
image.setFindColorImageMode(1);
}
main();
流式截图
image.startPreCapScreen 预截图的函数
- 预截图的函数,后台会开启线程循环截图
- 可以提高截图效率
- 适合EC iOS USB版本 6.18.0+
- @param types:
- 10 代表PNG格式,没有任何压缩,不开自动化也 能截图
- 1 代表截图 jpg格式的方式1
- 2 代表截图 jpg格式方式2
- 3 代表png格式,png不支持质量参数 ,根据自己机器情况调用
- @param quality: 图片质量,type=1的时候,支持 1, 50, 100,三种不同的质量标准
- 当type =2 的时候,支持1-100图片质量
- @param delay 循环预先截图的间隔时间,单位是毫秒
- @return boolean true代表成功 false代表失败
function main() {
logd("isServiceOk " + isServiceOk());
startEnv()
logd("isServiceOk " + isServiceOk());
let start = image.startPreCapScreen("1", 50, 20);
logd("startPreCapScreen {}", start)
for (let i = 0; i < 10; i++) {
sleep(1000);
console.time("1")
let img = image.captureScreenStream()
logd("img {} time: {}", img, console.timeEnd("1"))
if (img) {
image.saveTo(img, "a.png");
}
image.recycle(img)
}
image.stopScreenStream()
}
main();
image.startScreenStream 开启流式截图
- 初始化一个图像流的截屏模式,这个速度比其他的方式要快
- @return 布尔型 true 代表成功 false代表失败
function main() {
logd("isServiceOk " + isServiceOk());
startEnv()
logd("isServiceOk " + isServiceOk());
let cap = image.startScreenStream()
logd("截图: " + cap)
}
main();
image.stopScreenStream 停止流式截图
- 停止图像流
- @return 布尔型 true 代表成功 false代表失败
function main() {
logd("isServiceOk " + isServiceOk());
startEnv()
logd("isServiceOk " + isServiceOk());
let cap = image.stopScreenStream()
logd("截图: " + cap)
}
main();
image.isScreenStreamOk 流式截图是否正常
- 流式截图是否正常
- @return 布尔型 true 代表成功 false代表失败
function testScreen() {
let start = image.startScreenStream();
logd("start {}", start)
setAgentSetting({"screenStreamQuality": 100})
thread.execAsync(function () {
while (true) {
sleep(2000)
// 服务不在的情况下
let serviceOk = isServiceOk();
if (!serviceOk) {
serviceOk = startEnv();
}
if (!serviceOk) {
// 适当加上重置USB链接
resetUsbConn();
continue
}
if (image.isScreenStreamOk()) {
continue
}
// 判断截屏是否成
logd("重启流式截图状态")
let start = image.startScreenStream()
logd("startScreenStream :{}", start)
}
})
while (true) {
sleep(1000);
console.time("1")
let img = image.captureScreenStream()
logd("img {} time: {}", img, console.timeEnd("1"))
if (img) {
image.saveTo(img, "a.png");
}
image.recycle(img)
}
}
function main() {
logd("isServiceOk " + isServiceOk());
startEnv()
// 带守护的 流式截图,可以设置投屏质量
testScreen()
}
main();
image.captureScreenStream 图像流
- 从图像流中获取一张图片
- @return AutoImage对象或者null
function main() {
logd("isServiceOk " + isServiceOk());
startEnv()
logd("isServiceOk " + isServiceOk());
for (let i = 0; i < 10; i++) {
let cap = image.captureScreenStream()
logd("截图数据: " + cap)
sleep(1000)
//图片要回收
image.recycle(cap)
}
}
main();