Colority by Tomás López is a PHP library that lets you transform and validate colors, find the best contrast color, extract image colors, and more. It allows you to parse strings into color objects and convert them between RGB, HSL, and Hex.
Using Colority, if you don't know the color type, the parse method makes it easy to parse various formats from a string. If it cannot parse the string into a color object, it'll return 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 makes it easy to generate themes, user avatars, and more. For example, here are a few methods for getting the colors found in an image as an array of RgbColor objects:
// Get colors from an image/** @var array<RgbColor> $imageColors */$imageColors = colority()->getImageColors( imagePath: __DIR__.'/image-colors.png', desiredNumColors: 10);
You can also find similar colors or get the best foreground color for a given color:
// Get the best foreground color for a given color/** @var HexColor $bestForegroundHexColor (black or white) */$bestForegroundHexColor = $hexColor->getBestForegroundColor(); // Get a similar color/** @var HexColor|null $similarHexColor */$similarHexColor = colority()->getSimilarColor($hexColor);
Main Features
- Object-oriented API to work with colors
- Parse various types of colors from a string (RGB, HSL, Hex)
- Obtain the colors found in an image
- Generate the best foreground color (white, black, or from a user-provided list) for a background color, ensuring the best possible contrast ratio.
- Generate a fixed color based on a string.
- Obtain a random color similar to a given color.
- And more
This package works with PHP +8.2, and you can easily install it via Composer:
composer require tomloprod/colority
🧑💻 You can get started with this package on GitHub: tomloprod/colority