Funktionreferenz


PixelSearch

Beschreibung anzeigen in

Durchsucht ein Rechteck von Pixeln nach einer vorgegebenen Farbe.

PixelSearch ( left, top, right, bottom, color [, shade-variation = 0 [, step = 1 [, hwnd]]] )

Parameter

left linke Koordinate des Rechtecks.
top obere Koordinate des Rechtecks.
right rechte Koordinate des Rechtecks.
bottom untere Koordinate des Rechtecks.
color Farbwert des zu suchenden Pixels (in dezimal oder hex).
shade-variation [optional] Eine Zahl zwischen 0 und 255, die die Anzahl erlaubter Schattierungsschwankungen der Rot-, Grün- und Blaukomponenten festlegt. Standard ist 0 (exakte Übereinstimmung).
step [optional] Anstatt jedes Pixel in die Prüfsumme einzubeziehen, kann man einen Wert größer als 1 verwenden um Pixel zu überspringen (schneller). z.B. wird ein Wert von 2 nur jedes zweite Pixel prüfen. Standard ist 1. Es wird nicht empfohlen, einen größeren Wert als 1 zu verwenden.
hwnd [optional] Handle des zu durchsuchenden Fensters. Standard ist der Desktop. Siehe Bemerkungen.

Rückgabewert

Erfolg: ein 2-Element-Array der Pixelkoordinaten. (Array[0] = x, Array[1] = y)
Fehler: Setzt @error auf 1, wenn die Farbe nicht gefunden wurde.

Bemerkungen

Die Suchrichtung variiert wie folgt:
    Links nach Rechts - links < rechts
    rechts nach Links - rechts < links
    Oben nach unten - oben < unten
    Unten nach oben - unten < oben
Das Ändern der Suchrichtung kann eine sinnvolle Optimierung sein falls die zu suchende Farbe hauptsächlich in einem festgelegten Bereich des Suchbereichs auftaucht. Durch das starten der Suche in diesen Bereich wird die Suche schneller abgeschlossen sein.

Es ist zu bedenken, dass ein typisches 1024x768 Bild 786432 Pixel beinhaltet. Obwohl PixelSearch() optimiert wurde, erhöht das Einschränken des Suchbereichs die Geschwindigkeit erheblich.

Wenn PixelCoordMode auf den Standardmodus SCREEN (1) eingestellt ist, wird der Parameter hwnd ignoriert. Nur wenn PixelCoordMode auf WINDOW (0) oder CLIENT (2) eingestellt ist, wird er beachtet.

Verwandte Funktionen

PixelChecksum, PixelCoordMode (Option), PixelGetColor

Beispiel

#include <MsgBoxConstants.au3>

; Findet ein rotes Pixel im Rechteck 0,0-200,300.
Local $aCoord = PixelSearch(0, 0, 200, 300, 0xFF0000)
If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "Die Koordinaten X und Y lauten:", $aCoord[0] & "," & $aCoord[1])
EndIf


; Findet ein rotes Pixel oder ein Pixel mit 100 Abstufungen (Variationen) von reinem Rot.
$aCoord = PixelSearch(0, 0, 200, 300, 0xFF0000, 100)
If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "Die Koordinaten X und Y lauten:", $aCoord[0] & "," & $aCoord[1])
EndIf