Page personnelle de Rémy LUCAS |
Accueil | Electronique | Visual Basic | Freewares | Tests/Mods | Travaux | Usinage | Menuiserie |
Sommaire | Cours d'initiation | Codes sources |
Sommaire | Nom couleur | Calcul | Diagrame | Affichage LCD | Port Parallèle | Fichier WAV |
Trouver le nom d'une couleurLe code Explications Mode d'emploi - ExempleEn Visual Basic, une couleur est codée par un nombre entier compris entre 0 et 16777215. Pour y voir plus clair, il faut exprimer cet entier en Hexadécimal.L'hexadécimal corresponds à la base 16. Les "chiffres" de l'hexa sont : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Ainsi, le nombre hexadécimal "6B" corresponds au nombre décimal "107" (6*16 + 11). En VB il est tout à fait possible de manipuler les nombres en hexa (c'est d'ailleurs recommandé pour les couleurs); il suffit juste de taper "&h" avant le nombre hexa. Par exemple, les deux instructions suivantes affectent la même valeur à la variable "x" : x=107 x=&h6BAu final, l'hexa est juste une convention d'AFFICHAGE, un nombre tapé sous la forme décimale sera stocké et traité par l'ordinateur DE LA MEME MANIERE qu'un nombre tapé sous la forme hexadécimale. Revenons à nos couleurs ! Donc une couleur est un nombre qui va de 0 à 16777215 c'est à dire de &h000000 à &hFFFFFF. Et c'est là que l'usage de l'hexa est très interessant. Les deux premiers chiffres hexa correspondent à la quantité de bleu, les deux du milieu à la quantité de vert, et les deux derniers à la quantité de rouge. On a donc couleur = &hBBVVRR, avec BB allant de &h00 à &hFF, avec VV allant de &h00 à &hFF, et avec RR allant de &h00 à &hFF Par exemple, la couleur &h38FFC0 contient &h38 de bleu, &hFF de vert, &hC0 de rouge. Alors que fait ma procédure ? Vous lui passez comme paramétre un nombre couleur (genre &h35AF0C), et elle vous retourne une chaîne contenant le nom de cette couleur ! Exemple d'utilisation : Dim Couleur as Long Dim a$ Couleur = &H38FFC0 a$ = NomCouleur$(Couleur) MsgBox a$On obtient le résultat suivant : vert clair Le codeComme vous le remarquez, il n'y a pas une mais 4 fonctions. En fait, la fonction NomCouleur$ a besoin de 3 fonction annexes. Chacune de ces fonctions annexes a pour rôle d'extraire d'un nombre de couleur la quantité de bleu (ExtractB) de vert (ExtractG) ou de rouge (ExtractR).ExplicationsRien de compliqué ici !On extrait d'abord la quantité de chaque couleur élémentaire (Bleu, Vert, Rouge), puis on effectue une serie de tests de comparaisons pour trouver un nom de couleur adéquat. |
(c) Remy LUCAS - 1999-2010 |