[R] PixelSearch

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Sirius
Niveau 1
Niveau 1
Messages : 9
Enregistré le : sam. 11 juil. 2009 02:11
Status : Hors ligne

[R] PixelSearch

#1

Message par Sirius »

Comment faire ce genre de script;
Si je demande de chercher la couleur du pixel et qu'il la trouve, je veux qu'il fasse tel et tel actions. Mais s'il ne la trouve pas il ferra tel et tel actions.

Merci
Modifié en dernier par Sirius le dim. 26 juil. 2009 05:38, modifié 3 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [...]PixelSearch

#2

Message par Iste »

La question a été abondamment abordée sur le forum

Code : Tout sélectionner

$Pos = PixelSearch(left,top,right,bottom,color)
If @error Then
    ;le code si la couleur n'est pas trouvée
Else
    ;le code si la couelur est trouvée
EndIf
Signez ici
Sirius
Niveau 1
Niveau 1
Messages : 9
Enregistré le : sam. 11 juil. 2009 02:11
Status : Hors ligne

Re: [...] PixelSearch

#3

Message par Sirius »

J'ai un problème dans cette ligne;
$Pos = PixelSearch(551, 556, 2, 2, 0xDEC972)

Le problème c'est que J'ai entré les coordonné (551, 556) et la grandeur du pixel colorer (2''hauteur'', 2''côter'') mais il ne trouve pas le pixel (0xDEC972). C'est quoi le problème?
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] PixelSearch

#4

Message par SagePourpre »

Sirius a écrit :J'ai un problème dans cette ligne;
$Pos = PixelSearch(551, 556, 2, 2, 0xDEC972)

Le problème c'est que J'ai entré les coordonné (551, 556) et la grandeur du pixel colorer (2''hauteur'', 2''côter'') mais il ne trouve pas le pixel (0xDEC972). C'est quoi le problème?
Si tu regardais dans l'aide, la fonction y est clairement décrite...
Mais outre ça, lis la réponse de Iste.

$Pos = PixelSearch(left,top,right,bottom,color)

Il faut que tu définisses le rectangle dans lequel autoit va rechercher ton pixel.
Présentement, tu dis à autoit de rechercher le pixel 0xDEC972
dans la zone située entre
Gauche : 551
Droit : 2
Haut : 556
Bas : 2


Ce qui en tant que tel, est déjà une erreur.
Les coordonnées Gauche et Haut devrait être plus petites que Droit et Bas.
PixelSearch($Gauche,$Haut,$Droit,$Bas)

La grosseur n'est pas a spécifier ici, puisque ce que tu recherches (un pixel, par définition de la fonction) a déjà une taille définie.
Tu dois donc spécifier les coordonnées des 4 coins dans lequel la fonction cherchera, pixel par pixel, celui que tu recherches.

En regardant l'aide d'autoit, tu as même les indications supplémentaire pour chercher les variations de ta couleur ainsi que de chercher par zone de
2 pixels et plus pour accélérer la recherche.

Voilà !
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Sirius
Niveau 1
Niveau 1
Messages : 9
Enregistré le : sam. 11 juil. 2009 02:11
Status : Hors ligne

Re: [...] PixelSearch

#5

Message par Sirius »

Merci. J'ai trouvé mon erreur.
Mais est-il possible qu'il y ait une commande pour dire que s'il a trouver le pixel demander il fait ce quon lui dit, mais a tout moment (aléatoirement ) s'il se passait quoi que ce soit pourrait-on faire en sorte qua tout moment la commande s'interomp pour un e autre sorte de commande?
Grodurt
Niveau 2
Niveau 2
Messages : 17
Enregistré le : lun. 15 juin 2009 23:19
Status : Hors ligne

Re: [...] PixelSearch

#6

Message par Grodurt »

Je peux avoir le lien pour l'aide pixelsearch plz ?
Merci.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] PixelSearch

#7

Message par Tlem »

F1
:evil:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Sirius
Niveau 1
Niveau 1
Messages : 9
Enregistré le : sam. 11 juil. 2009 02:11
Status : Hors ligne

Re: [...] PixelSearch

#8

Message par Sirius »

Sirius a écrit :Merci. J'ai trouvé mon erreur.
Mais est-il possible qu'il y ait une commande pour dire que s'il a trouver le pixel demander il fait ce quon lui dit, mais a tout moment (aléatoirement ) s'il se passait quoi que ce soit pourrait-on faire en sorte qua tout moment la commande s'interomp pour un e autre sorte de commande?
Mais est-ce possible cette manipulation?
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] PixelSearch

#9

Message par SagePourpre »

Sirius a écrit :
Sirius a écrit :Merci. J'ai trouvé mon erreur.
Mais est-il possible qu'il y ait une commande pour dire que s'il a trouver le pixel demander il fait ce quon lui dit, mais a tout moment (aléatoirement ) s'il se passait quoi que ce soit pourrait-on faire en sorte qua tout moment la commande s'interomp pour un e autre sorte de commande?
Mais est-ce possible cette manipulation?

Directement, je ne crois pas ...


Le seul moyen que je vois serait de faire pleins de pixel search à l'aide d'une boucle
en posant une condition après chaque pixelsearch pour vérifier si un bouton a été pressé, sinon de
procéder au prochain pixelsearch.

Par exemple, si la zone à couvrir est de L:500px par H:900 px,
en faisant 9 pixelsearch couvrant toute la largeur à chaque fois mais seulement 100 pixel à la verticale. (dans une boucle)


Personnellement, la fonction PixelSearch est instantanée sur mon ordinateur, et ce même si je couvre tous l'écran...

Un autre moyen qui pourrait faire l'affaire (et beaucoup plus simple) serait de mettre la variable step à un chiffre plus grand que 1
(l'opération va être grandement accélérée du coup, plus besoin d'interrompre le script puisqu'il devient presque instantané.)

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

ex:
PixelSearch (0,0,1400,900,0XFF0000,1,5)


shade-variation [optional] A number between 0 and 255 to indicate the allowed number of shades of variation of the red, green, and blue components of the colour. Default is 0 (exact match).

step [optional] Instead of searching each pixel use a value larger than 1 to skip pixels (for speed). E.g. A value of 2 will only check every other pixel. Default is 1.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Sirius
Niveau 1
Niveau 1
Messages : 9
Enregistré le : sam. 11 juil. 2009 02:11
Status : Hors ligne

Re: [...] PixelSearch

#10

Message par Sirius »

Grandement merci à tous.
Répondre