将十六进制代码转换为颜色名称


Converting hex code to colour name in php

我想将十六进制颜色代码转换为颜色名称,如

<标题>什么→红色h1> 知道这是怎么可能的吗?

在你的DB你可以创建一个2列的表一个颜色名称和十六进制代码和任何时候,然后你可以很容易地得到颜色名称的十六进制值,如果存在的话。你可以从这里得到一个颜色十六进制值的集合。

在php中没有预定义的函数,如果没有数据库,就不可能在逻辑上生成颜色名称。

使用HTML和JavaScript,参见代码:

<html>
<head>
<script type="text/javascript" src="http://chir.ag/projects/ntc/ntc.js"></script>
<script>
var result = {
    r : function(hex)
    {
        var color = ntc.name(hex);
        document.getElementsByName("namecolor")[0].value = color[1];
    }
}
</script>
</head>
<body>
HEX CODE <input type="text" name="colorhex" value="ff0000" onKeyup="result.r(this.value)"><br>
COLOR NAME <input type="text" name="namecolor">
</body>
</html>

Javascript代码项目的源代码(和php的启发):http://chir.ag/projects/name-that-color/

使用PHP:这个例子一个简单严格的name =>值,也许可以用javascript代码的相同方法完成(如delta)。

<?php
$hexcolor = array(
    '000000' => 'Black',
    '000080' => 'Navy Blue',
    '0000C8' => 'Dark Blue',
    '0000FF' => 'Blue'); // Must be completed !
echo $hexcolor('000080'); // Return the strict color name
?>

尽管如此,由于代码组合太多,并且有名称的自然颜色有点低,因此很难准确地获得颜色名称。但是你可以通过这个代码

得到你输入的代码的确切颜色

这与这个问题无关,这是一个帮助目的的例子:

<?php
$color = "00000";
if(isset($_REQUEST['color']))
{
    $color = trim($_REQUEST['color']);
}
?>
<form method="post" action="">
    <table>
    <tr>
        <td>Color Code : </td>
        <td><input type="text" name="color" maxlength="6" value="<?php echo $color;?>"/></td>
        <td><input type="submit" name="submit" value="go"/></td>
    </tr>
    </table>
</form>
<div style="background-color:<?php echo $color;?>; width:100px; height:50px;"></div>