我发现有用的php方法可以生成随机的十六进制颜色值,但是它们可以输出从黑色到255白色的颜色吗?
但我想知道我是否可以设置一个范围'所以颜色只在两个参数之内:
例如。随机"黄色"或所有柔和的颜色,或只有明亮的颜色,不包括黑暗或黑色等...
答案 0 :(得分:1)
以下代码摘录使用min
和max
参数rand()
来限制返回值的范围(min≥0,min≤max,max≤255) :
$r = rand($min_r, $max_r);
$g = rand($min_g, $max_g);
$b = rand($min_b, $max_b);
然后我们可以组合成一个颜色参考。
$c = ($r << 16) + ($g << 8) + $b;
$hex = dechex($c);
答案 1 :(得分:1)
Gavriel的回答似乎有一些缺点。
特别是r,g和amp;的组合。 b进入颜色参考可能不会产生合法的6-hexdigit颜色参考。它还需要一个领先的'#'。我建议用以下内容替换最后一行:
$colref = "#" . substr("000000".dechex($n), -6);
此外,如果您从“黄色”或“粉彩”或“深色”等概念开始,则从HSV(色相饱和度值)颜色系统开始然后将其转换为RGB可能更为自然。如果是,则这是function for the conversion from HSV to RGB