请注意我已阅读Generating a random hex color code with PHP,我也从这个问题得到了帮助。但我的问题与那个问题不同。
我将使用下面的图像创建1000多张图像。
文字颜色始终为白色。我需要随机生成背景颜色。我使用以下代码生成随机颜色。
<?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 :(得分: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 + ';"> </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>
答案 1 :(得分:0)
这可以帮助你,PHP中的随机深色十六进制颜色
function random_color_part() {
$dt = '';
for($o=1;$o<=3;$o++)
{
$dt .= str_pad( dechex( mt_rand( 0, 127 ) ), 2, '0', STR_PAD_LEFT);
}
return $dt;
}
你只能调用random_color_part()。