[T] Code des couleurs (très pratique pour les développeurs)

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[T] Code des couleurs (très pratique pour les développeurs)

#1

Message par Tlem »

Message transféré de l'ancien forum.
Auteur : hellboy_21
Date : 23/11/2006


Citation :

Voici un petit utilitaire qui vous permettra de retrouver le code hexadécimal d'une couleur. Pour ce faire, 3 fonctions vous seront données : soit en faisant varier les couleurs rouge, vert, bleu ; soit en choisissant une couleur prédéfinie dans la palette ; ou encore en passant votre curseur sur une couleur affichée sur votre écran.

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------
    
    AutoIt Version: 3.2.12.0
    
#ce ----------------------------------------------------------------------------

#include <WindowsConstants.au3>
#include <SliderConstants.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <GUIconstants.au3>

Dim $Palette1 = @TempDir & "\palette1.jpg"
Dim $Palette2 = @TempDir & "\palette2.jpg"
FileInstall("palette1.jpg", @TempDir & "\palette1.jpg", 1)
FileInstall("palette2.jpg", @TempDir & "\palette2.jpg", 1)

GUICreate("Codes des couleurs", 630, 325, -1, -1, $WS_SYSMENU)
WinSetOnTop("Codes des couleurs", "", 1)
Opt("GUIOnEventMode", 1)
$lblCodeRGB = GUICtrlCreateLabel("Code RGB : ", 10, 10, 60)
$lblRouge = GUICtrlCreateLabel("Rouge : ", 30, 30, 40)
GUICtrlSetColor($lblRouge, 0xff0000)
$txtRouge = GUICtrlCreateLabel("0", 75, 30, 30)
$lblVert = GUICtrlCreateLabel("Vert : ", 30, 50, 40)
GUICtrlSetColor($lblVert, 0x00ff00)
$txtVert = GUICtrlCreateLabel("0", 75, 50, 30)
$lblBleu = GUICtrlCreateLabel("Bleu : ", 30, 70, 40)
GUICtrlSetColor($lblBleu, 0x0000ff)
$txtBleu = GUICtrlCreateLabel("0", 75, 70, 30)
$lblHexa = GUICtrlCreateLabel("Code Hexadécimal : ", 10, 97, 100)
;$lblCodeHexa = GUICtrlCreateInput("000000",110,97,50,-1,$ES_READONLY)
$lblCodeHexa = GUICtrlCreateLabel("000000", 110, 97, 50)
$lblCouleur = GUICtrlCreateLabel("", 160, 10, 130, 100)
GUICtrlSetBkColor($lblCouleur, 0x000000)
$lblSliderRouge = GUICtrlCreateLabel("Rouge : ", 10, 135, 40)
GUICtrlSetColor($lblSliderRouge, 0xff0000)
$SliderRouge = GUICtrlCreateSlider(50, 130, 250, 30, $TBS_NOTICKS)
GUICtrlSetLimit($SliderRouge, 255, 0)
$lblSliderVert = GUICtrlCreateLabel("Vert : ", 10, 165, 40)
GUICtrlSetColor($lblSliderVert, 0x00ff00)
$SliderVert = GUICtrlCreateSlider(50, 160, 250, 30, $TBS_NOTICKS)
GUICtrlSetLimit($SliderVert, 255, 0)
$lblSliderBleu = GUICtrlCreateLabel("Bleu : ", 10, 195, 40)
GUICtrlSetColor($lblSliderBleu, 0x0000ff)
$SliderBleu = GUICtrlCreateSlider(50, 190, 250, 30, $TBS_NOTICKS)
GUICtrlSetLimit($SliderBleu, 255, 0)
$cmdStart = GUICtrlCreateButton("Lancer couleur curseur", 10, 230, 135, 25)
GUICtrlSetOnEvent($cmdStart, "start")
$cmdStop = GUICtrlCreateButton("Stopper couleur curseur", 155, 230, 135, 25)
GUICtrlSetOnEvent($cmdStop, "stop")
$cmdChanger = GUICtrlCreateButton("Changer de palette", 10, 260, 135, 25)
GUICtrlSetOnEvent($cmdChanger, "changer")
$cmdCopier = GUICtrlCreateButton("Copier le code hexa", 155, 260, 135, 25)
GUICtrlSetOnEvent($cmdCopier, "copier")
$palette = $Palette1
$img = GUICtrlCreatePic($palette, 305, 10, 310, 275)
GUICtrlSetOnEvent($img, "test")
HotKeySet("+!d", "start")
HotKeySet("+!s", "stop")
$fin = 1
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
GUISetState()
While 1
    Sleep(500)

    $tabFenetre = WinGetPos("Codes des couleurs")
    $tabCurseur = GUIGetCursorInfo()
    If Not @error Then
        $x = $tabCurseur[0]
        $y = $tabCurseur[1]
        If $y >= 230 And $y <= 255 Then
            If $x >= 10 And $x <= 145 Then
                ToolTip("Lancer : Shift+Alt+D", $x + 12 + $tabFenetre[0], $y + 50 + $tabFenetre[1])
            Else
                If $x >= 155 And $x <= 290 Then
                    ToolTip("Stopper : Shift+Alt+S", $x + 12 + $tabFenetre[0], $y + 50 + $tabFenetre[1])
                Else
                    ToolTip("")
                EndIf
            EndIf
        Else
            ToolTip("")
        EndIf
        If $y >= 10 And $y <= 285 Then
            If $x >= 305 And $x <= 615 Then
                ToolTip("Cliquez sur un couleur", $x + 12 + $tabFenetre[0], $y + 50 + $tabFenetre[1])
            EndIf
        EndIf

        If $fin = 0 Then
            $pos = MouseGetPos()
            $couleurSouris = PixelGetColor($pos[0], $pos[1])
            GUICtrlSetBkColor($lblCouleur, "0x" & Hex($couleurSouris, 6))
            GUICtrlSetData($lblCodeHexa, Hex($couleurSouris, 6))
            GUICtrlSetData($txtRouge, Dec(StringLeft(Hex($couleurSouris, 6), 2)))
            GUICtrlSetData($txtVert, Dec(StringMid(Hex($couleurSouris, 6), 3, 2)))
            GUICtrlSetData($txtBleu, Dec(StringRight(Hex($couleurSouris, 6), 2)))
            GUICtrlSetData($SliderRouge, GUICtrlRead($txtRouge))
            GUICtrlSetData($SliderVert, GUICtrlRead($txtVert))
            GUICtrlSetData($SliderBleu, GUICtrlRead($txtBleu))
        Else
            $rouge = Hex(GUICtrlRead($SliderRouge), 2)
            GUICtrlSetData($txtRouge, GUICtrlRead($SliderRouge))
            $vert = Hex(GUICtrlRead($SliderVert), 2)
            GUICtrlSetData($txtVert, GUICtrlRead($SliderVert))
            $bleu = Hex(GUICtrlRead($SliderBleu), 2)
            GUICtrlSetData($txtBleu, GUICtrlRead($SliderBleu))
            $CodeCouleurHexa = $rouge & $vert & $bleu
            GUICtrlSetBkColor($lblCouleur, "0x" & $CodeCouleurHexa)
            GUICtrlSetData($lblCodeHexa, $CodeCouleurHexa)
        EndIf
    EndIf
