villfa / invert-color
InvertColor - 反转十六进制颜色代码
0.5.1
2021-12-16 09:21 UTC
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- phpunit/phpunit: ^7.0 || ^8.0 || ^9.0
- vimeo/psalm: ^4.7
README
反转十六进制颜色代码
安装
composer require villfa/invert-color
使用
这里有一个基本示例
<?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 - 抛出 InvalidColorFormatException
$color
:string
以十六进制字符串形式表示的颜色。接受的格式:#000000, #000, 000000, 000
InvertColor\Color::fromHex('#fff')->invert(); // #000000
Color::fromRGB(array $rgb): Color - 抛出 InvalidRGBException
$rgb
:array
以 RGB 值数组表示的颜色。
InvertColor\Color::fromRGB([0, 255, 0])->invert(); // #ff00ff
Color::invert([bool $bw]): string
$bw
:bool
可选。一个布尔值,表示输出是否应该根据原始颜色的亮度放大到黑色(#000000)或白色(#ffffff)。
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
可选。一个布尔值,表示输出是否应该根据原始颜色的亮度放大到黑色或白色。
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
可选。一个布尔值,表示输出是否应该根据原始颜色的亮度放大到黑色或白色。
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
测试
验证和测试库
composer run-script test
致谢
此库是 JS 包 invert-color 的端口。
更多资源
- https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color
- https://stackoverflow.com/questions/3942878/how-to-decide-font-color-in-white-or-black-depending-on-background-color/3943023#3943023