将十六进制颜色分类为红色,绿色,蓝色,黄色,橙色,

Chr*_*ris 5 php hex colors

有没有一种方法可以轻松地将给定的十六进制颜色代码分配给更一般的类别(红色,绿色,蓝色,黄色,橙色,粉红色,黑色,白色,灰色等)?

#ffcc55->橙色,#f0f0f0->白色,...

编辑:甚至只是类似于Adobe Photoshop查找最近的Web安全颜色,因此它将颜色数量减少到256,已经是一个不错的解决方案!

Hel*_*mut 5

这是来自http://php.net/manual/en/function.dechex.php,来自 lavacube dot com 的 cory 的评论:

<?php

function color_mkwebsafe ( $in )
{
    // put values into an easy-to-use array
    $vals['r'] = hexdec( substr($in, 0, 2) );
    $vals['g'] = hexdec( substr($in, 2, 2) );
    $vals['b'] = hexdec( substr($in, 4, 2) );

    // loop through
    foreach( $vals as $val )
    {
        // convert value
        $val = ( round($val/51) * 51 );
        // convert to HEX
        $out .= str_pad(dechex($val), 2, '0', STR_PAD_LEFT);
    }

    return $out;
}

?>
Run Code Online (Sandbox Code Playgroud)

示例: color_mkwebsafe('0e5c94'); 生产:006699