Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Farbe aus einen Bild auslesen

    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

    Farbe aus einen Bild auslesen

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

      Hallo Gemeinde,

      ich habe mal eine Frage an die Wissenden, ist es in node.js möglich die Farbe eines bestimmten Pixels in einem Bild auszulesen?

      Grüße,

      Torsten

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Mit der Hilfe von Zusatzlibs

        https://www.npmjs.com/package/get-pixels

        1 Reply Last reply Reply Quote 0
        • T
          torstenh last edited by

          …..DANKE!

          Ich war mir nicht sicher aber es geht!

          Torsten

          1 Reply Last reply Reply Quote 0
          • T
            torstenh last edited by

            Hallo zusammen,

            mit diesem Besipiel geht es ja:

            var Jimp    = require("jimp");
            
            var pixel;
            
            Jimp.read('E:/test.jpg', function (err, image) {
                pixel = image.getPixelColor(100,10);
                console.log(pixel);
            });
            

            Die Rückgabe ist ein Wert: javascript.1 script.js.Testordner.get_pix: 4294967295

            Leider kann ich diesen nicht als HEX Wert interpretieren und habe versuch mit "Jimp.intToRGBA(hex);"

            die RGB Werte zu bekommen, leider finde ich keine wirkliche Lösung wie ich "Jimp.intToRGBA(hex);" in den Script verarbeiten soll.

            Kann mir jemand auf die Sprünge helfen?

            Grüße,

            Torsten

            1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer last edited by

              Versuchs mal mit

              var RGB = Jimp.intToRGBA(pixel)
              log(RGB)
              

              Gesendet von Unterwegs

              1 Reply Last reply Reply Quote 0
              • T
                torstenh last edited by

                ….mmmmh habe ich schon, da bekomme ich: javascript.1 script.js.Testordner.get_pix: [object Object] als Wert zurück.

                habe auch schon:

                var Jimp    = require("jimp");
                
                var pixel;
                
                Jimp.read('E:/test.jpg', function (err, image) {
                    pixel = image.getPixelColor(100,10);
                    console.log(pixel);
                
                    var RGB = Jimp.intToRGBA(pixel).toString();
                    console.log(RGB);
                
                });
                

                probiert, es ist bestimmt wieder nur was kleines :twisted:

                Trotzdem Danke….

                Grüße,

                Torsten

                Ich habe es:

                console.log(JSON.stringify(RGB));
                

                DANKE

                1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer last edited by

                  OK dann musst du

                  JSON.stringify(RGB)
                  

                  Verwenden um aus dem JSON Objekt einen String zu machen.

                  Auf die einzelnen Elemente im JSON kannst du etwa so zugreifen````
                  RGB['r']

                  r steht hier, ich hoffe es, für den wert von Rot. Prinzipiell steht r in diesem Beispiel für den key, wenn du diesen key aufrufst bekommst du direkt den Wert geliefert.
                  
                  Gesendet von Unterwegs
                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    pixel = image.getPixelColor(100,10);
                    
                    function padStart(source, targetLength,padString) {
                      targetLength = targetLength>>0; //floor if number or convert non-number to 0;
                      padString = String(padString || ' ');
                      if (source.length > targetLength) {
                        return source;
                      }
                      else {
                        targetLength = targetLength - source.length;
                        if (targetLength > padString.length) {
                          padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
                        }
                        return padString.slice(0,targetLength) + String(source);
                      }
                    };
                    
                    console.log('#' + padStart(pixel.toString(16), 8));
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • T
                      torstenh last edited by

                      …Danke euch beiden. Beides sehr hilfreich!

                      ! ````
                      ! var Jimp = require("jimp");
                      var pixel;
                      var RGB;
                      var pixel_rgb;
                      var red_value;
                      var green_value;
                      var blue_value;
                      ! //Return as RGB 😉
                      //########################################
                      Jimp.read("E:/test.jpg", function (err, image) {
                      pixel = image.getPixelColor(100,100);
                      RGB = Jimp.intToRGBA(pixel);
                      pixel_rgb = JSON.stringify(RGB);
                      red_value = RGB['r'];
                      green_value = RGB['g'];
                      blue_value = RGB['b'];

                      console.log(pixel_rgb);
                      console.log(red_value);
                      console.log(green_value);
                      console.log(blue_value);
                      

                      //Return as HEX
                      //########################################
                      function padStart(source, targetLength,padString) {
                      targetLength = targetLength>>0; //floor if number or convert non-number to 0;
                      padString = String(padString || ' ');
                      if (source.length > targetLength) {
                      return source;
                      }
                      else {
                      targetLength = targetLength - source.length;
                      if (targetLength > padString.length) {
                      padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
                      }
                      return padString.slice(0,targetLength) + String(source);
                      }
                      }

                      ! console.log('#' + padStart(pixel.toString(16), 8));
                      });
                      ! ````
                      …..wenn es noch jemand benötigt!

                      Grüße,

                      Torsten

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      556
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      1231
                      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