3

このコードを使用してランダムな色を生成しています (正常に動作しています)。

  {
       $r = rand(128,255); 
       $g = rand(128,255); 
       $b = rand(128,255); 
       $color = dechex($r) . dechex($g) . dechex($b);
       return "#".$color;
  }

明るい色のみを生成する方法/組み合わせがあるかどうか疑問に思っていますか?

ありがとうございました

4

4 に答える 4

4

元のコードは期待どおりに機能しません - 低い数値が生成された場合#1ffff(1 は低い赤の値) を取得する可能性があります - これは無効です。これを使用する方がはるかに安定しています:

echo "rgb(".$r.",".$g.",".$b.")";

カラー仕様なのでrgb(123,45,67)バッチリです。

同様に、hsl の乱数を生成できます。

echo "hsl(".rand(0,359).",100%,50%)";

これにより、任意の色相の完全に飽和した通常の明度の色が生成されます。ただし、最近のブラウザーのみが HSL をサポートしているため、ブラウザーのサポートが懸念される場合は、RGB に強制した方がよい場合があることに注意してください。

于 2012-05-22T20:13:03.163 に答える
3
function getRandomColor() {
    $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
    $color = '#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
    return $color;
}
于 2013-04-19T09:38:28.030 に答える
2

このコードを使用して、背景色が明るいか暗いかを検出し、適切なフォント色を選択したので、ランダムに生成された、またはユーザーが入力した背景色でフォント色が引き続き読み取り/表示されます。

//$hex: #AB12CD
function ColorLuminanceHex($hex=0) {
  $hex = str_replace('#', '', $hex);
  $luminance = 0.3 * hexdec(substr($hex,0,2)) + 0.59 * hexdec(substr($hex,2,2)) + 0.11 * hexdec(substr($hex,4,2));
  return $luminance;
}


$background_color = '#AB12CD';
$luminance = ColorLuminanceHex($background_color);
if($luminance < 128) {
  $color = '#FFFFFF';
}
else {
  $color = '#000000';
}
于 2012-05-22T20:09:39.040 に答える