fyre/color

v2.0.9 2024-06-29 02:02 UTC

This package is auto-updated.

Last update: 2024-09-29 02:46:50 UTC


README

FyreColor是一个免费的、开源的不可变颜色操作库,用于PHP

这是一个现代库,支持RGB、HSL、HSV、CMY和CMYK颜色空间。

目录

安装

使用Composer

composer require fyre/color

在PHP中

use Fyre\Color\Color;

基本用法

从RGB

  • $red是一个介于0255之间的数字。
  • $green是一个介于0255之间的数字。
  • $blue是一个介于0255之间的数字。
  • $alpha是一个介于01之间的数字,默认值为1
$color = new Color($red, $green, $blue, $alpha);

从亮度

  • $brightness是一个介于0100之间的数字。
  • $alpha是一个介于01之间的数字,默认值为1
$color = new Color($brightness, $alpha);

颜色创建

从字符串

从HTML颜色字符串创建一个新的Color

  • $colorString是一个包含十六进制颜色值、RGB、RGBA、HSL、HSLA或标准HTML颜色名称的字符串。
$color = Color::fromString($colorString);

从CMY

从CMY值创建一个新的Color

  • $cyan是一个介于0100之间的数字。
  • $magenta是一个介于0100之间的数字。
  • $yellow是一个介于0100之间的数字。
  • $alpha是一个介于01之间的数字,默认值为1
$color = Color::fromCMY($cyan, $magenta, $yellow, $alpha);

从CMYK

从CMYK值创建一个新的Color

  • $cyan是一个介于0100之间的数字。
  • $magenta是一个介于0100之间的数字。
  • $yellow是一个介于0100之间的数字。
  • $key是一个介于0100之间的数字。
  • $alpha是一个介于01之间的数字,默认值为1
$color = Color::fromCMYK($cyan, $magenta, $yellow, $key, $alpha);

从HSL

从HSL值创建一个新的Color

  • $hue是一个介于0360之间的数字。
  • $saturation是一个介于0100之间的数字。
  • $lightness是一个介于0100之间的数字。
  • $alpha是一个介于01之间的数字,默认值为1
$color = Color::fromHSL($hue, $saturation, $lightness, $alpha);

从HSV

从HSV值创建一个新的Color

  • $hue是一个介于0360之间的数字。
  • $saturation是一个介于0100之间的数字。
  • $value是一个介于0100之间的数字。
  • $alpha是一个介于01之间的数字,默认值为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值(介于01之间)。

$alpha = $color->getAlpha();

获取亮度

获取颜色的亮度值(介于0100之间)。

$brightness = $color->getBrightness();

获取色调

获取颜色的色调值(介于0360之间)。

$hue = $color->getHue();

获取饱和度

获取颜色的饱和度值(介于0100之间)。

$saturation = $color->getSaturation();

亮度

获取颜色的相对亮度值(介于01之间)。

$luma = $color->luma();

设置Alpha

设置颜色的alpha值。

  • $alpha是一个介于01之间的数字。
$newColor = $color->setAlpha($alpha);

设置亮度

设置颜色的亮度值。

  • $brightness是一个介于0100之间的数字。
$newColor = $color->setBrightness($brightness);

设置色调

设置颜色的色调值。

  • $hue是一个介于0360之间的数字。
$newColor = $color->setHue($hue);

设置饱和度

设置颜色的饱和度值。

  • $saturation是一个介于0100之间的数字。
$newColor = $color->setSaturation($saturation);

颜色操作

变暗

通过指定量变暗颜色。

  • $amount是一个介于01之间的数字。
$newColor = $color->darken($amount);

反转

反转颜色。

$newColor = $color->invert();

变亮

通过指定数量淡化颜色。

  • $amount是一个介于01之间的数字。
$newColor = $color->lighten($amount);

阴影

通过指定数量对颜色进行阴影处理。

  • $amount是一个介于01之间的数字。
$newColor = $color->shade($amount);

色调

通过指定数量对颜色进行色调处理。

  • $amount是一个介于01之间的数字。
$newColor = $color->tint($amount);

色调

通过指定数量对颜色进行色调处理。

  • $amount是一个介于01之间的数字。
$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);

静态方法

对比度

计算两种颜色之间的对比度(在121之间)。

  • $color1是一个Color对象。
  • $color2是一个Color对象。
$contrast = Color::contrast($color1, $color2);

距离

计算两种颜色之间的距离。

  • $color1是一个Color对象。
  • $color2是一个Color对象。
$distance = Color::dist($color1, $color2);

查找对比度

查找与另一种颜色最匹配的对比度颜色。

  • $color1是一个Color对象。
  • $color2是一个Color对象,默认为null
  • $minContrast是一个在121之间的数字,表示最小有效对比度,默认为4.5
  • $stepSize是一个在01之间的数字,表示每次迭代中暗化/亮化颜色的数量,默认为0.01
$contrastColor = Color::findContrast($color1, $color2, $minContrast, $stepSize);

如果$color2值为null,则使用$color1

此方法将色调/阴影$color2,直到它与$color1达到最小对比度阈值,然后返回新颜色。如果找不到有效的对比度值,则此方法将返回null

混合

通过指定数量将两种颜色混合在一起创建一个新的Color

  • $color1是一个Color对象。
  • $color2是一个Color对象。
  • $amount是一个介于01之间的数字。
$mixed = Color::mix($color1, $color2, $amount);

乘法

通过指定数量将两种颜色相乘创建一个新的Color

  • $color1是一个Color对象。
  • $color2是一个Color对象。
  • $amount是一个介于01之间的数字。
$multiplied = Color::multiply($color1, $color2, $amount);