Functions > GraphicSound >


PixelSearch

Recherche dans un rectangle de pixels, un pixel de couleur donn�e.

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

Param�tres

left Coordonn�e X du coin sup�rieur gauche du rectangle.
top Coordonn�e Y du coin sup�rieur gauche du rectangle.
right Coordonn�e X du coin inf�rieur droit du rectangle.
bottom Coordonn�e Y du coin inf�rieur droit du rectangle.
color Valeur de la couleur de pixel � rechercher (en d�cimal ou hexad�cimal).
shade-variation [optionnel] Un nombre entre 0 et 255 qui indique la variation de nuance autoris�e pour les composantes rouge, verte et bleue de la couleur. Par d�faut 0 (correspondance exacte).
step [optionnel] Au lieu de chercher chaque pixel, utilisez une valeur sup�rieure � 1 pour sauter des pixels (pour augmenter la vitesse). Par exemple : Une valeur de 2 va seulement v�rifier un pixel sur deux. Par d�faut c'est 1. Il n'est pas recommand� d'utiliser une valeur du pas sup�rieure � 1.
hwnd [optionnel] Handle de la fen�tre � utiliser. Par d�faut, la fen�tre du bureau.

Valeur de retour

Succ�s: Retourne un tableau � deux �l�ments, des coordonn�es du pixel.
    [0] = Coordonn�e X.
    [1] = Coordonn�e Y.
�chec: D�finit @error = 1 si la couleur n'est pas trouv�e.

Remarques

La direction de la recherche varie de la fa�on suivante:
    De gauche � droite si left < right
    De droite � gauche si right < left
    De haut en bas si top < bottom
    De bas en haut si bottom < top

Changer la direction de recherche peut �tre une optimisation utile si la couleur recherch�e appara�t fr�quemment dans une zone sp�cifique de la zone de recherche. La recherche sera r�duite, si elle d�bute dans la zone la plus courante.

N'oubliez pas qu'un affichage en 1024 x 768 contient 786432 pixels. Bien que PixelSearch() soit optimis�, la r�duction de la zone de recherche permet d'acc�l�rer le r�sultat.

En relation

PixelChecksum, PixelCoordMode (Option), PixelGetColor

Exemple

#include <MsgBoxConstants.au3>

; Trouve un pixel rouge pur dans la zone (0,0)-(20,300)
Local $aCoord = PixelSearch(0, 0, 20, 300, 0xFF0000)
If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "", "X et Y sont: " & $aCoord[0] & "," & $aCoord[1])
EndIf

; Trouve un pixel rouge pur ou un pixel rouge dans une variation de 10 coloris de rouge
$aCoord = PixelSearch(0, 0, 20, 300, 0xFF0000, 10)
If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "", "X et Y sont: " & $aCoord[0] & "," & $aCoord[1])
EndIf