WEnd
Func test()
    If $y >= 10 And $y <= 285 Then
        If $x >= 305 And $x <= 615 Then
            $couleurSouris = PixelGetColor($x + 3 + $tabFenetre[0], $y + 30 + $tabFenetre[1])
            GUICtrlSetBkColor($lblCouleur, "0x" & Hex($couleurSouris, 6))
            GUICtrlSetData($lblCodeHexa, Hex($couleurSouris, 6))
            GUICtrlSetData($txtRouge, Dec(StringLeft(Hex($couleurSouris, 6), 2)))
            GUICtrlSetData($txtVert, Dec(StringMid(Hex($couleurSouris, 6), 3, 2)))
            GUICtrlSetData($txtBleu, Dec(StringRight(Hex($couleurSouris, 6), 2)))
            GUICtrlSetData($SliderRouge, GUICtrlRead($txtRouge))
            GUICtrlSetData($SliderVert, GUICtrlRead($txtVert))
            GUICtrlSetData($SliderBleu, GUICtrlRead($txtBleu))
        EndIf
    EndIf
EndFunc   ;==>test
Func start()
    $fin = 0
    $tableau = GUIGetCursorInfo()
    $x = $tableau[0]
    $y = $tableau[1]
    ToolTip("Shift+Alt+d", $x, $y)
