NEWS

RGB zu Hex js-Funktion mit Ergebnis


  • Hallo zusammen,

    ich verzweifle an einer Funktion, ich möchte 3 Variablen (rot, grün, blau) in einer "js-Funktion mit Ergebnis" von rgb zu hexadezimal umrechnen lassen, aber es funktioniert nicht.
    Verbessert mich bitte, was ich anders machen muss.

    Danke

    function RGBToHex(r,g,b) {
      r = r.toString(16);
      g = g.toString(16);
      b = b.toString(16);
    
      if (r.length == 1)
        r = "0" + r;
      if (g.length == 1)
        g = "0" + g;
      if (b.length == 1)
        b = "0" + b;
    
      return "#" + r + g + b;
    }
    

    rgbtohex.jpg
    rgbtohex2.jpg


  • z.B. so:

    function componentToHex(c) {
        var hex = c.toString(16);
        return hex.length == 1 ? "0" + hex : hex;
    }
    
    function rgbToHex(r, g, b) {
        return componentToHex(r) + componentToHex(g) + componentToHex(b);
    }
    
    function HexToRgb(hex) {
        var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
        return result ? {
            r: parseInt(result[1], 16),
            g: parseInt(result[2], 16),
            b: parseInt(result[3], 16)
        } : null;
    }
    

  • @NightWatcher sagte in RGB zu Hex js-Funktion mit Ergebnis:

    z.B. so:

    function componentToHex(c) {
        var hex = c.toString(16);
        return hex.length == 1 ? "0" + hex : hex;
    }
    
    function rgbToHex(r, g, b) {
        return componentToHex(r) + componentToHex(g) + componentToHex(b);
    }
    
    function HexToRgb(hex) {
        var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
        return result ? {
            r: parseInt(result[1], 16),
            g: parseInt(result[2], 16),
            b: parseInt(result[3], 16)
        } : null;
    }
    

    Was in den Skript sind die drei Variablen, rot, grün und blau ?
    Ich habe nähmlich 3 Variablen und nicht nur 1 wo alle 3 werte zusammen sind.

  • Starter

    hallo, würde gerne auch von rgb wert auf hex ändern lassen, komme aber weder mit blockly oder javascript weiter... der js aufruf gibt keinen wert zurück..
    gibt es inzwichen eine lösung?


  • @BigMike71 sagte in RGB zu Hex js-Funktion mit Ergebnis:

    der js aufruf gibt keinen wert zurück..

    Das Script enthält auch nur die Funktionen, die zur Umrechnung aufgerufen werden müssen:

    // Umrechnungsfunktionen (s.o.)
    
    var r = getState(idRot).val;
    var g = getState(idGruen).val;
    var b = getState(idBlau).val;
    
    var hex = '#' + rgbToHex(r, g, b);
    log('Hex: ' + hex);
    
  • Starter

    @paul53
    so, habe noch mal geschaut und den bzw. meinen fehler gefunden...
    im Beispiel unten war die Übergabefunktion in einer Funktion, da geht dann kein result zurück weil ich den code innerhalb blockly im JS Block eingebe und da wird ja schon automatisch eine function geöffnet.
    hatte den code nur copy paste und das war der fehler.
    hab folgendermassen den code geändert und nun geht es:

    function componentToHex(c) {
    var hex = c.toString(16);
    return hex.length == 1 ? "0" + hex : hex;
    }
    
    return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
    
     
    
  • Starter

    @BigMike71

    stehe vor dem gleichem Problem. Kannst Du Dein blockly max exportieren ?

  • Starter

    @2hot4you
    hoffe das hilft dir weiter

    Blockley.jpg Funktion.jpg

    function (r, g, b)
    1 function componentToHex(c) {
    2
    3    var hex = c.toString(16);
    4
    5    return hex.length == 1 ? "0" + hex : hex;
    6
    7 }
    8 return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
    9
    10
    
    

Suggested Topics

  • 23
  • 5
  • 20
  • 2
  • 17
  • 6
  • 10
  • 8

1.9k
Online

34.9k
Users

40.9k
Topics

561.4k
Posts