2011-12-19 136 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

相關問題