cyberalien/color

此包已被放弃,不再维护。未建议替代包。

颜色库

1.0.0 2017-04-18 10:27 UTC

This package is auto-updated.

Last update: 2021-09-14 15:23:49 UTC


README

我需要一个库,它

  • 服务器端(PHP)和客户端(浏览器)有类似的代码。
  • 有与商业项目兼容的许可。

没有库能满足这些要求。

此库有2种语言版本,以便在客户端网络组件和服务器端脚本中使用。

  • PHP
  • JavaScript,适用于Node.js和浏览器。浏览器版本没有依赖项。

特性

库只有一个对象:Color

Color对象表示颜色。您可以

  • 设置或获取RGB和HSL颜色空间中的颜色及其颜色分量,可选的alpha通道。
  • 导入/导出颜色到/从不同的常用字符串格式:十六进制、IE十六进制、rgb()、hsl()、颜色关键字。
  • 混合颜色。
  • 获取亮度并计算颜色对比度。

当需要时,类会自动在颜色空间之间进行转换。

代码针对性能进行了优化。使用了不寻常的编码风格,以便在不同编程语言之间保持代码的一致性。

用法

use \CyberAlien\Color;
    
// Create simple color object, get HEX string
$color = new Color();
$color->setRGB(10, 20, 30);
$color->toHex();
    
// Create color object from string
$color = Color.fromString('rgba(10, 20, 30, .5)');
$color->getRGBA();
    
// Change color components in different color spaces
$color = Color.fromString('#f00');
$color->setHue(180);
$color->toString(); // '#00ffff'
$color->toHex(true); // '#0ff' - compressed hex string
 
// Mix colors
$color = Color.fromString('blue');
$color2 = Color.fromString('red');
$color->mix($color2, 50); // 50% of each color
$color->toKeyword(); // 'purple'
    
// Manipulate color spaces
$color = Color.fromString('yellow');
$color->setHue($color->getHue() + 180);
$color->setLightness(25);
$color->toHex(); // '#000080'
$color->toHSLString(); // 'hsl(240, 100%, 25%)'
    
// Calculate contrast between 2 colors
$color = Color.fromString('yellow');
$color2 = Color.fromString('darkblue');
$color->getContrast($color2); // 14.245...

文档

文档将在新网站准备就绪后添加。

目前,您可以通过阅读src/color.js或lib/color.php中的函数名称和docblocks轻松了解它。代码有良好的文档。

颜色值使用以下范围

  • 红色、绿色、蓝色:0-255
  • 色调:0-360
  • 亮度、饱和度:0-100
  • alpha:0-1

要求

PHP库需要PHP 5.4或更高版本。

JavaScript库是用ES6编写的,但已编译成ES5代码以供旧浏览器使用。

单元测试

要运行测试,请运行以下命令

./bin/phpunit

或者,如果您已安装Node.js

npm test

许可

此库采用MIT许可。这意味着您可以在开源和商业项目中使用它。