SAVOIR LES COULEURS RGB D'UNE COULEURS

MouLeT Messages postés 90 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 27 juillet 2009 - 26 mai 2004 à 14:24
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 22 oct. 2007 à 14:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23167-savoir-les-couleurs-rgb-d-une-couleurs

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
22 oct. 2007 à 14:04
phimselfbis> Javascript n'a pas besoin de tout çà pour convertir de l'hexadécimal en décimal. Imagine un peu ton tableau si tu dois utiliser des nombres supérieurs à 255 !

parseInt(nombre,16) le fait tout seul si 'nombre' est une représentation hexadécimale.
Mais là, on s'éloigne franchement de VB.

C'est avec les masques que c'est le plus pratique. Et comme la plupart des langages savent utiliser les opérateurs binaires, la compatibilité devrait être assurée.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 oct. 2007 à 13:16
une solution simple, peut etre, mais a proscrire...
phimselfbis Messages postés 3 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 27 juillet 2007
22 oct. 2007 à 12:42
J'ai fait une erreur de frappe.
Dans le deuxième cas, ce n'est pas
"Pour connaître la correspondance RGB de 125, il faut faire utiliser une fonction."
mais
"Pour connaître la correspondance RGB de AC, il faut faire utiliser une fonction."
phimselfbis Messages postés 3 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 27 juillet 2007
22 oct. 2007 à 12:36
Bonjour,
étant peu penché sur les mathématiques,
voici une solution simple et qui fonctionne en JavaScript, en ASP ou en PHP.

Je vous donne le code pour JavaScript, à savoir un tableau !

couleurs_hexa = new Array("00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B", "0C", "0D", "0E", "0F", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1A", "1B", "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E", "7F", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8A", "8B", "8C", "8D", "8E", "8F", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9A", "9B", "9C", "9D", "9E", "9F", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "AA", "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF", "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF", "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF");

Pour connaître la valeur Hexa de 125, tapez alert(couleurs_hexa[125]).

Pour connaître la correspondance RGB de 125, il faut faire utiliser une fonction.

function get_rgb( champ )
{
for (i=0; i<=255; i++) { if (couleurs_hexa[i] == champ) { alert (i); exit(); } }
}
get_rgb('AC')
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 févr. 2007 à 09:32
je me demande bien par quel biais...

Function QBColor(Color As Integer) As Long
Membre de VBA.Information
Renvoie le code couleur RVB pour le numéro de couleur spécifié dans une liste de couleurs standards prédéfinies
Bono_BX Messages postés 2 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 7 novembre 2007
16 févr. 2007 à 09:24
Mais l'instruction QBColor ne fait-elle pas déjà cela ?
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
27 oct. 2004 à 15:54
C'est pas très clair ce que vous écrivez les gars!
J'essaye de recomposer une couleur en masque binaire mais j'y arrive pas.
RGB jusque là je suis, ensuite, vous dites
R = Color and &HFF
Color c'est quoi? c'est égal à quoi?
And? c'est quoi, ça veut dire quoi?
Pourrais-je avoir un exemple concret.
Je sais pas par exemple
R=255 V=0 B=0 en &H ça donne quoi?
Merci de m'aider
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
1 juin 2004 à 20:44
Ah ça fait plaisir Warny que quelqu'un utilise des masquages binaires.
Mais je suis quand même obligé de mettre aussi mon code, même s'il n'est pas mieux :

R = Color And &HFF
G = (Color \ 256) And &HFF
B = (Color \ 256) \ 256
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
28 mai 2004 à 09:23
Oups, le système gère maintenant les Il faut donc lire :
Alpha = (Color And &hFF000000 ) \ &H1000000
Red = ( Color And &hFF0000 ) \ &H10000
Green = ( Color And &hFF00 ) \ &H100
Blue = (Color And &HFF ) ' \ &H1 est inutile donc je le commente
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
28 mai 2004 à 09:22
Pour ne pas faire de calcul de reste il faut faire ça :
Alpha = (Color And &hFF000000 ) \\ &H1000000
Red = ( Color And &hFF0000 ) \\ &H10000
Green = ( Color And &hFF00 ) \\ &H100
Blue = (Color And &HFF ) ' \\ &H1 est inutile donc je le commente
Dans ma source j'utilise la division entière donc je n'ai pas de conversion implicite vers des "double"
Plutôt que d'avoir un reste, j'utilise un masquage binaire qui est infiniment plus efficace.
Chaque couleur peut-être extraite séparement
J'extrait le canal alpha de la couleur qui dans un contrôle permet de savoir qui on doit utiliser une couleur système ou non, ou qui permet de gérer la transparence, la profondeur...

Et par pitié, elimine de ton code cette abération : "Goto"
Replace le par exemple par : "exit sub"
MouLeT Messages postés 90 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 27 juillet 2009
27 mai 2004 à 13:26
C'est exactement les même calcules sauf que cher la mienne il y a pas de calcule du reste ,et comme ca on peu savoir un RGB précisement sans fair tout un calcul ,par exemple si je voulais juste prendre la couler verte de ferai
"Int((Couleurs - (Int(Couleurs / 65536) * 65536)) / 256)"
au lieu de fair tout ce keu ta fait :)
Utilisateur anonyme
27 mai 2004 à 02:39
J'ai créé cette procédure avec paramètres de sorties il y a quelques temps si ça vous interesse.
Là je l'ai réutilisée pour une activité du BTS.

Sub Retrouve_RGB(ByVal Couleur, ByRef Composante_Rouge, ByRef Composante_Verte, ByRef Composante_Bleu)
Dim Reste As Long

'bleu
Composante_Bleu = Int(Couleur / 65536)
Reste = Couleur - Composante_Bleu * 256 * 256

'vert
Composante_Verte = Int(Reste / 256)
Reste = Reste - Composante_Verte * 256

'rouge
Composante_Rouge = Reste

End Sub
Golog Messages postés 224 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 22 décembre 2009
26 mai 2004 à 14:41
Pas mal , sa peu etres interresant.

8/10
MouLeT Messages postés 90 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 27 juillet 2009
26 mai 2004 à 14:24
Je m'excuse déjà si une source comme ça éxistait .
Mais j'ai cherché et j'ai pas trouvé donc voilà je la poste .
Elle est surtout mathématique .
Rejoignez-nous