生成随机颜色(RGB)

问题描述 投票:10回答:5

我刚刚在朋友的建议下在python中选择了图像处理,以生成随机颜色的图案。我发现这个在线脚本可以在RGB光谱中生成各种不同的颜色。

def random_color():
    levels = range(32,256,32)
    return tuple(random.choice(levels) for _ in range(3))

我很有兴趣将此脚本附加到仅生成三种随机颜色中的一种。优选红色,绿色和蓝色。

python random python-imaging-library
5个回答
9
投票

这里:

def random_color():
    rgbl=[255,0,0]
    random.shuffle(rgbl)
    return tuple(rgbl)

结果是红色,绿色或蓝色。该方法不适用于其他颜色组,但您必须构建所有颜色的列表,然后使用random.choice随机选择一种颜色。


18
投票

在256(也称为8字节)范围内生成RGB三元组的一种巧妙方法是

color = list(np.random.choice(range(256), size=3))

color现在是一个大小为3的列表,其值在0-255范围内。您可以将其保存在列表中,以记录之前是否生成颜色。


14
投票

您也可以使用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)

[A#S,A,F#4651,A#B,A#S,A,A,A,A,A,A,F]

让我们尝试在散点图中绘制它们

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


1
投票

使用自定义颜色(例如,深红色,深绿色和深蓝色):

import random

COLORS = [(139, 0, 0), 
          (0, 100, 0),
          (0, 0, 139)]

def random_color():
    return random.choice(COLORS)

0
投票
color = lambda : [random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
© www.soinside.com 2019 - 2024. All rights reserved.