Wie kann ich in Java Hex-Farbe in RGB-Code konvertieren? Meist in Google, Beispiele sind, wie Sie von RGB zu Hex konvertieren.Wie konvertiert man Hex mit Java in rgb?
Antwort
Ich denke, das sollte es tun:
/**
*
* @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));
}
Für diejenigen, die eine 3-Zeichen-Version wünschen, beachten Sie, dass in dem 3-Zeichen-Fall jeder Wert * 255/16 sein muss. Ich testete dies mit "000", "aaa" und "fff" und sie alle funktionieren ordnungsgemäß jetzt. – Andrew
Konvertieren Sie es in eine ganze Zahl und divmodieren Sie es dann zweimal mit 16, 256, 4096 oder 65536, je nach Länge der ursprünglichen Hex-Zeichenfolge (3, 6, 9 oder 12).
Hexadezimale Farbcodes sind bereits rgb. Das Format ist #RRGGBB
Es sei denn, es ist #RGB, #RRRGGGBBB oder #RRRRGGGGBBBB. –
public static void main(String[] args) {
int hex = 0x123456;
int r = (hex & 0xFF0000) >> 16;
int g = (hex & 0xFF00) >> 8;
int b = (hex & 0xFF);
}
Ein Hex-Farbcode ist #RRGGBB
RR, GG, BB sind im Bereich Hex-Werte von 0 bis 255
Nennen wir RR XY, wobei X und Y sind hex-Zeichen 0-9A-F, A = 10, F = 15
Der Dezimalwert ist X * 1 6 + Y
Wenn RR = B7, die dezimale für B 11 ist, so Wert ist 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;
}
Eigentlich gibt es eine einfachere (eingebaut) Art und Weise, dies zu tun:
Color.decode("#FFCCEE");
Für Android Entwicklung, die ich benutze:
int color = Color.parseColor("#123456");
Ersetzen Sie einfach die '#' durch '0x' –
Um auf th zu erarbeiten Die Antwort @xhh vorausgesetzt, Sie können die rote, grüne und blaue anfügen, um Ihre Zeichenfolge als "rgb (0,0,0)" zu formatieren, bevor Sie es zurückgeben.
/**
*
* @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();
}
Sie können es einfach wie folgt:
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;
}
Für Beispiel
getRGB("444444") = 68,68,68
getRGB("FFFFFF") = 255,255,255
Viele dieser Lösungen arbeiten, aber dies ist eine Alternative.
String hex="#00FF00"; // green
long thisCol=Long.decode(hex)+4278190080L;
int useColour=(int)thisCol;
Wenn Sie nicht hinzufügen 4278190080 (# FF000000) die Farbe ein Alpha von 0 hat und zeigt nicht.
Neulich Ich hatte das ähnliche Problem zu lösen und fand praktisch hex Farbe String in int array [alpha, r, g, b] zu konvertieren:
/**
* 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;
}
Hier ist eine Version, die beide Griffe RGB- und RGBA-Versionen:
/**
* 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;
}
Wenn Sie nicht möchten, dass die AWT Color.decode verwenden, kopieren Sie einfach den Inhalt der Methode:
int i = Integer.decode("#FFFFFF");
int[] rgb = new int[]{(i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF};
Ganzzahl.decode behandelt die Zeichen # oder 0x, je nachdem, wie die Zeichenfolge formatiert ist.
- 1. Chrome DevTools konvertiert alle HEX-Farben in RGB
- 2. Wie konvertiert man String in Hex und Hex in String?
- 3. Wie konvertiert man Byte-Array in Hex-Format in Java
- 4. Wie konvertiert man Hex-Zahl in Swift?
- 5. Wie konvertiert man Hex-Zahl in Farbe?
- 6. konvertiert Graustufenbild in RGB
- 7. Wie konvertiert man eine String-Farbe in ihren Hex-Code oder RGB-Wert?
- 8. Wie konvertiert man ein Double zu Hex?
- 9. Wie konvertiert man HEX Farbe in rgba mit weniger Compiler?
- 10. Konvertieren Hex-Farbstring in RGB-Farbe
- 11. Wie konvertiert man RGB von YUV420p für ffmpeg encoder?
- 12. wie rgb Farbe zu int in Java
- 13. Java konvertiert einen HEX-String in einen BigInt
- 14. Wie konvertiert man rgba zu einem Transparenz-Adjusted-Hex?
- 15. Wie konvertiert man Hex im Format 00-00 zum Doppel?
- 16. Wie konvertiert man GPS Länge und Breite von hex
- 17. Wie konvertiert man Byte-Array zu HexString in Java?
- 18. konvertiert RGB in Graustufen in C
- 19. Wie konvertiert man den Farbraum mit JMagick?
- 20. Wie konvertiert man Java String in byte []?
- 21. Wie konvertiert man char [] in Java?
- 22. Java - Wie konvertiert man Typensammlung in ArrayList?
- 23. Wie konvertiert man Java-Code in mapreduce?
- 24. Wie konvertiert man RGBA zu RGB in Python oder wie erhält man den richtigen Farbcode?
- 25. Konvertieren von HEX-Farbe in RGB-Struktur in C
- 26. Wie wird die Farbe 'Clear' auf RGB oder HEX gesetzt?
- 27. Wie konvertiert man ein Python-Numpy-Array mit Opencv 2.4 in ein RGB-Bild?
- 28. Wie konvertiert man RAW8 in RGB8 NSBeispiel
- 29. Wie konvertiert man .wav mit Java in .mp3?
- 30. Wie konvertiert man ein Objekt mit einer Vorlage in Java?
Können Sie ein Beispiel dafür angeben, was Sie konvertieren möchten und in was Sie konvertieren möchten? Es ist nicht klar, was genau Sie vorhaben. – kkress
000000 wird in schwarze Farbe umgewandelt rgb – user236501