EndFunc   ;==>start
Func stop()
    $fin = 1
EndFunc   ;==>stop
Func changer()
    If $palette = $Palette1 Then
        $palette = $Palette2
        GUICtrlSetImage($img, $palette)
    Else
        If $palette = $Palette2 Then
            $palette = $Palette1
            GUICtrlSetImage($img, $palette)
        EndIf
    EndIf
EndFunc   ;==>changer
Func copier()
    ClipPut(GUICtrlRead($lblCodeHexa))
EndFunc   ;==>copier
Func quitter()
    Exit
EndFunc   ;==>quitter
Fichiers joints
Code_Couleurs.zip
Script + palette à compiler tel quel.
(133.07 Kio) Téléchargé 721 fois
Modifié en dernier par Tlem le sam. 13 déc. 2008 11:49, modifié 5 fois.
Raison : Mise à jour pour la 3.2.12.0
olaiv
Niveau 3
Niveau 3
Messages : 41
Enregistré le : sam. 26 avr. 2008 22:17
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#2

Message par olaiv »

Très pratique c'est exactement ce dont j'avais besoin merci :mrgreen:
cortx
Niveau 5
Niveau 5
Messages : 115
Enregistré le : dim. 04 mai 2008 16:10
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#3

Message par cortx »

Possible de remettre à jours ?
Quant je clique sur un couleur de l'écran j'ai un message d'erreur.
J'ai juste copié/collé le code et executer.
impossible de télécharger le lien de départ, il n'existe plus.
merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#4

Message par Tlem »

Le lien et le script ont été mis à jour.
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é".
cortx
Niveau 5
Niveau 5
Messages : 115
Enregistré le : dim. 04 mai 2008 16:10
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#5

Message par cortx »

Bonjour.
Pour les perfectionnistes; ne pas cliquer en dehors de la fenêtre du programme sinon il plante.
Mis à part celà, c'est une pure merveille ce logiciel, merci beaucoup.
KoRnBoy82
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 20 juin 2008 21:42
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#6

Message par KoRnBoy82 »

Bonjour,

Lorsque nous compilons le script suivant en exécutable, les palettes n'affichent plus dedans le programme. Alors je conseille ceci :

Créez-vous un dossier nommé "pal" à la racine de votre "c:\" et copiez les deux fichiers image dedans soit "palette.jpg" et "palette2.jpg".

Ensuite, dans le script, tout de suite après les includes, ajoutez les lignes suivantes :

Code : Tout sélectionner

$ColorPath1 = @TempDir & "\palette1.jpg"
$ColorPath2 = @TempDir & "\palette2.jpg"
FileInstall("c:\pal\palette1.jpg", @TempDir & "\palette1.jpg", 1)
FileInstall("c:\pal\palette2.jpg", @TempDir & "\palette2.jpg", 1)
 
Ceci aura pour effet que, lors de la compilation, les fichiers de palettes seront inclus à même l'exécutable (de là la création d'un dossier pal que vous pouvez ensuite supprimer) et chaque fois que le programme ouvre, il les copie dans le dossier temporaire de Windows afin d'y avoir accès.

Il faut pour que ceci fonctionne bien que chaque endroit où c'est indiqué palette1.jpg vous changiez ça pour $ColorPath1 et pour palette2.jpg soit changé pour $ColorPath2.

Je vous copie mon code final :
► Afficher le textecode modifié
L'application plante toujours quand on clique à l'exérieur de celle-ci mais au moins les palettes affichent bien une fois compilé.

