获取所有像素位置

时间:2016-12-31 00:15:15

标签: pixel autoit

我使用PixelSearch函数,我知道如何找到符合我标准的1 像素,但问题是我想找到所有像素具体的颜色并将其添加到数组,因此我可以将其用于 rand 并点击它。

源代码:

Local $aCoord = PixelSearch(0, 0, $clientSize[0], $clientSize[1], 0x09126C, 10, 1, $hWnd)
If Not @error Then
    ; add to array and search next
Else
    GUICtrlSetData($someLabel, "Not Found")
EndIf

我想找到 ALL PIXELS ,而不是一个“第一个”。我怎样才能做到这一点?我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

这个不能使用PixelSearch完成,因为它会在找到匹配的像素时停止执行。

可以通过在您的区域上循环PixelGetColor来完成。类似的东西:

For $x = 0 To $clientSize[0] Step 1
   For $y = 0 To $clientSize[1] Step 1
      If PixelGetColor($x,$y,$hWnd) = 0x09126C Then
         ;Add $x and $y to Array using _ArrayAdd() (or whatever you prefer)
      EndIf
   Next
Next

这可能比PixelSearch感觉慢,因为它现在必须扫描整个区域,而不是在第一场比赛时停止,但它不应该,因为PixelSearch基于相同的原则