変数によって設定された色に基づいて色を変更したいというイメージがあります。私が持っている問題は、データソースからの値が16進数であり、imagecoloursetがrgbで機能するということです。 私は、変換機能を設定している。その後、16進数を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つのパラメータをexceptsでのみ3セットがあるというエラーメッセージが表示されます。結果は225,225,225を出力するはずです。なぜ私は手動で225,225,225を入力すればコードが正常に動作するのか、3の代わりに1つのパラメータとして読み取るのがわかりません。どこが間違っているのかわからない?
私は別の方法を使用して結果を整数に変換しようとしましたが、動作しませんでした。助けてくれてありがとう:-) – rmsGreig