RGB Farbcode in Hex Farbcode konvetieren!



  • Hallo,

    wie kann ich in Java einen RGB Farbcode in einen Hexfarbcode konvertieren? Ich habe folgende Variablen:

    int red=255;
    int green=255;
    int blue=25;

    Sodass später folgender Wert rauskommt: 0xFFFF19

    Ich wäre für jede Hilfe sehr dankbar!



  • Hi, ich würde das so angehen:

    Das hexadezimale Zahlensystem hat die Zahl 16 zur Basis und hat demnach einen Zahlenvorrat von 0-15, wobei 10-15 durch A-F zu ersetzen sind.

    Man teilt die Zahl durch 16 und merkt sich den Rest der bei der Division übrigbleit, das macht man solange bis die Zahl 0 ist.
    Bsp an der Zahl 5373:

    5373:16=335 R=13= D
    335:16= 20 R=15= F
    20:16= 1 R=4 = 4
    1:16= 0 R=1 = 1

    Ergebnis: 14FD

    Hier, hab das mal lösen müssen, du nimmst einfach den rot, grün, blau wert einzeln und übergibst ihn der Funktion, änder halt ein bisschen was ab:

    void hexa() {	
    try {
    int Rest[] = new int[50], Zahl = Integer.parseInt(TfDez2.getText()), l=0, k;
    
    String Ausgabe="";
    
    do {
    Rest[l++] = Zahl%16;
    Zahl /= 16;
    } while(Zahl>0);
    
    for (k=l-1;k>=0;--k) {
    if (Rest[k]>9) {
    switch (Rest[k]) {
    case 10: Ausgabe += 'A'; break;
    case 11: Ausgabe += 'B'; break;
    case 12: Ausgabe += 'C'; break;
    case 13: Ausgabe += 'D'; break;
    case 14: Ausgabe += 'E'; break;
    case 15: Ausgabe += 'F'; break;
    }
    }
    else 		
    Ausgabe += String.valueOf(Rest[k]);
    }
    TfHex.setText(Ausgabe);
    }catch(Exception ex2) {
    TfHex.setText("Hier stimmt doch was nicht!");
    }
    }
    


  • Man kann es auch kompliziert machen 😮 🙄

    Die Klasse Integer hat unter anderem eine abstrakte Methode toHexString.
    Ein Blick in die API hätte das jedem offenbart 🙄

    Also:

    int red=255;
    int green=255;
    int blue=25;
    
    String s_red = Integer.toHexString(red);
    String s_green = Integer.toHexString(green);
    String s_blue = Integer.toHexString(blue);
    

    Alles klar? 🙂



  • @GPC: Und auch wenn mans per Hand machen will, geht das viel effizienter:
    http://www.c-plusplus.net/forum/viewtopic.php?t=83514&start=0&postdays=0&postorder=asc&highlight= 😃



  • ja, ja, ja, ist ja schon gut, link halt zu meinen eigenen Threads. 🕶


Anmelden zum Antworten