找回密码
 加入
搜索
查看: 1340|回复: 13

[图形处理] 调用大漠插件区域找色FindColor函数的用法颜色格式怎样用?

[复制链接]
发表于 2023-10-9 18:39:03 | 显示全部楼层 |阅读模式
本帖最后由 hlzxcjx 于 2023-10-9 22:17 编辑

au3的找色函数PixelGetColor 效率太低,而区域找色PixelSearch经常定位不准,于是尝试用大漠插件,发现大漠插件GetColor函数与au3一样效率低,再尝试大漠插件的区域找色函数FindColor,却不懂其颜色格式"RRGGBB-DRDGDB"的用法,望各位赐教!
大漠插件:
#AutoIt3Wrapper_UseX64=n
RunWait(@ComSpec & ' /c regsvr32 /s ' & 'dm.dll', '', @SW_HIDE)
Global $DM = ObjCreate("dm.dmsoft")
If IsObj($DM) Then
        $ver = $DM.Ver()
        ConsoleWrite('当前大漠插件版本:' & $ver & @CRLF)
Else
        MsgBox(64, '提示:', '注册大漠插件失败!!!')
        Exit
EndIf

;---------------------------------------------------这个与au3同样慢!
;for $x=0 to 100
;$color = $DM.GetColor($x,600)
;MouseMove($x,600,0)
;Next
;MsgBox(0,0,$color)
;---------------------------------------------------这个与au3同样慢!

Global $intX, $intY
$var = $DM.FindColor(@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5, @DesktopHeight / 2, 0, 1.0, 1, $intX, $intY);查找区域内的黑色,黑色的颜色值为 0 ,这行代码有误!求更正!
;MouseMove($intX,$intY, 0)
MsgBox(0, 0, "x坐标:" & $intX & "  y坐标:" & $intY)
$var = $DM.FindColor(@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5, @DesktopHeight / 2, 0, 0.1, 1, $intX, $intY);查找区域内的黑色,黑色的颜色值为 0 ,这行代码有误!求更正!


函数简介:
查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB",注意,和按键的颜色格式相反
函数原型:

long FindColor(x1, y1, x2, y2, color, sim, dir,intX,intY)

参数定义:

x1:
区域的左上X坐标
y1:区域的左上Y坐标
x2:区域的右下X坐标
y2:区域的右下Y坐标
color:颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020"
sim:相似度,取值范围0.1-1.0
dir:查找方向 0: 从左到右,从上到下
             1: 从左到右,从下到上
             2: 从右到左,从上到下
             3: 从右到左,从下到上
             4:从中心往外查找
             5: 从上到下,从左到右
             6: 从上到下,从右到左
             7: 从下到上,从左到右
             8: 从下到上,从右到左
intX:返回X坐标
intY:返回Y坐标

返回值:

0:
没找到
1:找到

示例:

dm_ret = dm.FindColor(0,0,2000,2000,"123456-000000|aabbcc-030303|ddeeff-202020",1.0,0,intX,intY)
If intX >= 0 and intY >= 0 Then
    MessageBox "
找到"
End If


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-10-9 20:23:20 | 显示全部楼层
搜到的 b站/video/BV1ox4y1R7sX
发表于 2023-10-9 21:27:06 | 显示全部楼层
黑色的颜色值改为字符串 '000000-000000' 试试
 楼主| 发表于 2023-10-9 21:55:26 | 显示全部楼层
afan 发表于 2023-10-9 21:27
黑色的颜色值改为字符串 '000000-000000' 试试

也不行!总是定位在(0,0)处!但设置的搜索范围不包括(0,0),难道是变量$intX, $intY参数的写法不对?
发表于 2023-10-9 22:05:51 | 显示全部楼层
hlzxcjx 发表于 2023-10-9 21:55
也不行!总是定位在(0,0)处!但设置的搜索范围不包括(0,0),难道是变量$intX, $intY参数的写法不对 ...

@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5  估计这些不行,要用整数,如Int 或 Round(@DesktopHeight / 3)
 楼主| 发表于 2023-10-9 22:15:02 | 显示全部楼层
afan 发表于 2023-10-9 22:05
@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5  估计这些不行,要用整数,如Int 或 Rou ...

改为:
$var = $DM.FindColor(10, 10, 500 , 500 ,  '000000-000000' , 1.0, 1, $intX, $intY)
也不行!
发表于 2023-10-11 13:02:13 | 显示全部楼层
au3和按键精灵测试 都是要600多毫秒


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-10-11 17:18:48 | 显示全部楼层
格式对应RGB-偏色,不要用眼睛去判断,打开你的测试工具点选来生成,相似度别上来就是1.0,根据平时使用经验设在0.8左右,还有最最重要的dpi要注意
 楼主| 发表于 2023-10-11 22:38:38 | 显示全部楼层
3131210 发表于 2023-10-11 13:02
au3和按键精灵测试 都是要600多毫秒

我的win11新系统测试约为1670毫秒!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2023-10-11 23:12:34 | 显示全部楼层
繁星 发表于 2023-10-11 17:18
格式对应RGB-偏色,不要用眼睛去判断,打开你的测试工具点选来生成,相似度别上来就是1.0,根据平时使用经 ...

多谢指教!
 楼主| 发表于 2023-10-11 23:29:49 | 显示全部楼层
换了au3版本,原来的代码没问题了!原来用的是autoit3_3.3.6.1,换成AutoIt v3.3.16.1后没出错了!只是AutoIt v3.3.16.1刚下载就被360查杀了!不过PixelGetColor还是慢,PixelSearch定位仍不准(偶尔不准),大漠的区域找色准确。测试PixelSearch定位不准确的是全屏幕从右往左找黑色时出现的,找其他色貌似不会,从左往右找任何色都不会。从右往左时,起点超过屏幕的3/4就定位不准。

大家可测试一下这个函数:
Sleep(3000)
$var = PixelSearch(@DesktopWidth * 4 / 5, @DesktopHeight / 3, @DesktopWidth / 5, @DesktopHeight * 2 / 3, 0)
MouseMove($var[0], $var[1], 0)
MsgBox(0, 0, "ok")
发表于 2023-10-15 05:55:53 | 显示全部楼层
hlzxcjx 发表于 2023-10-11 23:29
换了au3版本,原来的代码没问题了!原来用的是autoit3_3.3.6.1,换成AutoIt v3.3.16.1后没出错了!只是Auto ...

把DPI缩放调到100%试试。。
 楼主| 发表于 2023-10-15 19:27:44 | 显示全部楼层
fybhwsx 发表于 2023-10-15 05:55
把DPI缩放调到100%试试。。

一样!这个应该与DPI无关!
发表于 2023-12-6 17:45:33 | 显示全部楼层
大神们经验,小本本记下。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 12:15 , Processed in 0.094012 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表