marando / color

PHP类,用于表示和转换颜色。

此软件包的官方存储库似乎已不存在,因此软件包已被冻结。

1.3 2017-02-20 05:18 UTC

This package is not auto-updated.

Last update: 2024-07-11 08:57:24 UTC


README

PHP类,用于表示和转换颜色

安装

composer require marando/color

使用/示例

导入

use Marando/Color/Color;

创建颜色

解析

一个表示颜色的hsl、rgb或hex HTML字符串可以被解析

Color::parse('hsl(90,90%,50%)');  // #17d98f
Color::parse('rgb(23,217,143)');  // #80f20d
Color::parse('c9189d');           // #c9189d

从RGB

$color = Color::rgb(0, 255, 0);

注意: RGB值范围从0到255。

从HSL

$color = Color::hsl(180, 0.5, 0.5);

注意: 色调范围从0到360,饱和度和亮度范围从0到1。

从Hex

$color = Color::hex('#f80');
$color = Color::hex('#7c60e2');

注意: 支持三位和六位十六进制代码。

转换

到RGB

$color = Color::hsl(180, 0.5, 0.5);

$color->r;  // 64
$color->g;  // 191
$color->b;  // 191

获取上述数组的数组

$color->rgb;  // [64, 191, 191]

到HSL

$color = Color::rgb(0, 255, 0);

$color->h;  // 120
$color->s;  // 1
$color->l;  // 0.5

获取上述数组的数组

$color->hsl;  // [120, 1, 0.5]

到Hex

$color = Color::hsl(180, 50, 50);

$color->hex;  // #40bfbf

杂项

颜色距离

这可以用来比较颜色之间的距离。在下面的示例中,紫水晶色比黑色更接近白色。这对于确定适当的对比颜色很有用。

$black = Color::hex('#000');
$white = Color::hex('#fff');

$amethyst = Color::hex('#9668c2');

$amethyst->dist($black);  // 266.36816626617
$amethyst->dist($white);  // 193.77048278827

随机颜色

可以通过使用rand()静态构造函数生成随机颜色

Color::rand();  // #c42c11

您可以通过指定HSL值范围来限制随机颜色的范围

for ($i = 0; $i < 10; $i++)
  Color::rand([10, 20], [0.3, 0.4], [0.8, 0.9]);

注意色调、饱和度和亮度都保持在定义的范围内

#ebd7d2 = hsl(12, 0.38, 0.87)
#e4d0c8 = hsl(17, 0.34, 0.84)
#e7d3ce = hsl(12, 0.34, 0.86)
#e0c3b9 = hsl(15, 0.39, 0.80)
#e5d0ca = hsl(13, 0.34, 0.85)
#e5cfc4 = hsl(20, 0.39, 0.83)
#eedfdc = hsl(10, 0.35, 0.90)
#e9d7d0 = hsl(17, 0.36, 0.86)
#ebdad2 = hsl(19, 0.38, 0.87)
#e1cbc3 = hsl(16, 0.33, 0.82)