Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. RGB zu Hex js-Funktion mit Ergebnis

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    RGB zu Hex js-Funktion mit Ergebnis

    This topic has been deleted. Only users with topic management privileges can see it.
    • marcuskl
      marcuskl last edited by

      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

      1 Reply Last reply Reply Quote 0
      • N
        NightWatcher last edited by

        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;
        }
        
        marcuskl 1 Reply Last reply Reply Quote 0
        • marcuskl
          marcuskl @NightWatcher last edited by

          @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.

          1 Reply Last reply Reply Quote 0
          • B
            BigMike71 last edited by

            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?

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @BigMike71 last edited by paul53

              @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);
              
              B 1 Reply Last reply Reply Quote 0
              • B
                BigMike71 @paul53 last edited by BigMike71

                @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);
                
                 
                
                2 1 Reply Last reply Reply Quote 0
                • 2
                  2hot4you @BigMike71 last edited by

                  @BigMike71

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

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    BigMike71 @2hot4you last edited by BigMike71

                    @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
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    844
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    blockly
                    5
                    8
                    1604
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo