Aide sur les Interfaces Graphique Utilisateurs (GUI).
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#1
Message
par littlechiki » lun. 05 août 2019 19:35
Bonjour,
J'ai un léger problème étant que quand j'utilise un PixelGetColor, celui-ci ne reconnais pas les images sur ma GUI. j'ai une image en position 500,500 de couleur blanche mais quand je fait un PixelGetColor, j'ai l'impression qu'il ne reconnait pas l'image et prend ce qu'il y a derrière.
Un petit exemple pour être plus claire :
#Include <GUIConstantsEx.au3>$GUI = GUICreate("",1100,1000,350,10)$image = GUICtrlCreatePic(".\0.gif",500,500,100,100)$button = GUICtrlCreateButton("Couleur",10,90,70,30)GUISetState(@SW_SHOW)While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE Exit Case $button $pix = PixelGetColor(530,530) MsgBox(0,"","Couleur : " & Hex($pix)) EndSwitchWEnd
Voila. Le code hexadécimal de la couleur trouve du gris clair (la couleur de base de ma gui plutôt que la couleur de mon image. J'aimerai que le PixelGetColor trouve la couleur de l'image plutôt que la couleur du fond.
Si quelqu'un a une idée je le remercie !
-
TommyDDR
- Modérateur

- Messages : 1820
- Enregistré le : mar. 22 juil. 2008 20:55
- Localisation : Nantes
-
Status :
Hors ligne
#2
Message
par TommyDDR » lun. 05 août 2019 21:23
Sans votre gif, il sera difficile de tester.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#3
Message
par littlechiki » mar. 06 août 2019 11:03
Ah oui en effet je n'avais pas pensé à ça. la voici !

- 0.gif (944 Octets) Vu 1292 fois

- 0.gif (944 Octets) Vu 1292 fois
-
jchd
- AutoIt MVPs (MVP)

- Messages : 2097
- Enregistré le : lun. 30 mars 2009 21:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
-
Status :
Hors ligne
#4
Message
par jchd » mar. 06 août 2019 14:52
L'image fait 30x30, donc ce pixel est hors de l'image. Le dernier pixel de l'image (en bas à droite), c'est 529,529.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#5
Message
par littlechiki » mar. 06 août 2019 17:03
Ah d'accord je corrigerai mes longueurs. Cependant même en changeant les longueurs pour (529,529) ou même (505,505) le problème subsiste et mon code couleur ne change pas. Même en changeant la taille de l'image pour qu'elle fasse 30x30. Je dois admettre que je ne comprend pas là...
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#6
Message
par littlechiki » mar. 06 août 2019 18:01
Bon j'ai compris d'où venait mon erreur. En fait mes dimensions x et y n'étaient pas bonnes. Je cherchais en position 500,500 alors que j'aurais du chercher aux positions (855,545) qui sont les dimensions affichées sur mon écran. maintenant, pour faire bien, il faudrait que je sache rechercher le pixel seulement dans l'écran de la GUI et non pas sur mon écran entier. Chose que je ne comprend pas comment faire puisque en en utilisant le code
Il me donne quand même les les dimensions de l'écran complet et non de la GUI.
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#7
Message
par littlechiki » mer. 07 août 2019 10:28
Update :
Même en changeant le code pour
#Include <GUIConstantsEx.au3>$GUI = GUICreate("",1100,1000,350,10)$image = GUICtrlCreatePic(".\0.gif",500,500,100,100)$button = GUICtrlCreateButton("Couleur",10,90,70,30)$hWnd = WinGetHandle("GUI","")GUISetState(@SW_SHOW)While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE Exit Case $button $pix = PixelGetColor(530,530,$hWnd) MsgBox(0,"","Couleur : " & Hex($pix)) EndSwitchWEnd
Mon PixelGetColor trouve toujours le pixel de l'écran et non de ma GUI...
-
walkson
- Modérateur

- Messages : 730
- Enregistré le : ven. 12 août 2011 18:49
- Localisation : Essonne
-
Status :
Hors ligne
#8
Message
par walkson » mer. 07 août 2019 16:56
Bonjour,
Je vous ai mis des commentaires dans le code
#Include <GUIConstantsEx.au3>Opt("PixelCoordMode", 0);0 = Coordonnées relatives à la fenêtre définie;1 = (défaut) Coordonnées absolues d'écran;2 = Coordonnées relatives à la zone client de la fenêtre définie $GUI = GUICreate("",250,250) ;Retourne le handle de la fenêtre.$image = GUICtrlCreatePic(".\0.gif",100,100,50,50) ;le pic est de 50x50 donc l'image est redimensionnée à 50x50$button = GUICtrlCreateButton("Couleur",10,90,70,30)$hpic = GUICtrlGetHandle($image) ;handle du pic qui sera analyséGUISetState(@SW_SHOW)While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE Exit Case $button For $i = 0 To 50 For $y = 0 To 50 ConsoleWrite(Hex(PixelGetColor($i,$y,$hpic),6) &" /X "& $i &" /Y "& $y & @CRLF) Next Next EndSwitchWEnd;à la fin, nous avons:;FFFFFF /X 49 /Y 49 => blanc;F0F0F0 /X 49 /Y 50 => gris;F0F0F0 /X 50 /Y 0;F0F0F0 /X 50 /Y 1;comme le fait remarquer Jchd, il faut retirer 1 pixel de la taille totale
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
-
littlechiki
- Niveau 3

- Messages : 41
- Enregistré le : sam. 13 avr. 2019 12:58
-
Status :
Hors ligne
#9
Message
par littlechiki » mer. 07 août 2019 18:23
Oh parfait merci ! Grâce à toutes ces explications, j'ai compris et mon test est concluant !
Un grand merci car sans ces explications, je serai encore en train de pédaler dans la semoule !
