使用PHP生成随机颜色

Ric*_*ins 13 html php colors

我正在尝试在PHP中生成随机HTML颜色,但我无法让它们看起来相似,或者在同一个系列中.是否有一些功能我可以用来生成与另一种颜色"相似"的颜色,除了生成和连接6个随机十六进制数字?

Jos*_*ell 21

你可以

  1. 在25和230(您的"基数")之间生成一个随机十进制数字
  2. 生成1到25之间的3个随机数(任意决定它们是正数还是负数)
  3. 将这三个数字添加到基数中以获得三个不同的数字(您的R,G和B)
  4. 重复步骤2和3以获得更多相似的颜色

您可以扩大修改器编号的范围(从1到25之间)以获得更多的颜色差异(您还必须更改基本编号的范围,因此保持在0到255之间).

我对PHP一无所知,这就是为什么我不放代码.但我认为这是一个有趣的问题=)

编辑: 我意识到在步骤1中生成3个随机基数将使您看起来不那么柔和(灰色)颜色.然后你可以按照步骤2和3来获得不同的阴影等,正如我已经提到的那样(并且,正如@Peter所提到的那样,增加修改器数量有可能获得更少的"相似"颜色)

此技术的示例输出(基于两组不同的基数):

随机,相似的颜色

编辑2:这是@Peter Ajtai的PHP实现

<?php
$spread = 25;
for ($row = 0; $row < 100; ++$row) {
        for($c=0;$c<3;++$c) {
        $color[$c] = rand(0+$spread,255-$spread);
    }
    echo "<div style='float:left; background-color:rgb($color[0],$color[1],$color[2]);'>&nbsp;Base Color&nbsp;</div><br/>";
    for($i=0;$i<92;++$i) {
    $r = rand($color[0]-$spread, $color[0]+$spread);
    $g = rand($color[1]-$spread, $color[1]+$spread);
    $b = rand($color[2]-$spread, $color[2]+$spread);    
    echo "<div style='background-color:rgb($r,$g,$b); width:10px; height:10px; float:left;'></div>";
    }    
    echo "<br/>";
}
?>
Run Code Online (Sandbox Code Playgroud)

  • @Peter太棒了,谢谢你在PHP中实现它! (2认同)

Max*_*Max 17

发现一些更好的东西发布在一个名为的人的博客上Craig Lotter:

$randomcolor = '#' . dechex(rand(0,10000000));
Run Code Online (Sandbox Code Playgroud)

  • 对于CSS,我们可以使用更严格的命令:`'#'.dechex(兰特(256,16777215))`.这将在#100和#ffffff之间生成十六进制颜色. (2认同)

gen*_*sis 2

你可以创建自己的函数来生成你自己的 RGB 颜色

http://sandbox.phpcode.eu/g/bf2a5/1

<?php  
function gen(){ 
    for($i=1;$i<200;$i++){ 
       echo "<div style='color:rgb($i,$i,0);'>hello</div>"; 
    } 
} 

gen(); 
?>
Run Code Online (Sandbox Code Playgroud)

或背景颜色

http://sandbox.phpcode.eu/g/bf2a5/2

<?php  
function gen(){ 
    for($i=1;$i<200;$i++){ 
       echo "<div style='background-color:rgb($i,$i,0);'>hello</div>"; 
    } 
} 

gen(); 
?>
Run Code Online (Sandbox Code Playgroud)