/*
马赛克滑块本地识别原理:
对比前后2次的背景色
没必要整个验证码图的颜色都取下来
只需要间隔一定范围,比如滑块是100,
那么Y坐标间隔90就涵盖了那个滑块
*/
Function 获取背景(s)
'这个函数是获取背景颜色
KeepCapture
'截图到内存增加识别速度
Dim i,j,mx,my,temp,tbx()
mx=s[3]-s[1]:my=s[4]-s[2]:temp=""
For i = 0 To mx
For j = s[2] To s[4] step 30
temp = temp & GetPixelColor(s[1] + i, j) & "-"
Next
tbx[i + 1] = Split(temp, "-")
temp = ""
Next
获取背景 = tbx
ReleaseCapture
'释放内存图片
End Function
Function 获取位置(s)
Dim A,B,i,j,maxa,maxb
Do
A = 获取背景(s)
'背景颜色1
Delay 500
B = 获取背景(s)
'背景颜色2
If B[1][1] = A[1][1] Then
'为了防止整个背景色突然改变,所以用了一个不会变色的坐标点判断
Exit Do
End If
'TracePrint "010101"
Loop
maxa = UBOUND(A) + 1
maxb = UBOUND(A[1])
'对比背景颜色1,背景颜色2
For i = 1 To maxa
For j = 1 To maxb
If A[j] <> B[j] Then
获取位置 = s[1] + i - 1
'如果有颜色不一样的就返回
Exit Function
End If
Next
Next
获取位置 = 500
'若上述代码无法识别,则返回默认值.
End Function
按键精灵移动端系列一滑块本地识别源码参考例子
最新推荐文章于 2024-07-04 11:11:39 发布