Apps für Android programmieren leicht gemacht!
HEX zu RGB umrechnen

HEX zu RGB umrechnen

Was machen wir, wenn wir eine Farbe in HEX-Farbe vorliegen haben, aber unsere zu benutzende Funktion nur RGB Farben versteht?
Klar, wir wandeln die HEX-farbe in eine RGB-Farbe um.

 

Aufbau

Bevor wir anfangen die HEX-Farben in RGB-Faarben umzuwandeln machen wir einen kleinen Exkurs.
Wir sollten uns erst einmal anschauen, wie diese HEX-Farben aufgebaut sind, damit wir das Umrechnen verstehen.
Aufbau von Hex-FarbenWir ihr sehen könnt bestehen HEX-Farben aus 7 Zeichen, von denen eigentlich nur 7 die Farbe definieren. Die # gibt nur an, dass gleich eine HEX-Farbe folgt.
Den einzelnen Farben Rot, Grün und Blau sind jeweils 2 Zeichen zugeordnet.
Es handelt sich um Zahlen von 0-255 in der Hexadezimal Schreibweise.

 

Java

Unsere Funktion ist recht simpel aufgebaut.
Wir bekommen die HEX-Farbe in einem String übergeben und lesen die einzelnen Stellen für die Farben aus.

Ausgelesen werden sie mit der Funktion substring. Die erste Zahl in den Übergabeparametern ist das erste auszulesende Zeichen.
Wir beginnen bei der Farbe Rot mit der 1, da Java bei 0 anfängt zu wählen.
„#“ = Stelle 0, „1“ = Stelle 1, …
Der zweite Übergabeparameter ist die letzte, aber nicht mit auszulesende Stelle.

Anschließend nutzen wir die Integer eigene Funktion valueOf.
Dieser können wir einen String übergeben und den Wert pro Stelle.

Als letztes packen wir die einzelnen Farben in einen Array und geben diesen zurück.
Die Rückgabe enthält die Farben in Reihenfolge Rot, Grün, Blau mit dem Index 0-2.

public int[] hexZuRGB(String hex){

  // Lese die für die einzelnen Farben wichtigen Stellen des Hex Strings aus.
  String rotHex = hex.substring(1, 3);
  String gruenHex = hex.substring(3, 5);
  String blauHex = hex.substring(5, 7);

  // Wandle die Hex Notation in RGB um.
  int rotRGB = Integer.valueOf( rotHex, 16 );
  int gruenRGB = Integer.valueOf( gruenHex, 16 );
  int blauRGB = Integer.valueOf( blauHex, 16 );

  // Konsolenausgabe, zur Fehlerprüfung
  System.out.println(rotRGB);
  System.out.println(gruenRGB);
  System.out.println(blauRGB);

  // Erstelle aus den 3 RGB Farben einen Array, damit wir diesen zurückgeben können
  int[] a = {rotRGB,gruenRGB,blauRGB};

  // Rückgabe
  return a;
}

 

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld