By using this site you agree to the use of cookies.

Learn more

Share via:

AutoIt PixelSearch Function

The PixelSearch function can be used to search for colors on the screen.

Edited: 2017-03-24 17:00

The AutoIt PixelSearch Function is used to search a region of the screen for a pixel with a given color value, or a variation thereof.

PixelSearch either returns a two element array containing the coordinates of the pixel, or sets @error to 1 if color is not found.

PixelSearch is generally pretty fast, but if you think its to slow, narrowing the search area may help increase the performance.

Possible Values

pixelsLeft coordinate of rectangle.
pixelsTop coordinate of rectangle.
pixelsRight coordinate of rectangle.
pixelsBottom coordinate of rectangle.
colorColour value of pixel to find (in decimal or hex).
shade-variation [optional]A value between 0-255. This parameter allows to search for variations of the color provided. If provided, the number will search for a variation within both the Red, Geen, and Blue values of the color.
step [optional]A value larger then 1 will skip pixels, instead of searching each pixel. Effects the speed of the search.
hwnd [optional]Window handle.

PixelSearch Examples

Looks for a pure Red Pixel, in the region 0,0 (Start) - 100,200 (end).

$coord = PixelSearch(0, 0, 100, 200, 0xFF0000)
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf

If you want to search for variations, then simply add the next parameter.

$coord = PixelSearch(0, 0, 100, 200, 0xFF0000, 5)
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf

To click the returned coordinates, use something like the below.

$coord = PixelSearch(0, 0, 100, 200, 0xFF0000, 5)
If Not @error Then
    MouseClick("primary", $coord[0], $coord[1], 1, 0)
EndIf

If you want to click somewhere near where the color was found, say above or below, than simply add the offset to the coordinates. Just be careful that you don't attempt to click outside the screen. The below will click 15 pixels above the located color:

$coord = PixelSearch(0, 15, 100, 200, 0xFF0000)
If Not @error Then
  MouseClick("primary", $coord[0], $coord[1]-15, 1)
EndIf

Links

  1. PixelSearch - autoitscript.com