有没有办法轻松地将给定的十六进制颜色代码分配给更一般的类别(红色、绿色、蓝色、黄色、橙色、粉色、黑色、白色、灰色……)?
比如 #ffcc55
-> 橙色,#f0f0f0
-> 白色,...
编辑:甚至类似于 adobe photoshop 找到最近的网络安全颜色,因此它将颜色数量减少到 256,这已经是一个很好的解决方案了!
最佳答案
这是来自 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;
}
?>
例子:color_mkwebsafe('0e5c94'); 产生:006699
关于php - 将十六进制颜色分类为红色、绿色、蓝色、黄色、橙色、,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486621/