NOTE : Quand vous utilisez la commande FileInstall, ça ne fonctionne pas si les fichiers que vous voulez inclure dans votre .exe sont directement à la racine d'un de vos lecteurs. Il faut les mettre absolument dans un dossier et indiquer le chemin complet du dossier.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#7

Message par Tlem »

Oui effectivement, une petite ré-actualisation du code s'imposait.
Le code principal à été modifier pour prendre en compte les palettes et les compiler directement et j'en ai aussi profiter pour éliminer l'erreur lors du clic en dehors du script. ;)
Le fichier joint est modifié, et il fonctionne tel quel avec AutoIt 3.2.12.1.
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é".
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeur)

#8

Message par DimVar »

ENORME merci !

Si j'avais eu ce programme à mes debuts sur PHP, j'aurais pas passé mille ans à trouver mes couleurs hexa....

Géant.... (et jolie interface !)
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
Jikoo
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 17 sept. 2008 00:04
Localisation : France
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#9

Message par Jikoo »

Bonjour,

Voici un autre outil pour convertir les couleurs Hex<>RGB<>HSL

Image

Le programme est multilingue.

C'est ici, sur le forum AutoIt.fr
Modifié en dernier par Jikoo le dim. 16 nov. 2008 18:27, modifié 1 fois.
GCS Search 1.07 (GUI Control Styles Search)
Un outil multilingue pour vous aider avec les vieux scripts notamment sur les forums. Il y a aussi un menu dynamique. Mettez vos raccourcis à l'intérieur. Convertisseur de couleurs intégré.
Flop
Niveau 3
Niveau 3
Messages : 48
Enregistré le : lun. 20 oct. 2008 16:48
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#10

Message par Flop »

j'utilise la lib GDIplus, comment faire pour trouver le code de la couleur ca ressemble à ca :

0xA2FFFFFF

merci d'avance.
Avatar du membre
Jikoo
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 17 sept. 2008 00:04
Localisation : France
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#11

Message par Jikoo »

Flop a écrit :j'utilise la lib GDIplus, comment faire pour trouver le code de la couleur ca ressemble à ca :

0xA2FFFFFF

merci d'avance.
Bonjour Flop,

Je ne comprend pas trop ta question. :?

Tu cherches quoi comme code de couleur : hexadécimal, décimal, RGB, HSL... ???

0xA2FFFFFF n'est pas une couleur. C'est un code hexadécimal pour autre chose.
Si c'est une couleur, je pense que c'est ça que tu as voulu écrire : 0xA2FFFF
Correspondance en RGB : 162,255,255

Utilise le convertisseur juste au dessus de ton message pour faire ça.
GCS Search 1.07 (GUI Control Styles Search)
Un outil multilingue pour vous aider avec les vieux scripts notamment sur les forums. Il y a aussi un menu dynamique. Mettez vos raccourcis à l'intérieur. Convertisseur de couleurs intégré.
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#12

Message par tolf »

Jikoo a écrit :0xA2FFFFFF n'est pas une couleur. C'est un code hexadécimal pour autre chose.
C'est une couleur en ARGB :
transparence alpha = A2
rouge = FF
vert = FF
bleu = FF
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
Jikoo
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 17 sept. 2008 00:04
Localisation : France
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#13

Message par Jikoo »

Merci Tolf pour m'avoir fait découvrir ce type de couleur en hexadécimal. :D
GCS Search 1.07 (GUI Control Styles Search)
Un outil multilingue pour vous aider avec les vieux scripts notamment sur les forums. Il y a aussi un menu dynamique. Mettez vos raccourcis à l'intérieur. Convertisseur de couleurs intégré.
Flop
Niveau 3
Niveau 3
Messages : 48
Enregistré le : lun. 20 oct. 2008 16:48
Status : Hors ligne

Re: [T] Code des couleurs (très pratique pour les développeurs)

#14

Message par Flop »

Merci pour la réponse, c'est maintenant ok
Répondre