mirror of
https://github.com/janishutz/color-thief.git
synced 2025-11-25 05:44:24 +00:00
50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
var colorThief = new ColorThief();
|
|
|
|
var images = [
|
|
'black.png',
|
|
'red.png',
|
|
'rainbow-horizontal.png',
|
|
'rainbow-vertical.png',
|
|
// 'transparent.png',
|
|
// 'white.png',
|
|
];
|
|
|
|
// Render example images
|
|
var examplesHTML = Mustache.to_html(document.getElementById('image-tpl').innerHTML, images);
|
|
document.getElementById('example-images').innerHTML = examplesHTML;
|
|
|
|
// Once images are loaded, process them
|
|
document.querySelectorAll('.image').forEach((image) => {
|
|
const section = image.closest('.image-section');
|
|
if (this.complete) {
|
|
showColorsForImage(image, section);
|
|
} else {
|
|
image.addEventListener('load', function() {
|
|
showColorsForImage(image, section);
|
|
});
|
|
}
|
|
})
|
|
|
|
// Run Color Thief functions and display results below image.
|
|
// We also log execution time of functions for display.
|
|
const showColorsForImage = function(image, section) {
|
|
const start = Date.now();
|
|
const color = colorThief.getColor(image);
|
|
const elapsedTimeForGetColor = Date.now() - start;
|
|
const palette = colorThief.getPalette(image);
|
|
const elapsedTimeForGetPalette = Date.now() - start + elapsedTimeForGetColor;
|
|
|
|
const output = {
|
|
color: color,
|
|
colorStr: color.toString(),
|
|
palette: palette,
|
|
paletteStr: palette.toString(),
|
|
elapsedTimeForGetColor: elapsedTimeForGetColor,
|
|
elapsedTimeForGetPalette: elapsedTimeForGetPalette
|
|
};
|
|
const ouputHTML = Mustache.to_html(document.getElementById('output-tpl').innerHTML, output);
|
|
|
|
const outputEl = section.querySelector('.output');
|
|
outputEl.innerHTML = ouputHTML;
|
|
};
|