pitouik
Messages postés7Date d'inscriptionsamedi 16 août 2003StatutMembreDernière intervention 9 décembre 20051 9 déc. 2005 à 10:43
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!