php - 使用 PHP 生成随机颜色

标签 php html colors

我试图在 PHP 中生成随机的 HTML 颜色,但我无法让它们看起来相似或属于同一系列。除了生成和连接 6 个随机十六进制数字之外,是否有一些函数可以用来生成与另一种颜色“相似”的颜色?

最佳答案

你可以

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

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

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

编辑:我意识到在第 1 步中生成 3 个随机基数将使您看起来不那么柔和(灰色)。然后你可以按照步骤 2 和 3 来获得不同的阴影等。正如我已经提到的(并且,正如@Peter 提到的,增加修饰符数量会冒着获得更少“相似”颜色的风险)

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

random, similar colors

编辑 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/>";
}
?>

关于php - 使用 PHP 生成随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263140/

相关文章:

php - 通过 PHP 将 CSV 文件导入 SQLite 数据库

php - 我想插入到一个表中,从 php 中同一数据库中的另一个表获取的数据

c# - 将视频分享到Facebook墙

python - 在带有美丽汤的特定标签后获取文本

java - 遍历Java中的所有颜色

php - 写入在线mysql数据库

php - 电子邮件地址作为密码盐?

javascript - Angular 隐藏形式

algorithm - 缩放和减少颜色以减小扫描文件的大小

css list li 点一种颜色,文本另一种颜色(仅限CSS)