NEWS
Farbe aus einen Bild auslesen
-
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
-
Mit der Hilfe von Zusatzlibs
-
…..DANKE!
Ich war mir nicht sicher aber es geht!
Torsten
-
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
-
Versuchs mal mit
var RGB = Jimp.intToRGBA(pixel) log(RGB)
Gesendet von Unterwegs
-
….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
-
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
-
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));
-
…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