cyberalien / color
此包已被放弃,不再维护。未建议替代包。
颜色库
1.0.0
2017-04-18 10:27 UTC
Requires
- php: >=5.4
Requires (Dev)
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许可。这意味着您可以在开源和商业项目中使用它。