本帖最后由 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
|