ColorJizz is a PHP library for manipulating and converting colors.
Latest commit 361b8a8 Nov 14, 2016 @mikeemoo committed on GitHub Merge pull request #15 from drake-p/precision
Handle a case where decimal precision causes an out-of-range exception

Getting started:

ColorJizz-PHP uses the PSR-0 standards for namespaces, so there should be no trouble using with frameworks like Symfony 2.


An autoloader class is provided for when loading ColorJizz yourself.

First, include the autoloader and call the static register() function.

require_once 'path/to/colorjizz/lib/MischiefCollective/ColorJizz/Autoloader.php';

Now all ColorJizz classes will be automatically loaded in.

Converting between formats

ColorJizz can convert to and from any of the supported color formats:

use MischiefCollective\ColorJizz\Formats\Hex;

$red_hex = new Hex(0xFF0000);
$red_cmyk = $hex->toCMYK();

echo get_class($red_cmyk); // MischiefCollective\ColorJizz\Formats\CMYK
echo $red_cmyk; // 0,1,1,0

Any color manipulation or conversion will return a new instance of a color class, therefore your original color objects remains intact.

Color manipulation can be chained together:

use MischiefCollective\ColorJizz\Formats\Hex;

echo Hex::fromString('red')->hue(-20)->greyscale(); // 555555

Any color manipulation will always return the color in the same format unless you're specifically converting the format. For example:

use MischiefCollective\ColorJizz\Formats\RGB;

$red = new RGB(255, 0, 0);
echo get_class($red->hue(-20)->saturation(2)); // MischiefCollective\ColorJizz\Formats\RGB

Supported formats:

new RGB(r, g, b);
new CMY(c, m, y);
new CMYK(c, m, y, k);
new Hex(0x000000);
new HSV(h, s, v);
new CIELab(l, a, b);
new CIELCh(l, c, h);
new XYZ(x, y, z);
new Yxy(Y, x, y);

Conversion functions: