Page 1 sur 1
[R] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 17:55
par Fabiolito
Bonjour , c'est quelque chose de dur a expliquer que je vais vous demander d'"élucider" mais bon , j’essaye quand même !
Donc , on m'a gentiment fait ce script ( merci ) :
Code : Tout sélectionner
#include <ScreenCapture.au3 >
#include <Misc.au3>
_MouseTrap(@DesktopWidth,@DesktopHeight);Bloque la souris en bas à droite (pour qu'elle ne soit pas sur le ScreenCapture)
_ScreenCapture_Capture( @MyDocumentsDir & "\GDIPlus_Image1.bmp" );Capture l'écran
_MouseTrap();Débloque la souris
SplashImageOn("Image",@MyDocumentsDir & "\GDIPlus_Image1.bmp",@DesktopWidth,@DesktopHeight,0,0,1);Affiche l'image
Donc voila , je continue , imaginons que pour chaque pixels de l'écran de mon ordinateur j'ai fait : Si le pixel est rouge alors cliquer , sinon continuer .
Ce que je voudrais c'est que l'utilisateur de mon logiciel puisse sur l'image sélectionner une zone et que mon logiciel continue à
faire "Si le pixel est rouge alors cliquer , sinon continuer ." mais uniquement dans la zone sélectionnée par l'utilisateur .
Voila , j'espère que vous avez compris :s
Merci d'avance .
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 17:59
par TT22
Fabiolito a écrit :Donc , on m'a gentiment fait ce script ( merci ) :
Mais de rien.
Bon sinon pour ton problème, ça servirait à quoi de cliquer sur les pixels rouges ?
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:04
par Fabiolito
Ben à une multitude de chose ! Le pixel rouge n'est qu'un exemple , ce que je veux c'est que l'utilisateur puisse réduire la zone de recherche pour éviter que le logiciel clique sur quelque chose qui n'a aucun rapport !
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:09
par TT22
En gros, ça sert à rechercher des pixels sur une zone prédéfinie par l'utilisateur ?
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:10
par Fabiolito
Voila , c'est ça .
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:18
par TT22
Je pense que ce qu'il te faut, c'est "PixelSearch"
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:23
par Fabiolito
Oui j'ai fait ça pour tout les pixels de mon écran , mais le problème c'est que si il y a quelque chose de la même couleur que le pixel que je cherche et alors y'a tout qui va raté :s . C'est pour ça qu'il faudrait que l'utilisateur sélectionne la zone dans laquelle il y a le plus de chance que le pixel se trouve .
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:38
par TT22
Tien, voilà ce qu'il te faut :
► Afficher le texte
Code : Tout sélectionner
$pixel1 = PixelSearch( 50, 30, 200, 300, 0xFF0000 ); Cherche un pixel rouge dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel1[0] , $pixel1[1]); ...clique dessus.
EndIf
$pixel2 = PixelSearch( 50, 30, 200, 300, 0xFF0000, 10 ); Cherche un pixel rouge (avec une marge d'erreur de 10) dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel2[0] , $pixel2[1]); ...clique dessus.
EndIf
Exit; Quitte le script.
Après tu pourra peut-être rajouter une GUI pour sélectionner le carré en le dessinant sur l'image (ça je sais pas faire) et que l'on puisse choisir la couleur du pixel.
Donc, bonne chance

Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:49
par Fabiolito
Ca m'aide déjà bien ça ! Quand tu dis une marge d'erreur de 10 , c'est à dire au 10 pixels près ?
Merci pour ton script :p
Et sinon , il y a pas un moyen pour que l'utilisateur dessine un carré sur ma photo et qu'on lui donne sa taille et sa position ?
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:55
par TT22
Non, c'est à dire que le code du rouge c'est : 0xFF0000 , avec une marge de 10, il va accepter tout ce qu'il y à entre 0xFF0000 et 0xFF0010
Pour les codes,
va voir ici
T'a juste à enlever le # et à mettre 0x devant.
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:55
par Fabiolito
Aok , et sinon ya une option pour ce que j'ai demandé ? Au 10pixels près ?
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 18:59
par TT22
Fabiolito a écrit :Et sinon , il y a pas un moyen pour que l'utilisateur dessine un carré sur ma photo et qu'on lui donne sa taille et sa position ?
Y'en a surement un, mais c'est pas à moi qu'il faut demander

.
Sinon pour ton truc "Au 10pixels près" je comprend pas très bien, ça veut dire cliquer sur les pixels autour dans un rayon de 10 pixels ?
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 19:03
par Fabiolito
Oui , comme je suis fainéant ( x] ) je vais pas faire tous les pixels , j'aimerai plutôt faire ça par zone de pixel .
Par exemple au lieu de chercher uniquement sur le pixel 600,300 le pixel rouge j'aimerai qu'il le fasse en un seul coup des pixel 600,300 aux pixels 610,300 .
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 19:18
par TT22
Donc quelque chose comme-ça :
Code : Tout sélectionner
$pixel1 = PixelSearch( 50, 30, 200, 300, 0xFF0000 ); Cherche un pixel rouge dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel1[0] , $pixel1[1]); ...clique dessus.
EndIf
$pixel2 = PixelSearch( 50, 30, 200, 300, 0xFF0000, 10 ); Cherche un pixel rouge (avec une marge d'erreur de 10) dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel2[0] , $pixel2[1]); ...clique dessus.
EndIf
While 1; Démarre une boucle.
PixelSearch($pixel1[0] , $pixel1[1],$pixel1[0]+10 , $pixel1[1],0xFF0000); Cherche si il y a un autre pixel rouge parmis les 10 suivants.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel1[0] , $pixel1[1]); ...clique dessus.
EndIf
If @error Then; Si le pixel n'est pas trouvé alors...
ExitLoop; ...on quitte le script.
EndIf
WEnd; Retoure au début du script.
Exit; Quitte le script.
Fabiolito a écrit : comme je suis fainéant ( x] )
Moi aussi, on me l'a beaucoup repproché 
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 19:22
par Fabiolito
Oé , ça m'a l'air d'être ça . Merci :p
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 19:28
par Fabiolito
Mais , je peux pas mettre directement cette partie :
► Afficher le texte
Code : Tout sélectionner
$pixel2 = PixelSearch( 50, 30, 200, 300, 0xFF0000, 10 ); Cherche un pixel rouge (avec une marge d'erreur de 10) dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel2[0] , $pixel2[1]); ...clique dessus.
EndIf
Et enlever celle-la :
► Afficher le texte
Code : Tout sélectionner
$pixel1 = PixelSearch( 50, 30, 200, 300, 0xFF0000 ); Cherche un pixel rouge dans un carré de 200 X 300 pixels positionné à 50 pixels en partant de la gauche et 30 pixels en partant du haut.
If Not @error Then; Si le pixel est trouvé alors...
MouseClick("left",$pixel1[0] , $pixel1[1]); ...clique dessus.
EndIf
???
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 20:04
par TT22
Bien sur que tu peux. enfait j'ai repris l'exemple de l'aide que j'ai légèrement modifier.
► Afficher le textevoir l'exemple de l'aide
Code : Tout sélectionner
; Find a pure red pixel in the range 0,0-20,300
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf
; Find a pure red pixel or a red pixel within 10 shades variations of pure red
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )
If Not @error Then
MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 20:06
par Fabiolito
Ok , merci . Maintenant j'ai plus qu'a attendre que quelque me dise comment sélectionner une partie de mon image !
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 20:09
par TT22
Ouai, mais à mon avis, tu devrais faire un nouveau sujet. En attendant, je vais chercher un peut.
Re: [..] Sélèction d'une zone de clique
Posté : mar. 28 juin 2011 20:10
par Fabiolito
Ok , merci alors je met un petit [R] dans mon titre et je recrée un sujet ou je repose ma question en mieux expliqué ?