Skip to content

villfa/php-invert-color

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0a8801a · Jul 20, 2023
Jul 20, 2023
Mar 28, 2020
Mar 28, 2020
Oct 30, 2022
Jan 12, 2020
Oct 29, 2020
May 11, 2021
Jul 20, 2023
Nov 25, 2020
Jan 26, 2022
Oct 30, 2022
Sep 27, 2021
Apr 1, 2020
Apr 3, 2020

Repository files navigation

php-invert-color

Build Status Quality Gate 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