Page 1 sur 1

[R] Changer la couleur d'un pixel

Posté : mar. 07 oct. 2008 18:44
par TommyDDR
Bah voila, tout est dans le titre, je voulais savoir s'il existait une fonction pour changer la couleur d'un pixel de l'écran.

Merci.

Re: Changer la couleur d'un pixel

Posté : mar. 07 oct. 2008 18:50
par sylvanie
En natif comme ça, je ne pense vraiment pas, sauf si il s'agit d'une zone graphique construite via un "GUICtrlCreateGraphic" à l'intérieur d'une GUI construite via Autoit.

Par contre sur une image venant d'une appli tierce, va soit zyeuté les udf ... ou tenté un truc dur genre construction d'une GUI en fond teansparent et créer une zone graphique avec GUICtrlCreateGraphic ... Mais ça devient tordu ^^

L'udf serait plus sûre, mais faut il qu'elle existe

Re: Changer la couleur d'un pixel

Posté : mar. 07 oct. 2008 19:07
par TommyDDR
^^' bien complexe quoi ^^'

Je ne connais pas le code source du démineur de windows (plus sous vista) mais quand on joue au démineur et qu'on appuye sur :

xyzzy{SHIFT}{ENTRER}

cela active le mode triche (ca me fera toujours rire ca ^^)

mode triche :

si votre souris est sur une mine, le pixel en haut a gauche de l'écran deviendra noir, sinon, il sera blanc.

C'est ce genre de truc que je veux faire.

Re: Changer la couleur d'un pixel

Posté : mar. 07 oct. 2008 21:29
par sylvanie
ça , ça sent surtout le mode debug oublié ... sacré winmine...
On est donc dans le cas de l'application tierce.
Bon, passons dans l'optique d'un mode debug justement, celà est un cas intéressant pour faire des tests visuels. On peut imaginer faire une popup de 1X1 pixel est la coloré selon une condition qui reste à déterminer ...

Dans cette exple ( j'ai pris un carré 20 sur 20 pour mieux voir, suffit de redimensionner à 1 dans le code ...) je passe de noire à blanc en fonction de la position verticale de la souris : partire sup : noire, partie inf blanc :

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("test_debug", 20, 20, 0, 0,$WS_POPUP,$WS_EX_TOOLWINDOW )

GUISetBkColor(0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
AdlibEnable("check_mouse_pos",500)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
    Sleep(100)
WEnd

Func check_mouse_pos()
    Local $pos=MouseGetPos()
    If Not IsArray($pos) Then Return
    If $pos[1]< int(@DesktopHeight/2) Then
        GUISetBkColor("0x000000",$GUI)
    Else
        GUISetBkColor("0xffffff",$GUI)
    EndIf
    GUISetState(@SW_SHOW,$GUI)
    
EndFunc
 


On notera au passage que c'est une version entière GUI et non udf, mais je n'ai rien trouvé d'autre ...

Re: [..] Changer la couleur d'un pixel

Posté : mar. 07 oct. 2008 22:50
par Tlem
Merci de respecter les règles de création d'un message.

Re: [..] Changer la couleur d'un pixel

Posté : mer. 08 oct. 2008 19:42
par TommyDDR
Ouaou, merci beaucoup pour cette reponse, cela m'est fort util :p