2017-05-27 11 views
2

私はすでにGenerating a random hex color code with PHPを読みましたが、その質問からも助けを得ました。しかし、私の質問はその質問とは異なります。PHPでランダムなダークカラーコードを生成するには?

私は下の画像のようなテキストで1000以上の画像を作成します。

enter image description here

テキストの色は常に白です。ランダムに背景色を生成する必要があります。ランダムな色を生成するために次のコードを使用します。

<?php 

function random_color_part() { 
    return str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT); 
} 

function random_color() { 
    return random_color_part() . random_color_part() . random_color_part(); 
} 

echo random_color(); 

?> 

このスクリプトは、白、淡黄色、ライトブルーのような明るい色も生成します。私はそれらを削除する必要があります。背景色も明るい色なら、テキストを読むのは難しいからです。

このコードを変更して暗い色のみを生成する方法はありますか?

+0

「光」のためのあなたのしきい値がどこにあるかに依存しますが、近いあなたの乱数が255に到達し、明るいその色があることを行っています。上限を下げると色が暗くなります。 – rickdenhaan

+0

@rickdenhaanつまり、数字が255に近いと軽いのですか?私は正しいですか?ですから 'mt_rand(0、255)'を 'mt_rand(0、150)'に変更すると、常に暗い色が返ってくるでしょうか? – Ranuka

+0

'255'定数を減らしてください。低い - 暗い。 –

答えて

1

明るい色は高い値を使用します。 rand()の最大の引数を下げると、このような暗い色、作成する必要があります。

function random_color_part() { 
    return str_pad(dechex(mt_rand(0, 127)), 2, '0', STR_PAD_LEFT); 
} 

をしかし、あなたは右の色を取得するために、正確なしきい値を試してみる必要があります。

最大カラー値(max)を下げると、このスニペットを使用して色の状態を確認できます。

function hex(i) { 
 
    var hex = i.toString(16); 
 
    if (hex.length == 1) { 
 
    hex = '0' + hex; 
 
    } 
 
    return hex; 
 
} 
 

 
var max = 150; 
 

 
for (var i = 0; i < max; i += 10) { 
 
    var td = ''; 
 
    for (var j = 0; j < max; j += 10) { 
 
    for (var k = 0; k < max; k += 10) { 
 
     var color = '#' + hex(i) + hex(j) + hex(k); 
 
     td += '<td style="background-color:' + color + ';">&nbsp;</td>'; 
 
    } 
 
    } 
 
    $('table').append('<tr>' + td + '</tr>'); 
 
}
table { 
 
    border-collapse: collapse; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
</table>

+0

質問は 'PHP'についてですが、答えは' JavaScript'です。 –

+0

@JohnChristianDeChavezの返事** PHPで '**'は、あなたがstackoverflowサイトでPHPコードを実行することができないので、追加のコードスニペットはjsにあります.. 。 – mx0

関連する問題