Обратите внимание, что я уже прочитал создание произвольного шестнадцатеричного цветового кода с помощью 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();

?>

Этот скрипт генерирует светлые цвета, такие как белый, светло-желтый, голубой. Мне нужно их удалить. Потому что, если цвет фона тоже светлый, текст трудно читать.

Так есть ли способ изменить этот код генерировать только темные цвета?

4
Ranuka 27 Май 2017 в 20:12

2 ответа

Лучший ответ

Светлые цвета используют высокие значения. Понижение максимального аргумента для 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>
2
mx0 27 Май 2017 в 18:00

Пусть это вам поможет, случайный темный шестнадцатеричный цвет в 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 ().

1
Bang Roy Han 5 Апр 2018 в 09:21