Создание случайных цветов (RGB)
Я только что взял обработку изображений на python на прошлой неделе по предложению друга для создания шаблонов случайных цветов. Я нашел этот фрагмент сценария онлайн, который генерирует широкий спектр разных цветов в спектре RGB.
def random_color():
levels = range(32,256,32)
return tuple(random.choice(levels) for _ in range(3))
Мне просто интересно добавить этот скрипт только для генерации одного из трех случайных цветов. Предпочтительно красный, зеленый и синий.
Ответы
Ответ 1
Вот:
def random_color():
rgbl=[255,0,0]
random.shuffle(rgbl)
return tuple(rgbl)
Результат - красный, зеленый или синий. Этот метод не применим к другим наборам цветов, хотя вам нужно будет создать список всех цветов, которые вы хотите выбрать, а затем используйте random.choice, чтобы выбрать их в случайном порядке.
Ответ 2
Оптимальный способ генерации триглетов RGB в пределах 256 (ака 8-байтовых) диапазонов
color = list(np.random.choice(range(256), size=3))
color
теперь представляет собой список размеров 3 со значениями в диапазоне 0-255. Вы можете сохранить его в списке для записи, если цвет был создан раньше или нет.
Ответ 3
Вы также можете использовать Hex Color Code,
Name Hex Color Code RGB Color Code
Red #FF0000 rgb(255, 0, 0)
Maroon #800000 rgb(128, 0, 0)
Yellow #FFFF00 rgb(255, 255, 0)
Olive #808000 rgb(128, 128, 0)
Например,
import matplotlib.pyplot as plt
import random
number_of_colors = 8
color = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])
for i in range(number_of_colors)]
print(color)
['# C7980A', '# F4651F', '# 82D8A7', '# CC3A05', '# 575E76', '# 156943', '# 0BD055', '# ACD338']
Давайте попробуем построить их на точечной диаграмме
for i in range(number_of_colors):
plt.scatter(random.randint(0, 10), random.randint(0,10), c=color[i], s=200)
plt.show()
![enter image description here]()
Ответ 4
С пользовательскими цветами (например, темно-красный, темно-зеленый и синий):
import random
COLORS = [(139, 0, 0),
(0, 100, 0),
(0, 0, 139)]
def random_color():
return random.choice(COLORS)
Ответ 5
color = lambda : [random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
Ответ 6
Вдохновленный другими ответами, это более правильный код, который выдает целочисленные значения 0-255 и добавляет альфа = 255, если вам нужен RGBA:
tuple(np.random.randint(256, size=3)) + (255,)
Если вам просто нужен RGB:
tuple(np.random.randint(256, size=3))