Comment obtenir une valeur RVB à partir d'un code couleur hexadécimal en java


J'ai un code couleur décimal (par exemple: 4898901). Je le convertit en un équivalent hexadécimal de celui de 4ac055. Comment obtenir la valeur du composant rouge, vert et bleu à partir du code couleur hexadécimal?

Author: jrudolph, 2011-09-15

6 answers

En Supposant que c'est une chaîne:

// edited to support big numbers bigger than 0x80000000
int color = (int)Long.parseLong(myColorString, 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;
 64
Author: MByD, 2014-05-27 12:22:57

Essayez ceci,

colorStr e.g. "#FFFFFF"

public static Color hex2Rgb(String colorStr) {
    return new Color(
            Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),
            Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),
            Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) );
}

Pour utiliser la classe Color, vous devez utiliser java-rt-jar-stubs-1.5.0.jar en tant que classe de couleur est de java.awt.Color

 7
Author: Lalit Poptani, 2014-04-24 11:00:20

Si vous avez une chaîne de cette façon est beaucoup plus agréable:

Color color =  Color.decode("0xFF0000");
int red = color.getRed();
int blue = color.getBlue();
int green = color.getGreen();

Si vous avez un nombre, faites-le de cette façon:

Color color = new Color(0xFF0000);

Alors bien sûr pour obtenir les couleurs que vous venez de faire:

float red = color.getRed();
float green = color.getGreen();
float blue = color.getBlue();
 6
Author: Daniel Ryan, 2014-12-17 02:00:20

Je ne suis pas sûr de votre besoin exact. Cependant quelques conseils.

La classe Integer peut transformer un nombre décimal en sa représentation hexadécimale avec la méthode:

Integer.toHexString(yourNumber);

Pour obtenir le RVB, vous pouvez utiliser la couleur de classe:

Color color = new Color(4898901);
float r = color.getRed();
float g = color.getGreen();
float b = color.getBlue();
 5
Author: Francisco Puga, 2011-09-15 07:30:07

Lorsque vous avez le hex-code : 4ac055. Les deux premières lettres sont la couleur rouge. Les deux sont en vert et les deux dernières lettres sont pour la couleur bleue. Alors, Quand vous avez le code hexadécimal de la couleur rouge, vous devez la convertir en dez dos. Dans ces exemples où red 4a = 74. Green c0 = 192 et blue = 85..

Essayez de créer une fonction qui divise le hexcode puis redonne le rgb code

 1
Author: homePageCreator, 2015-06-17 16:02:01
String hex1 = "#FF00FF00";    //BLUE with Alpha value = #AARRGGBB

int a = Integer.valueOf( hex1.substring( 1, 3 ), 16 );
int r = Integer.valueOf( hex1.substring( 3, 5 ), 16 );
int g = Integer.valueOf( hex1.substring( 5, 7 ), 16 );
int b = Integer.parseInt( hex1.substring( 7, 9 ), 16 );

Toast.makeText(getApplicationContext(), "ARGB: " + a + " , " + r + " ,  "+ g + " , "+ b , Toast.LENGTH_SHORT).show();

String hex1 = "#FF0000";    //RED with NO Alpha = #RRGGBB

int r = Integer.valueOf( hex1.substring( 1, 3 ), 16 );
int g = Integer.valueOf( hex1.substring( 3, 5 ), 16 );
int b = Integer.parseInt( hex1.substring( 5, 7 ), 16 );

Toast.makeText(getApplicationContext(), "RGB: " + r + " ,  "+ g + " , "+ b , Toast.LENGTH_SHORT).show();
 0
Author: Abhimanyu Sharma, 2017-10-11 16:33:09