当前位置:首页 > 分享 > 正文内容

为什么按键精灵手机版找图找色速度慢?

转载2020-03-05分享

刚触按键精灵手机版的作者可能会发觉找图、找色的速度效率与按键精灵电脑版相比来说慢了一些,这是由于目前安卓系统手机机制与电脑上找图、找色有所区别,获取图像时不可避免会存在短暂延时,每次大约消耗100毫秒左右的时间,所以大家在写类似循环找图、找色时需注意添加适当的延时。

提高找图、找色效率的有以下3种方式:

1、善于利用按键手机版新增KeepCapture与ReleaseCapture函数。
KeepCapture:截取当前图片并保存在缓存中,并让接下来的所有找图、找色都在这张缓存图中查找。
ReleaseCapture:清除缓存中图片数据,之后的所有找图、找色函数都恢复获取最新手机画面进行查找。

2、在范围找图时,附件中的图片尽可能截取尺寸恰当。
附件中的图片尺寸要尽可能的小,在保证所需判断图像信息内,现在手机分辨率都很高,一张看上去很小的图,在电脑上看原始尺寸其实是很大的,查找越大图片耗时越长反之越短。

3、尽可能精确找图、找色的查找范围。
可以事先通过按键抓抓辅助工具确认一下图色的大致屏幕范围,越小范围查找图色耗时越短,反之越长。

按键精灵找图找色

下面我们举一个常见的循环找图、找色判断当前状态的脚本例子来说明一下如何提高速度

普通找图、找色用法

Dim rColor,intX,intY
Do
    //范围查找图片1
    FindPic  0,0,1080,1920,"Attachment:图片1.png","000000",0,0.9,intX,intY
    //如果没有找到,intX和intY的值都会被置为-1
    If intX > 0  And intY > 0 Then
        TracePrint  "找到图片1"
     End If
    //范围查找图片2
    FindPic 0,0,1080,1920,"Attachment:图片2.png","000000",0,0.9,intX,intY
    //如果没有找到,intX和intY的值都会被置为-1
    If intX > 0  And intY > 0 Then
        TracePrint  "找到图片2"
         Exit Do
    End If
    //范围找色颜色0000FF(红色)是否存在
     FindColor 0, 0, 0, 0, "0000FF", 0, 0.9, intX, intY
    //如果没有找到,intX和intY的值都会被置为-1
    If intX > -1  And intY > -1 Then
        TracePrint  "找色红色"
    End If
    //获取坐标点(100,  200)的颜色值
     rColor = GetPixelColor(100, 200)
    //对比获取颜色值是否为白色
    If rColor="FFFFFF" Then
        TracePrint  "是白色"
    End  If
Loop

说明:
1、每次执行找图、找色命令则需从手机屏幕中获取最新图像信息存于内存用于信息匹配,每次耗时约100毫秒左右(与手机CPU配置与执行效率有关)。
2、以上例子是两次范围找图、一次范围找色与一次固定点取色对比判断,共4次。
3、大致计算下以上例子在获取图像信息步骤大约花费400毫秒时间,等于说每次循环至少耗时400毫秒左右。

优化找图、找色用法

Dim rColor,intX,intY
Do
    //保存当前画面图像信息于内存中,之后所有找图、找色函数将在此图中查找
    KeepCapture
     //范围查找图片1
     FindPic  0,0,1080,1920,"Attachment:图片1.png",0,0.9,intX,intY
     //如果没有找到,intX和intY的值都会被置为-1
    If intX > 0  And intY > 0 Then
        TracePrint  "找到图片1"
     End If
    //范围查找图片2
    FindPic 0,0,1080,1920,"Attachment:图片2.png",0,0.9,intX,intY
     //如果没有找到,intX和intY的值都会被置为-1
    If intX > 0  And intY > 0 Then
        TracePrint  "找到图片2"
         Exit Do
    End If
    //范围找色颜色0000FF(红色)是否存在
     FindColor 0, 0, 0, 0, "0000FF", 0, 0.9, intX, intY
     //如果没有找到,intX和intY的值都会被置为-1
    If intX > -1  And intY > -1 Then
        TracePrint  "找色红色"
    End If
    //获取坐标点(100,  200)的颜色值
     rColor = GetPixelColor(100, 200)
    //对比获取颜色值是否为白色
    If rColor="FFFFFF" Then
        TracePrint  "是白色"
    End  If
     //释放之前保存在内存中的图像信息,之后所有找图、找色将恢复正常获取图像判断方式
    ReleaseCapture
Loop

说明:
1、以上例子对比普通用法,只是在循环头尾加入了KeepCapture和ReleaseCapture函数。
2、在执行KeepCapture函数后,之后执行的找图、找色函数都将直接从以上保存的图像信息中进行查找,无需每次耗时100毫秒左右时间重新从屏幕中获取。
3、以此计算,每次循环等于就消耗开头执行KeepCapture函数后的100毫秒左右,提升效率显而易见,后面无论多少次的找图、找色函数都不会额外消耗获取图像信息的时间。
4、关于ReleaseCapture函数在此特别说明,如需恢复正常找图、找色方式,可执行释放,否则可直接执行KeepCapture函数进行后续查找。

文章来源于:按键手机版命令大全

原标题:为何感觉找图、找色速度较慢?

猫总的QQ/微信:957555767

标签: 按键精灵

相关文章

值得学习的技能有很多,最应该掌握的是编程

《利用Python进行数据分析》由 Python pandas项目创始人 Wes McKinney 亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面具体细节与基本要点。这本书非常...

专注Python模块的速查工具书

《Python速查手册·模块卷》从实用角度出发,全面细致地讲解Python中提供的常用基本内置模块。全书分为文本处理、数字与数学、日期与时间、文件与目录、文件格式和系统服务6大部分,包括string、...

Python高手

《Python 项目开发案例集锦》一书从入门学习者的角度出发,开发了 8 个开发方向、23 个项目,循序渐进地让读者在实践中学习,在实践中提升实际开发能力。全书共分 8 篇:控制台程序、小游戏、实用小...

想学习Python?有这本书就够了!

《Python编程:从入门到实践》是一本针对所有层次的Python读者而作的Python入门书。全书分两部分:首部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy和...

用Kivy开发App

《Python Kivy(App开发)从入门到实践》一书从学习者的切实需求出发,为不同的用户人群精心打造了一本实用的学习图书。本书不仅运用了简洁的语言,为读者铺垫编程基础;还提供了丰富的实例,让读者可...

跟着Python编程锦囊,一起探索精彩的Python编程世界

 《Python编程锦囊》从开发中经常遇到的实际问题和开发中必备的关键技能、难点技术出发。对开发中经常遇到的实际问题和需要掌握的实用技能进行了系统的梳理、总结和提炼,编写了150个适用于Py...