Open-source инструмент для удаления фона, который полностью работает в браузере через WebGPU или WebAssembly и не загружает изображения на сервер.
lokesh/color-thief
Библиотека JavaScript для извлечения доминирующих цветов и цветовых палитр из изображений в браузере и Node.js.
- Звёзды
- 13,658
- Форки
- 1,310
- Открытые issues
- 0
- Последний коммит
- 3 месяца назад
Что это?
Color Thief принимает изображение (элемент img, canvas, кадр видео, путь к файлу или Buffer в Node) и возвращает доминирующий цвет, палитру из нескольких цветов или семантические образцы, например Vibrant, Muted, DarkVibrant и LightMuted. Каждый результат — объект Color с методами для получения значений в форматах hex, RGB, HSL, OKLCH и CSS, а также рекомендациями по цвету текста и коэффициентами контрастности WCAG.
Один и тот же API работает в браузере и Node.js: для браузера доступны синхронные функции, а для обеих сред — асинхронные. Кроме того, библиотека поддерживает постепенное извлечение палитры, извлечение в реальном времени из видео или canvas через observe(), выборку области по дробным координатам и вывод в Display P3 для изображений с широким цветовым охватом. Извлечение можно отменить с помощью AbortSignal, у библиотеки нет runtime-зависимостей. Типы TypeScript включены.
Дополнительный CLI colorthief-cli выводит цвета в виде цветных образцов ANSI, JSON или пользовательских свойств CSS. В Node декодирование изображений выполняется с помощью sharp.
Ключевые возможности
- 01Извлекает из изображения доминирующий цвет, палитру из нескольких цветов или семантические образцы.
- 02Один и тот же API в браузере и Node.js, с синхронными и асинхронными вариантами.
- 03Обновляет палитру в реальном времени на основе видео, canvas или элементов img через observe().
- 04Выбирает область изображения по дробным координатам, не зависящим от разрешения.
- 05Возвращает объекты Color со значениями в форматах hex, RGB, HSL, OKLCH и CSS, а также коэффициентами контрастности WCAG.
- 06В комплект входит CLI, который выводит цветные образцы ANSI, JSON или переменные CSS.
Сценарии использования
- Подбор фонового или акцентного цвета для веб-страницы в тон фотографии товара или альбома.
- Создание эффектов фонового освещения или градиентов, которые меняются вслед за воспроизводимым видео.
- Проверка контрастности текста на фоне доминирующих цветов изображения для обеспечения доступности.
- Массовая генерация переменных цветов CSS из изображений в скрипте сборки.
Темы
Частые вопросы
- Что такое color-thief?
- Библиотека JavaScript для извлечения доминирующих цветов и цветовых палитр из изображений в браузере и Node.js. Color Thief принимает изображение (элемент img, canvas, кадр видео, путь к файлу или Buffer в Node) и возвращает доминирующий цвет, палитру из нескольких цветов или семантические образцы, например Vibrant, Muted, DarkVibrant и LightMuted. Каждый результат — объект Color с методами для получения значений в форматах hex, RGB, HSL, OKLCH и CSS, а также рекомендациями по цвету текста и коэффициентами контрастности WCAG.
- color-thief можно использовать бесплатно? Какая у него лицензия?
- color-thief распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- color-thief всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в color-thief — 3 авг. 2026 г..
- Для чего можно использовать color-thief?
- Подбор фонового или акцентного цвета для веб-страницы в тон фотографии товара или альбома. Создание эффектов фонового освещения или градиентов, которые меняются вслед за воспроизводимым видео. Проверка контрастности текста на фоне доминирующих цветов изображения для обеспечения доступности. Массовая генерация переменных цветов CSS из изображений в скрипте сборки.
- Где скачать color-thief?
- Исходный код и инструкции по установке — на GitHub: https://github.com/lokesh/color-thief
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Клиент ADB на TypeScript для работы в браузерах Chromium, Node.js и Electron с подключением Android-устройств через WebUSB.
Настраиваемый TypeScript-фреймворк для создания rich text-редакторов на React с архитектурой, ориентированной на плагины, и ядром без схемы.
Фреймворк React для создания полнофункциональных веб-приложений с инструментами на Rust для быстрой сборки.
Порт FFmpeg на WebAssembly и JavaScript для записи, конвертации и потоковой передачи видео и аудио в браузере.
JavaScript-инструментарий для отображения и редактирования диаграмм процессов BPMN 2.0 в браузере.