Colority від Tomás López — бібліотека для PHP, яка дозволяє трансформувати й перевіряти кольори, знаходити оптимальний контрастний колір, витягувати кольори зі зображень та робити інше. Вона вміє розпарсити рядки в об’єкти кольорів і конвертувати їх між RGB, HSL та Hex.
Якщо тип кольору невідомий, метод parse спрощує розбір різних форматів із рядка. Якщо рядок не вдасться перетворити на об’єкт кольору, метод поверне null:
/** @var RgbColor|null $rgbColor */
$rgbColor = colority()->parse('rgb(255,255,255)');
/** @var HexColor|null $hexColor */
$hexColor = colority()->parse('#51B389');
/** @var HslColor|null $hslColor */
$hslColor = colority()->parse('hsl(168.31deg, 49.58%, 46.67%)');
Colority полегшує створення тем, аватарів користувачів та інших UI-елементів. Наприклад, ось як отримати кольори зображення у вигляді масиву об’єктів RgbColor:
// Отримати кольори із зображення
/** @var array<RgbColor> $imageColors */
$imageColors = colority()->getImageColors(
imagePath: __DIR__.'/image-colors.png',
desiredNumColors: 10
);
Також можна знайти схожі кольори або підібрати найкращий колір переднього плану для заданого фону:
// Отримати найкращий колір переднього плану для заданого кольору
/** @var HexColor $bestForegroundHexColor (чорний або білий) */
$bestForegroundHexColor = $hexColor->getBestForegroundColor();
// Отримати схожий колір
/** @var HexColor|null $similarHexColor */
$similarHexColor = colority()->getSimilarColor($hexColor);
Основні можливості
- Об’єктно-орієнтований API для роботи з кольорами
- Розбір різних форматів кольорів із рядка (RGB, HSL, Hex)
- Отримання кольорів, виявлених на зображенні
- Підбір найкращого кольору переднього плану (білий, чорний або зі списку користувача) для фонового кольору з оптимальним коефіцієнтом контрасту.
- Генерація фіксованого кольору на основі рядка.
- Отримання випадкового кольору, схожого на заданий.
- Та інше
Пакет працює з PHP +8.2 і легко встановлюється через Composer:
composer require tomloprod/colority
🧑💻 Почати можна на GitHub: tomloprod/colority