phpexperts / color-speaker
一款易于使用的不同颜色模型的转换器。
Requires
- php: >=7.2
- ext-json: *
- phpexperts/simple-dto: ^2.3
Requires (Dev)
README
ColorSpeaker 是 PHP Experts, Inc. 的一个项目,是一个易于使用的不同类型颜色模型的转换器。
它旨在支持所有主要的颜色模型:RGB、CSS十六进制代码、HSL和HSV。
安装
通过 Composer
composer require phpexperts/color-speaker
使用方法
使用三个标准的 RGB 整数初始化它
$rgbSpeaker = ColorSpeaker::fromRGB(123, 111, 55); $hexSpeaker = ColorSpeaker::fromHexCode('#7B6F37'); $hslSpeaker = ColorSpeaker::fromHSL(49, 38, 35);
它可以很容易地用作与 CSS 兼容的字符串输出
$csv = ".box { background-color: $rgbSpeaker; }"; // .box { background-color: rgb(123, 111, 55); } $csvHex = ".box { background-color: $hexSpeaker; }"; // .box { background-color: #7B6F37; }
您还可以直接获取 RGBColor 和 HexColor
$rgbColor = $rgbSpeaker->toRGB(); /* (string) $rgbColor === rgb(123, 111, 55); SimpleDTO => { 'red' => 123, 'green' => 111, 'blue' => 55 }; */
有关更多信息,请参阅SimpleDTO 项目
您还可以导出到不同的颜色格式
$hexColor = $rgbSpeaker->toHexCode(); /** (string) $hexColor === #7B6F37 SimpleDTO => { 'hex' => '#7B6F37 } **/
所有颜色都是可序列化的,并且可以轻松转换为 JSON 对象
$linguist = ColorSpeaker::fromHexCode('#7B6F37'); $rgbColor = $linguist->toRGB(); echo json_encode($rgbColor, JSON_PRETTY_PRINT); /** { "red": 123, "green": 111, "blue": 55 } **/
用例
PHPExperts\ColorSpeaker\ColorSpeaker
✔ 可以从 RGBColor 构造
✔ 可以从 HexColor 构造
✔ 可以从 HSLColor 构造
✔ 从 RGB:将只接受 0 到 255 之间的整数(包含 0 和 255)
✔ 从 CSS 十六进制:将只接受以 "#" 符号开始的 3 位或 6 位十六进制颜色字符串
✔ 可以返回 RGBColor
✔ 可以返回 CSSHexColor
✔ 可以返回 HSLColor
✔ 可以输出为 CSS 字符串
PHPExperts\ColorSpeaker\DTOs\RGBColor
✔ 将只接受 0 到 255 之间的整数(包含 0 和 255)
✔ 将只接受文字整数
✔ 可以使用零索引数组构造
✔ 可以输出为 CSS 字符串
PHPExperts\ColorSpeaker\DTOs\CSSHexColor
✔ 可以断言一个字符串是否是有效的 CSS 十六进制颜色
✔ 十六进制代码必须以 "#" 符号开始
✔ 将只接受三位和六位十六进制代码
✔ 可以输出为 CSS 字符串
PHPExperts\ColorSpeaker\DTOs\HSLColor
✔ 将只接受有效的 HSL 几何百分比或百分整数
✔ 可以使用零索引数组构造
✔ 可以用整数构造
✔ 可以输出为 CSS 字符串
测试
phpunit --testdox
贡献者
Theodore R. Smith theodore@phpexperts.pro
GPG 指纹:4BF8 2613 1C34 87AC D28F 2AD8 EB24 A91D D612 5690
首席执行官:PHP Experts, Inc.
向https://w3schools.org.cn/colors/colors_converter.asp致以诚挚的感谢。这个出色的颜色转换器使本项目的开发变得容易了 70%!
许可证
MIT 许可证。有关更多信息,请参阅许可证文件