我有一張圖像,我想根據變量設置的顏色更改顏色。我遇到的問題是,該值來自數據源作爲十六進制,而imagecolourset與rgb一起使用。 我已成立了一個轉換功能:如何將十六進制轉換爲rgb以便它可以與imagecolourset一起使用?
function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);
if(strlen($hex) == 3) {
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
} else {
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
}
$rgb = array($r, $g, $b);
return implode(",", $rgb); // returns the rgb values separated by commas
}
,然後用這個像這樣:
$homeRGB = hex2rgb($homeColour);
imagecolorset($him,$hindex, $homeRGB);
,但我得到一個錯誤消息說,imagecolorset只節選5個參數而且只有3套。結果應該打印225,225,225,所以我不明白爲什麼它只讀取1個參數而不是3個。如果我手動輸入225,225,225,那麼代碼工作正常。不知道我去哪裏錯了?
我曾試圖把結果變成整數使用不同的方法,但沒有奏效。非常感謝你的幫助 :-) – rmsGreig