Get Color Amount With Get-image-colors Package
I'm using get-image-colors package 'get-image-colors': '^2.0.0' to get color amount from png and gif. My code is: const getColors = require('get-image-colors') getColors('https:/
Solution 1:
I wasn't able to make it work with linked package but in its dependiecies I found "getPixels" package.
I used and it gave me an ndarray of pixels with its rgb. Then I converted this ndarray thing to regular array of arrays. Then in loop I checked if every nested arrays is equal by converting it to json string:
const getPixels = require("get-pixels");
//1px only black https://i.imgur.com/dStJ1Og.png//2px only black https://i.imgur.com/5z46WVp.png//88x62px only black https://i.imgur.com/ZtGMUh9.png//88x62px black and red https://i.imgur.com/67IZCaD.png//220x297px black and red https://i.imgur.com/KTNnJGF.jpggetPixels("https://i.imgur.com/KTNnJGF.jpg", function(err, ndarray) {
if(err) {
console.log("Bad image path!");
return;
}
const uintArr = newUint8Array(ndarray.data);
const regularArr = [];
let oneColor = true;
for(let i = 0, l = uintArr.length / 4; i < l; i++) {
regularArr.push([uintArr[4*i], uintArr[4*i+1], uintArr[4*i+2], uintArr[4*i+3]])
}
for(let i = 0, l = regularArr.length; i < l; i++) {
if(regularArr[i + 1]) {
let currentValString = JSON.stringify(regularArr[i]);
let nextValString = JSON.stringify(regularArr[i + 1]);
if(currentValString !== nextValString) {
oneColor = false;
break;
}
}
}
console.log('Is image one color? ', oneColor);
});
I don't know if it's most efficient but it works.
Post a Comment for "Get Color Amount With Get-image-colors Package"