生成随机颜色(RGB)

52

上周我在朋友的建议下开始学习Python图像处理,以生成随机颜色的图案。我在网上找到了这段脚本,可以在RGB光谱范围内生成各种不同的颜色。

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

我只是想将此脚本附加到仅生成三种随机颜色之一。最好是红色、绿色和蓝色。

16个回答

1
你可以在这里使用randint%x运算符来生成颜色。
colors_ = lambda n: list(map(lambda i: "#" + "%06x" % random.randint(0, 0xFFFFFF),range(n)))

运行该函数以生成2个随机颜色:

colors_(2)

输出 ['#883116','#032a54']


1
以(r,b,g)的形式输出,看起来像(255,155,100)。
from numpy import random
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

0

假设您有一个数据框或任何数组,您可以按以下方式生成随机颜色或连续颜色。

对于随机颜色(您可以选择要生成的每个随机颜色):

arraySize = len(df.month)
colors = ['', ] * arraySize
color = ["red", "blue", "green", "gray", "purple", "orange"]
for n in range(arraySize):
    colors[n] = cor[random.randint(0, 5)]

对于连续的颜色:

import random    
arraySize = len(df.month)
colors = ['', ] * arraySize
color = ["red", "blue", "green", "yellow", "purple", "orange"]
i = 0
for n in range(arraySize):
    if (i >= len(color)):
        i = 0
    colors[n] = color[i]
    i = i+1

0

试试这段代码

import numpy as np

R=np.array(list(range(255))
G=np.array(list(range(255))
B=np.array(list(range(255))
np.random.shuffle(R)
np.random.shuffle(G)
np.random.shuffle(B)
def get_color():

    for i in range(255):
         yield (R[i],G[i],B[i])
palette=get_color()
random_color=next(palette) # you can run this line 255 times 

1
虽然这段代码可能回答了问题,但提供关于它是如何解决问题的额外上下文信息会提高答案的长期价值。 - Sven Eberth

0
import random
rgb_full=(random.randint(1,255), random.randint(1,255), random.randint(1,255))

1
您将此作为答案发布。作者的用户名默认情况下会添加在每个答案下面(除非它是社区维基)。声明这是您的答案是多余的,相反,包括解释 真的有助于提高您的帖子质量。请记住,您正在回答未来读者的问题,而这些人可能不知道您代码建议的原因。 - Neo Anderson
无论如何,random.randint(a,b) 从闭区间 [a,b] 中进行采样,即两端都包括在内,因此 random.randint(1,256) 是不正确的。 - jackson95
你为什么要构建一个元组的字符串表示而不是实际的元组? - Tomerikoo
写这篇文章时,我不知道元组的存在(我知道这听起来很愚蠢,哈哈)。 - ijka5844

-3
    from random import randint,choice
    from PIL import ImageColor
    #random choice colorlist
    colorlist = ["#23a9dd","#BE6E46","#CDE7B0","#A3BFA8"]
    #random r g b select
    r = randint(0, 255)
    g = randint(0, 255)
    b = randint(0, 255)
    #random choice selector
    qcl = choice(RandomColorButton.colorlist)
    rand_color = (r, g, b)
    #random choice selected convert in RGB int
    print(ImageColor.getcolor(qcl, "RGB"))
    print(rand_color)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接