¿Cómo puedo convertir el color hexadecimal a código RGB en Java? Sobre todo en Google, hay ejemplos sobre cómo convertir de RGB a hexadecimal.Cómo convertir de hex a rgb usando Java?
Respuesta
supongo que esto debe hacerlo: código de color
/**
*
* @param colorStr e.g. "#FFFFFF"
* @return
*/
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));
}
Para aquellos que también desean una versión de 3 caracteres, tenga en cuenta que en el caso de 3 caracteres, cada valor debe ser * 255/16. Probé esto con "000", "aaa" y "fff", y todos funcionan correctamente. ahora. – Andrew
Conviértalo en un número entero, luego divmod it dos veces por 16, 256, 4096 o 65536 dependiendo de la longitud de la cadena hexagonal original (3, 6, 9 o 12, respectivamente).
Los códigos de color Hexidecimal ya son rgb. El formato es #RRGGBB
A menos que sea #RGB, #RRRGGGBBB o #RRRRGGGGBBBB. –
public static void main(String[] args) {
int hex = 0x123456;
int r = (hex & 0xFF0000) >> 16;
int g = (hex & 0xFF00) >> 8;
int b = (hex & 0xFF);
}
Un hex es #RRGGBB
RR, GG y BB son valores hexadecimales que van 0-255
XY llamada RR de Let donde X e y son hex carácter 0-9A-F, A = 10, M = 15
El valor decimal es X * 1 6 + Y
Si RR = B7, el decimal para B es 11, por lo que el valor es 11 * 16 + 7 = 183
public int[] getRGB(String rgb){
int[] ret = new int[3];
for(int i=0; i<3; i++){
ret[i] = hexToInt(rgb.charAt(i*2), rgb.charAt(i*2+1));
}
return ret;
}
public int hexToInt(char a, char b){
int x = a < 65 ? a-48 : a-55;
int y = b < 65 ? b-48 : b-55;
return x*16+y;
}
En realidad, hay una manera más fácil (incorporada) forma de hacer esto:
Color.decode("#FFCCEE");
Para Android desarrollo, utilizo:
int color = Color.parseColor("#123456");
Simplemente reemplaza el '#' con '0x' –
Para más detalles sobre º Responda @xhh siempre que pueda agregar el rojo, el verde y el azul para formatear su cadena como "rgb (0,0,0)" antes de devolverla.
/**
*
* @param colorStr e.g. "#FFFFFF"
* @return String - formatted "rgb(0,0,0)"
*/
public static String hex2Rgb(String colorStr) {
Color c = new Color(
Integer.valueOf(hexString.substring(1, 3), 16),
Integer.valueOf(hexString.substring(3, 5), 16),
Integer.valueOf(hexString.substring(5, 7), 16));
StringBuffer sb = new StringBuffer();
sb.append("rgb(");
sb.append(c.getRed());
sb.append(",");
sb.append(c.getGreen());
sb.append(",");
sb.append(c.getBlue());
sb.append(")");
return sb.toString();
}
puede hacerlo simplemente como a continuación:
public static int[] getRGB(final String rgb)
{
final int[] ret = new int[3];
for (int i = 0; i < 3; i++)
{
ret[i] = Integer.parseInt(rgb.substring(i * 2, i * 2 + 2), 16);
}
return ret;
}
Por ejemplo
getRGB("444444") = 68,68,68
getRGB("FFFFFF") = 255,255,255
Muchas de estas soluciones funcionan, pero esto es una alternativa.
String hex="#00FF00"; // green
long thisCol=Long.decode(hex)+4278190080L;
int useColour=(int)thisCol;
Si no añadir 4278190080 (# FF000000) el color tiene un Alfa de 0 y no se mostrará.
El otro día que había estado resolver el problema similar y se encontró conveniente para convertir la secuencia del color hex a int array [alfa, r, g, b]:
/**
* Hex color string to int[] array converter
*
* @param hexARGB should be color hex string: #AARRGGBB or #RRGGBB
* @return int[] array: [alpha, r, g, b]
* @throws IllegalArgumentException
*/
public static int[] hexStringToARGB(String hexARGB) throws IllegalArgumentException {
if (!hexARGB.startsWith("#") || !(hexARGB.length() == 7 || hexARGB.length() == 9)) {
throw new IllegalArgumentException("Hex color string is incorrect!");
}
int[] intARGB = new int[4];
if (hexARGB.length() == 9) {
intARGB[0] = Integer.valueOf(hexARGB.substring(1, 3), 16); // alpha
intARGB[1] = Integer.valueOf(hexARGB.substring(3, 5), 16); // red
intARGB[2] = Integer.valueOf(hexARGB.substring(5, 7), 16); // green
intARGB[3] = Integer.valueOf(hexARGB.substring(7), 16); // blue
} else hexStringToARGB("#FF" + hexARGB.substring(1));
return intARGB;
}
Aquí es una versión que maneja tanto RGB y RGBA versiones:
/**
* Converts a hex string to a color. If it can't be converted null is returned.
* @param hex (i.e. #CCCCCCFF or CCCCCC)
* @return Color
*/
public static Color HexToColor(String hex)
{
hex = hex.replace("#", "");
switch (hex.length()) {
case 6:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16));
case 8:
return new Color(
Integer.valueOf(hex.substring(0, 2), 16),
Integer.valueOf(hex.substring(2, 4), 16),
Integer.valueOf(hex.substring(4, 6), 16),
Integer.valueOf(hex.substring(6, 8), 16));
}
return null;
}
Si no desea utilizar el AWT Color.decode, a continuación, sólo copiar el contenido del método:
int i = Integer.decode("#FFFFFF");
int[] rgb = new int[]{(i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF};
Entero.decode maneja el # o 0x, dependiendo de cómo se formatee su cadena
- 1. Cómo convertir Hex a RGB?
- 2. Convertir System.Drawing.Color a RGB y Hex Value
- 3. Cómo convertir códigos de color HEX RGB a UIColor?
- 4. Convertir RBG a HEX
- 5. Convertir de HEX color a estructura RGB en C
- 6. Convertir hex a flotante
- 7. Cómo convertir el valor de BigInteger a Hex en Java
- 8. cómo convertir hexadecimal a RGB
- 9. Java: cómo convertir el color RGB a CIE Lab
- 10. Convertir archivo a HEX String Python
- 11. Convertir valores RGB a Entero
- 12. ¿Convertir color RGB a CMYK?
- 13. Convertir una cadena a HEX en SQL
- 14. cmyk a rgb usando php
- 15. Obtener nombre de color por HEX o RGB
- 16. Conversión de RGB a HSV usando PIL
- 17. convertir color html o rgb a system.drawing.brush
- 18. RGB Int a RGB - Python
- 19. Cómo convertir .wav a .mp3 usando Java?
- 20. Cómo convertir de Hex a ASCII en JavaScript?
- 21. Convertir decimal <-> hex
- 22. Convertir RGB a ColorName Cadena Javascript
- 23. ¿Existe un complemento de Vim para resaltar Hex, Rgb, Colors
- 24. Cómo convertir HEX a NSString en Objective-C?
- 25. ¿Cómo puedo convertir una cadena de 48 hex a bytes usando Perl?
- 26. Ascii/Hex convertir en bash
- 27. Java convertir una cadena HEX en una BigInt
- 28. Encontrar colores HEX similares usando un umbral
- 29. Convertir de PDF a Postscript usando Java
- 30. cómo convertir una imagen RGB a numpy array?
¿Puede dar un ejemplo de lo que está tratando de convertir y de lo que está tratando de convertir? No está claro exactamente lo que estás tratando de hacer. – kkress
000000 se convertirá a color negro rgb – user236501