Светлые цвета имеют более высокие значения в шестнадцатеричном формате (#FFFFFF = белый).
Было бы намного лучше создавать цвета по три, а не 6 отдельных частей, поэтому вы создаете красный, зеленый и синий компоненты.Кроме того, вы можете использовать dechex()
для преобразования из десятичного числа в шестнадцатеричное и избавиться от этой уродливой структуры switch
.
Вы можете просто установить минимальное значение в вашем rand()
выше 0 для более светлых цветов.или равным образом уменьшите максимальное значение, чтобы сделать его темнее.
function randomColor ($minVal = 0, $maxVal = 255)
{
// Make sure the parameters will result in valid colours
$minVal = $minVal < 0 || $minVal > 255 ? 0 : $minVal;
$maxVal = $maxVal < 0 || $maxVal > 255 ? 255 : $maxVal;
// Generate 3 values
$r = mt_rand($minVal, $maxVal);
$g = mt_rand($minVal, $maxVal);
$b = mt_rand($minVal, $maxVal);
// Return a hex colour ID string
return sprintf('#%02X%02X%02X', $r, $g, $b);
}
Таким образом, вы можете позвонить, например, randomColor(150,255)
, чтобы получить более светлый цвет, или randomColor(0,100)
, чтобы получить более темный цвет.