个性化阅读
专注于IT技术分析

如何通过PHP中的十六进制代码检索颜色的人名

本文概述

在客户的所有奇怪需求中, 最怪异的肯定是设计师之一。最近, 我需要满足一个听起来很奇怪的要求, 即通过PHP中的十六进制代码来检测颜色的名称。最初, 经过一些研究, 我发现这项任务有多困难。我在JavaScript中发现了一些实现潜力很大的实现, 但是它们在PHP语言中不可用, 因此基本上我需要在PHP中移植其中的一些脚本, 一段时间后我最终创建了该名称- -PHP中的-color库。 name-that-c​​olor的PHP版本是NTC JS库的非官方PHP端口, 用于查找最匹配(或精确)颜色的名称。

1.安装-包括颜色名称

在PHP中使用此库的首选方法是通过Composer使用以下命令:

composer require ourcodeworld/name-that-color

安装后, 你将能够使用该库的颜色解释器类。或者, 如果你不使用作曲家, 则仍然可以使用包装器。只需从存储库下载ColorInterpreter.php类, 然后使用require_once将其导入代码中即可:

<?php

require_once("ColorInterpreter.php");

$instance = new ColorInterpreter();

// Rest of the code ...
// $instance->name("#FFF");

使用ColorInterpreter类, 你将能够根据给定的代码和该类中的寄存器来猜测最接近的颜色。值得一提的是, 通过十六进制代码猜测颜色的技巧非常棘手, 对颜色命名的欣赏也可能会有所不同。但是, 原始的JS脚本会提供多种颜色, 这些颜色可能与你的十六进制代码匹配, 如果未在类中注册, 它将返回最接近的颜色。

有关此库的更多信息, 请访问Github上的官方存储库。

2.使用方法

最初, 你只需要强制转换颜色解释器类, 因为它的初始化会花费一些执行时间, 因为它会创建一个非常大的调色板, 用于将你的十六进制代码与可用数据进行比较。从实例中, 你将可以使用3种方法。我们感兴趣的只是name方法有用:

<?php

// If you are using composer, include the class
use ourcodeworld\NameThatColor\ColorInterpreter;

$instance = new ColorInterpreter();

$result = $instance->name("#008559");

// 1. Print the human name e.g "Deep Sea"
echo $result["name"] . "\n";

// 2. Print the hex code of the closest color with a name e.g "#01826B"
echo $result["hex"] . "\n";

// 3. Print wheter the given hex code is exact as a color with a name
//    or if it has been derived
if($result["exact"]){
    echo "The given hex code is exact as the name";
}else{
    echo "A similar color with a name has been picked";
}

此方法将以十六进制颜色代码为6或3位的字符串(例如#ffffff或#fff)作为第一个参数, 并返回一个数组, 该数组包含根据颜色猜测过程需要了解的数据。该数组包含3个键:

  • 十六进制:类中最接近的颜色的十六进制颜色。
  • 名称:颜色的人名。
  • 精确:布尔值, 用于确定颜色代码是否与名称完全相同。

你要查找的属性是名称键, 该键返回十六进制颜色代码的人名, 在这种情况下为”深海”颜色, 但是它几乎适用于你提供的每种十六进制颜色, 以防万一使用你的颜色, 你将收到具有相同3个项目的数组, 但是具有以下值:

  • 十六进制:#000000。
  • 名称:无效颜色:$ yourHexCodeString。
  • 确切:错误

该库与PHP 5.3、5.6和7完全兼容。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何通过PHP中的十六进制代码检索颜色的人名

评论 抢沙发

评论前必须登录!