回答
沒有這樣的功能,
你需要編寫自己的功能,其獲取的R,G和B值induvidualy, 並循環到每一個值,並找出笏最接近的是(總R和G和B的OFSET最小)
,你可以在這裏找到所有HTML colornames:http://www.w3.org/TR/SVG/types.html#ColorKeywords
ex:
用戶給出[250,1,2](olwost紅色)。你有一個陣列:
$input = [255,1,2]
$colors = array("red" => [255,0,0],"green"=>[0,255,0]) // used JS array to be quiker
foreach($ .. as .. $color){ // or a sort function?
// get diff, key 0 is red key 2 is blue
$diff = abs($input[0] - $color[0]) + ... + abs($input[2] - $color[2]);
}
紅將具有一個diff:5 + 1 + 2 綠色將有:250 + 254 + 2 藍色是:250 + 1 + 253
紅色有最低的總和,所以它必須變紅。 藍色是未來,然後來綠色
你能舉個例子嗎? –
見上面編輯^ – beardhatcode
對不起,我stil沒有得到它: 現在我有這個: $ arr_input = array(255,1,2]); $ arr_colors =陣列( \t '紅' \t => \t 255,0,0, \t '綠色' \t => \t 0,255,0 ); function returnColorNameByRgbcolor($ rgb_color); \t的foreach($ arr_colors爲$顏色){ \t \t //獲取DIFF,關鍵是0紅鍵2是藍色 \t \t回聲$ arr_input [0]; \t \t \t \t // echo $ arr_input [0] - $ color [0]。 ' - '。 $ arr_input [1] - $ color [1]。 ' - '。 $ arr_input [2] - $ color [2]; \t \t $ diff = abs($ arr_input [0] - $ color [0])+ abs($ arr_input [1] - $ color [1])+ abs($ arr_input [2] - $ color [2]) ; \t \t echo $ diff。'
'; \t \t // echo $ diff。 '
'; \t \t \t} \t \t回$ COLOR_NAME; } –
請參閱下面我的代碼。我使用它來複制徽標顏色以在運行時自動更改網站主題。希望它有效!
只需傳遞圖像URL作爲函數中的參數即可。
function CopyLogoColor($logo_path){
$i = imagecreatefromjpeg($logo_path);
$rTotal = 0;
$gTotal =0;
$bTotal = 0;
$total = 0;
for ($x=0 ; $x<imagesx($i) ; $x++){
for ($y=0 ; $y<imagesy($i) ; $y++) {
$rgb = imagecolorat($i,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8)& 0xFF;
$b = $rgb & 0xFF;
$rTotal += $r;
$gTotal += $g;
$bTotal += $b;
$total++;
}
}
$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);
$r = intval($rAverage);
$g = intval($gAverage);
$b = intval($bAverage);
$r = dechex($r<0?0:($r>255?255:$r));
$g = dechex($g<0?0:($g>255?255:$g));
$b = dechex($b<0?0:($b>255?255:$b));
$color = (strlen($r) < 2?'0':'').$r;
$color .= (strlen($g) < 2?'0':'').$g;
$color .= (strlen($b) < 2?'0':'').$b;
return '#'.$color;
}
- 1. 通過十六進制或RGB獲取顏色名稱
- 2. 顏色名稱爲RGB /十六進制/ HSL/HSV等
- 3. 將十六進制顏色代碼轉換爲顏色名稱
- 4. 從十六進制顏色代碼中找到顏色名稱
- 5. 十六進制顏色到rgb顏色不準確?
- 6. 如何十六進制顏色轉換爲RGB顏色(24位)
- 7. 將十六進制顏色字符串轉換爲RGB顏色
- 8. 從十六進制字符串顏色到RGB顏色
- 9. 將十六進制顏色值轉換爲近似顏色名稱的函數?
- 10. javascript十六進制顏色轉換成rgb函數
- 11. 哪一個更快:十六進制顏色代碼或顏色名稱?
- 12. rbg或十六進制選擇顏色?
- 13. php str_replace十六進制顏色
- 14. xsl檢查顏色是否是名稱或十六進制
- 15. 字符串顏色名稱字符串顏色C#中的十六進制值
- 16. 將RGB /十六進制顏色代碼映射到一般顏色類別
- 17. 十六進制顏色代碼到RGB數字
- 18. 從java中的十六進制代碼獲取顏色名稱
- 19. 通過十六進制值獲取顏色的名稱?
- 20. 轉換顏色的十六進制值
- 21. 訂購顏色的十六進制值
- 22. 用十六進制顏色尋找最近的PMS顏色?
- 23. 如何將十六進制值轉換爲顏色名稱
- 24. 在C#中將顏色名稱轉換爲十六進制
- 25. 將RGB轉換爲十六進制顏色
- 26. 如何從十六進制轉換顏色爲RGB
- 27. C:conio顏色爲十六進制代碼/ RGB
- 28. 從UIColors中獲取RGB值從十六進制顏色派生
- 29. 將RGB顏色值轉換爲十六進制
- 30. 隨機十六進制顏色發生器+ RGB滑塊jquery
當你說「最接近」 - 你的意思是?考慮到R,G和B都在0x00和0xFF之間的標準RGB,您將獲得超過1650萬種顏色。他們中的大多數甚至沒有分配給他們的專有名稱。 –
這可能不是最好的方法,因爲你會有幾個不同的顏色具有相同的名稱。爲什麼不只顯示顏色而不是列出其名稱? – dqhendricks