2.0.0 2023-12-19 13:57 UTC

This package is auto-updated.

Last update: 2024-09-19 15:30:50 UTC


README

  • 支持 RGB(A)CMY(K),具有超简单的转换功能。
  • 使用可用的设置器 修改 初始化的颜色。
  • 输出任何格式的颜色,包括所有 CSS 格式。
  • 能够从任何 标准CSS 表达式解析颜色。
  • 通过您的自定义 解析器 扩展解析功能。
  • 预定义了 142 种命名的网络颜色列表。
  • 需要额外的 第三方 脚本。

预定义颜色

Predefined\RGBA 类中定义的所有 142 种标准化 HTML 颜色列表

$chocolateColor = RGBA::Chocolate();
$mistyRoseColor = RGBA::MistyRose();
$navyColor = RGBA::Navy();

一些示例

从十六进制到 CSS

$color = ColorParser::parse('#781190');
echo $color->toCSS();

从 CSS 到 GD 颜色

$color = ColorParser::parse('rgb(80, 138, 99);');
$image = imageCreateTrueColor(200, 200);
$gdColor = $color->getRGBA()->toImageColorIdentifier($image)

从 CMYK 到 RGBA

$color = ColorParser::parse('cmyk(20%, 40%, 60%, 20%');
echo $color->getRGBA()->toHexString();

转换

初始化颜色时,颜色将是 RGBA 或 CMYK。这可以通过手动操作或解析字符串来完成。

请注意,一些参数(例如 RGBA 中的 alpha 通道)在转换过程中将被忽略。

任何颜色都可以转换为另一种颜色

$rgba = new RGBA(190, 11, 32, 0.65);
$cmyk = $rgba->getCMYK(); 

带有 解析器 的示例。

$rgba = ColorParser::parse($input)->getRGBA(); 

输出

RGBA 可用的选项

$rgba->toImageColorIdentifier($image);
$rgba->toHexString($includeAlpha, $includeHashTag, $uppercase);
$rgba->toCSS();
$rgba->getCMYK();

CMYK 可用的选项

$cmyk->toCSS;
$cmyk->getRGBA;

解析颜色

使用 ColorParser::parse($input),它将尝试每个已注册的解析器。

如果没有解析器能够处理它,将抛出 ColorCannotBeParsed

默认解析器支持大多数(如果不是所有)RGBA 和 CMYK 格式,但您可以为特定需求创建您自己的 自定义解析器

开箱即用的支持

  • 从数组 [C, M, Y][C, M, Y, K] 支持 CMYK
  • 从数组 [R, G, B][R, G, B, A] 支持 RGB(A)
  • 从字符串支持 RGB(A)
    • RGB
    • ARGB
    • RRGGBB
    • AARRGGBB
    • #RGB
    • #ARGB
    • #RRGGBB
    • #AARRGGBB
  • CSS
    • cmyk(c%, m%, y%)cmyk(c%, m%, y%, k%)
    • rgb(r, g, b)rgb(r, g, b, a)

自定义解析器

创建并注册一个新的解析器,该解析器将被包含在接下来的解析中

  1. 创建一个类并实现 AbstractColorParser 接口。
  2. 当实现方法 parse($input)时
    • 如果输入无法解析 -> 抛出 ColorCannotBeParsed
    • 如果输入可以解析则返回 Color
  3. 使用 ColorParser::registerParser(AbstractColorParser $parser) 注册解析器。
  4. 下次调用 ColorParser::parse() 时,您的解析器也将被考虑。

待办事项

  1. 支持 HSV。
  2. 通过在预定义列表中找到最相似的颜色来检测颜色名称。

鸣谢

脚本由 Intellex 团队编写。