fyre / color
颜色库。
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreColor是一个免费的、开源的不可变颜色操作库,用于PHP。
这是一个现代库,支持RGB、HSL、HSV、CMY和CMYK颜色空间。
目录
安装
使用Composer
composer require fyre/color
在PHP中
use Fyre\Color\Color;
基本用法
从RGB
$red
是一个介于0和255之间的数字。$green
是一个介于0和255之间的数字。$blue
是一个介于0和255之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = new Color($red, $green, $blue, $alpha);
从亮度
$brightness
是一个介于0和100之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = new Color($brightness, $alpha);
颜色创建
从字符串
从HTML颜色字符串创建一个新的Color。
$colorString
是一个包含十六进制颜色值、RGB、RGBA、HSL、HSLA或标准HTML颜色名称的字符串。
$color = Color::fromString($colorString);
从CMY
从CMY值创建一个新的Color。
$cyan
是一个介于0和100之间的数字。$magenta
是一个介于0和100之间的数字。$yellow
是一个介于0和100之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = Color::fromCMY($cyan, $magenta, $yellow, $alpha);
从CMYK
从CMYK值创建一个新的Color。
$cyan
是一个介于0和100之间的数字。$magenta
是一个介于0和100之间的数字。$yellow
是一个介于0和100之间的数字。$key
是一个介于0和100之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = Color::fromCMYK($cyan, $magenta, $yellow, $key, $alpha);
从HSL
从HSL值创建一个新的Color。
$hue
是一个介于0和360之间的数字。$saturation
是一个介于0和100之间的数字。$lightness
是一个介于0和100之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = Color::fromHSL($hue, $saturation, $lightness, $alpha);
从HSV
从HSV值创建一个新的Color。
$hue
是一个介于0和360之间的数字。$saturation
是一个介于0和100之间的数字。$value
是一个介于0和100之间的数字。$alpha
是一个介于0和1之间的数字,默认值为1。
$color = Color::fromHSV($hue, $saturation, $value, $alpha);
颜色格式化
转换为字符串
返回颜色的HTML字符串表示形式。
返回的$colorString
将包含一个HTML颜色名称(如果存在)、一个十六进制字符串(如果alpha为1)或一个RGBA字符串。
$colorString = $color->toString();
转换为十六进制字符串
返回颜色的十六进制字符串表示形式。
$hexString = $color->toHexString();
转换为RGB字符串
返回颜色的RGB/RGBA字符串表示形式。
$rgbString = $color->toRGBString();
转换为HSL字符串
返回颜色的HSL/HSLA字符串表示形式。
$hslString = $color->toHSLString();
标签
获取颜色的最接近的颜色名称。
$label = $color->label();
颜色属性
获取Alpha
获取颜色的alpha值(介于0和1之间)。
$alpha = $color->getAlpha();
获取亮度
获取颜色的亮度值(介于0和100之间)。
$brightness = $color->getBrightness();
获取色调
获取颜色的色调值(介于0和360之间)。
$hue = $color->getHue();
获取饱和度
获取颜色的饱和度值(介于0和100之间)。
$saturation = $color->getSaturation();
亮度
获取颜色的相对亮度值(介于0和1之间)。
$luma = $color->luma();
设置Alpha
设置颜色的alpha值。
$alpha
是一个介于0和1之间的数字。
$newColor = $color->setAlpha($alpha);
设置亮度
设置颜色的亮度值。
$brightness
是一个介于0和100之间的数字。
$newColor = $color->setBrightness($brightness);
设置色调
设置颜色的色调值。
$hue
是一个介于0和360之间的数字。
$newColor = $color->setHue($hue);
设置饱和度
设置颜色的饱和度值。
$saturation
是一个介于0和100之间的数字。
$newColor = $color->setSaturation($saturation);
颜色操作
变暗
通过指定量变暗颜色。
$amount
是一个介于0和1之间的数字。
$newColor = $color->darken($amount);
反转
反转颜色。
$newColor = $color->invert();
变亮
通过指定数量淡化颜色。
$amount
是一个介于0和1之间的数字。
$newColor = $color->lighten($amount);
阴影
通过指定数量对颜色进行阴影处理。
$amount
是一个介于0和1之间的数字。
$newColor = $color->shade($amount);
色调
通过指定数量对颜色进行色调处理。
$amount
是一个介于0和1之间的数字。
$newColor = $color->tint($amount);
色调
通过指定数量对颜色进行色调处理。
$amount
是一个介于0和1之间的数字。
$newColor = $color->tone($amount);
颜色方案
互补色
创建一个互补色变化。
$complementary = $color->complementary();
分割
创建一个具有2个分割颜色变化的数组。
[$secondary, $accent] = $color->split();
类似色
创建一个具有2个类似色变化的数组。
[$secondary, $accent] = $color->analogous();
三色相
创建一个具有2个三色相变化的数组。
[$secondary, $accent] = $color->triadic();
四色相
创建一个具有3个四色相变化的数组。
[$secondary, $alternate, $accent] = $color->tetradic();
颜色调板
创建调色板
阴影
创建一个具有指定数量阴影变化的数组。
$shades
是一个表示您希望生成多少阴影的数字,默认为10。
$colorShades = $color->shades($shades);
色调
创建一个具有指定数量色调变化的数组。
$tints
是一个表示您希望生成多少色调的数字,默认为10。
$colorTints = $color->tints($tints);
色调
创建一个具有指定数量色调变化的数组。
$tones
是一个表示您希望生成多少色调的数字,默认为10。
$colorTones = $color->tones($tones);
调色板
创建具有指定数量阴影、色调和色调变化的调色板对象。
$shades
是一个表示您希望生成多少阴影的数字,默认为10。$tints
是一个表示您希望生成多少色调的数字,默认为10。$tones
是一个表示您希望生成多少色调的数字,默认为10。
$colorPalette = $color->palette($shades, $tints, $tones);
静态方法
对比度
计算两种颜色之间的对比度(在1和21之间)。
$color1
是一个Color对象。$color2
是一个Color对象。
$contrast = Color::contrast($color1, $color2);
距离
计算两种颜色之间的距离。
$color1
是一个Color对象。$color2
是一个Color对象。
$distance = Color::dist($color1, $color2);
查找对比度
查找与另一种颜色最匹配的对比度颜色。
$color1
是一个Color对象。$color2
是一个Color对象,默认为null。$minContrast
是一个在1和21之间的数字,表示最小有效对比度,默认为4.5。$stepSize
是一个在0和1之间的数字,表示每次迭代中暗化/亮化颜色的数量,默认为0.01。
$contrastColor = Color::findContrast($color1, $color2, $minContrast, $stepSize);
如果$color2
值为null,则使用$color1
。
此方法将色调/阴影$color2
,直到它与$color1
达到最小对比度阈值,然后返回新颜色。如果找不到有效的对比度值,则此方法将返回null。
混合
通过指定数量将两种颜色混合在一起创建一个新的Color。
$color1
是一个Color对象。$color2
是一个Color对象。$amount
是一个介于0和1之间的数字。
$mixed = Color::mix($color1, $color2, $amount);
乘法
通过指定数量将两种颜色相乘创建一个新的Color。
$color1
是一个Color对象。$color2
是一个Color对象。$amount
是一个介于0和1之间的数字。
$multiplied = Color::multiply($color1, $color2, $amount);