Code couleurs RGB

Messages postés
3
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
19 mars 2007
- - Dernière réponse : loic38_01
Messages postés
3
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
19 mars 2007
- 9 déc. 2005 à 13:59
Bonjour, j'utilise la methode getColor de la classe graphics,
et cette méthode me renvoie un entier :

public int getColor()

Gets the current color.

Returns:
an integer in form 0x00RRGGBB

J'aimerais retrouver le code couleur (r,g,b) (par exemple (255,255,255) pour le blanc) à partir du code 0x00RRGGBB.

Connaissez vous l'algorithme qui permet ca??

Merci :)
Afficher la suite 

3 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
84
0
Merci
Salut,



Cette méthode devrait marcher :

Color couleur = new Color(g.getColor());

int red = couleur.getRed();

int green = couleur.getGreen();

int blue = couleur.getBlue();



Ou sinon, tu peux décomposer ta valeur hexa (en vb ca donne) :

Let RedValue = (LNG_Couleur And &HFF)

Let GreenValue = ((LNG_Couleur \ 256) And &HFF)

Let BlueValue = ((LNG_Couleur \ 65536) And &HFF)

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
7
Date d'inscription
samedi 16 août 2003
Statut
Membre
Dernière intervention
9 décembre 2005
0
Merci
Hello,



Dark Sidious a donné la solution avec l'utilisation de la classe Color,
par contre la décomposition de l'entier est en VB. La voici en Java
ci-dessous :




public static void main(String[] args)

{

int color = 0x00FFFEFD;



int red = (color & 0x00FF0000) >> 16;

int green = (color & 0x0000FF00) >> 8;

int blue = (color & 0x000000FF);



System.out.println(red);

System.out.println(green);

System.out.println(blue);



Color c = new Color(color);

System.out.println(c);

}



Résultat sur la console :

255

254

253

java.awt.Color[r=255,g=254,b=253]



Explications :

Pour extraire les valeurs, il faut penser en
bits et utiliser les opérateurs de manipulation de bits. On commence
par appliquer des masques sur l'entier représentant la couleur pour
isoler les valeurs souhaitées (0x00FF0000,
0x0000FF00 et
0x000000FF). Puis on fait un décalage binaire pour avoir un nombre compris entre 0 et 255. Et hop!



Tchuss!
Commenter la réponse de pitouik
Messages postés
3
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
19 mars 2007
0
Merci
Merci beaucoup à vous 2 pour vos reponses!
Commenter la réponse de loic38_01