2011-12-19 79 views
3

在一个项目中,我正在使用许多颜色代码。 重点不是他们是美丽的,只是differents。(我也想能够不断地有相同的颜色代码刷新相同的领域(没有随机彩色发生器)) 我在想着取名字段并将它们转换为十六进制颜色。 是否有预定义的功能?字符串到十六进制颜色代码

例:

$string = "Blablabla"; 
$colorCode = toColorCode($string); 

function toColorCode($initial){ 
    /*MAGIC MADNESS*/ 
    return array("R"=>XXX,"G"=>XXX,"B"=>XXX); 
} 

忘了说:这是很重要的价值仅是数字。

+0

在一个侧面说明,这是从一个UI设计点是个好主意?你如何确保你的文字与背景形成鲜明对比?我怀疑有人会欣赏白色背景上的黄色文字 – 2011-12-19 16:22:14

+0

有两个问题: 1.您对于toColorCode()的参数有什么期待?一个词,'白色',还是一个十六进制代码'FFFFFF'? 2.是否有理由需要返回一组值而不是实际的十六进制代码? – 2011-12-19 16:22:38

+0

所以,你想把字符串“FF5600”变成0xFF5600? – Frank 2011-12-19 16:25:05

回答

3

据我所知,你想为一个字符串生成一个相当独特的颜色代码。

的easies方法是调用校验功能的字符串,例如MD5:

function toColorCode($initial){ 
    $checksum = md5($initial); 
    return array(
    "R" => hexdec(substr($checksum, 0, 2)), 
    "G" => hexdec(substr($checksum, 2, 2)), 
    "B" => hexdec(substr($checksum, 4, 2)) 
); 
} 
+0

会很好,如果MD5只返回数字字符,我忘了提及。 – 2011-12-19 16:59:56

+2

将子字符串换成:'hexdec(substr($ checksum,0,2))' – 2011-12-19 17:05:37

+0

感谢贾斯汀,并没有为此付出。这解决了我的问题! – 2011-12-19 17:08:49

相关问题