UNPKG

@thi.ng/pixel-dominant-colors

Version:

k-means based dominant color extraction from images/pixel buffers

16 lines (15 loc) 543 B
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 };