@thi.ng/pixel-dominant-colors
Version:
k-means based dominant color extraction from images/pixel buffers
16 lines (15 loc) • 543 B
JavaScript
import { kmeans } from "@thi.ng/k-means/kmeans";
import { filterSamples } from "./utils.js";
const dominantColorsKmeans = (img, num, opts) => {
const samples = opts?.filter ? filterSamples(opts.filter, img) : Array.isArray(img) ? img : [...img];
return samples.length ? kmeans(Math.min(num, samples.length), samples, opts).sort((a, b) => b.items.length - a.items.length).map(
(c) => ({
color: [...c.centroid],
area: c.items.length / samples.length,
ids: c.items
})
) : [];
};
export {
dominantColorsKmeans
};