Skip to content
Invert a given color.
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.editorconfig
.gitattributes
.gitignore
.travis.yml
LICENSE
README.md
composer.json
phpstan.neon.dist
phpunit.xml.dist
psalm.xml

README.md

php-invert-color

Build Status Latest Stable Version License PDS Skeleton

invert hex color code

Installation

composer require villfa/invert-color

Usage

Here a basic example:

<?php
require_once 'vendor/autoload.php';

use InvertColor\Color;
use InvertColor\Exceptions\InvalidColorFormatException;

try {
    echo Color::fromHex('#fff')->invert(); // #000000
} catch (InvalidColorFormatException $e) {
    echo 'Invalid color: ', $e->getValue();
}

Color::fromHex(string $color): Color - throws InvalidColorFormatException

  • $color: string Color in HEX string. Accepted formats: #000000, #000, 000000, 000
InvertColor\Color::fromHex('#fff')->invert(); // #000000

Color::fromRGB(array $rgb): Color - throws InvalidRGBException

  • $rgb: array Color as an array of RGB values.
InvertColor\Color::fromRGB([0, 255, 0])->invert(); // #ff00ff

Color::invert([bool $bw]): string

  • $bw: bool Optional. A boolean value indicating whether the output should be amplified to black (#000000) or white (#ffffff), according to the luminance of the original color.
InvertColor\Color::fromHex('#000')->invert(); // #ffffff
InvertColor\Color::fromHex('#282b35')->invert(); // #d7d4ca

// amplify to black or white
InvertColor\Color::fromHex('282b35')->invert(true); // #ffffff

Color::invertAsRGB([bool $bw]): array

  • $bw: bool Optional. A boolean value indicating whether the output should be amplified to black or white, according to the luminance of the original color.
InvertColor\Color::fromHex('#000')->invertAsRGB(); // [255, 255, 255]
InvertColor\Color::fromHex('#282b35')->invertAsRGB(); // [215, 212, 202]

// amplify to black or white
InvertColor\Color::fromHex('282b35')->invertAsRGB(true); // [255, 255, 255]

Color::invertAsObj([bool $bw]): Color

  • $bw: bool Optional. A boolean value indicating whether the output should be amplified to black or white, according to the luminance of the original color.
InvertColor\Color::fromHex('#000')->invertAsObj()->getHex(); // #ffffff
InvertColor\Color::fromHex('#282b35')->invertAsObj()->getRGB(); // [215, 212, 202]

// amplify to black or white
InvertColor\Color::fromHex('282b35')->invertAsObj(true)->getRGB(); // [255, 255, 255]

Color::getHex(): string

InvertColor\Color::fromHex('#FFF')->getHex(); // #ffffff

Color::getRGB(): array

InvertColor\Color::fromHex('#fff')->getRGB(); // [255, 255, 255]

Color::getLuminance(): float

InvertColor\Color::fromHex('#fff')->getLuminance(); // 1
InvertColor\Color::fromHex('#000')->getLuminance(); // 0

Color::isBright(): bool

InvertColor\Color::fromHex('#fff')->isBright(); // true
InvertColor\Color::fromHex('#000')->isBright(); // false

Color::isDark(): bool

InvertColor\Color::fromHex('#fff')->isDark(); // false
InvertColor\Color::fromHex('#000')->isDark(); // true

Tests

To validate and test the library:

composer run-script test

Acknowledgement

This library is a port of the JS package invert-color.

More resources:

License

MIT

You can’t perform that action at this time.