Generate random colors (RGB)

后端 未结 8 2022
-上瘾入骨i
-上瘾入骨i 2020-12-25 12:51

I just picked up image processing in python this past week at the suggestion of a friend to generate patterns of random colors. I found this piece of script online that gene

相关标签:
8条回答
  • 2020-12-25 13:17

    A neat way to generate RGB triplets within the 256 (aka 8-byte) range is

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

    color is now a list of size 3 with values in the range 0-255. You can save it in a list to record if the color has been generated before or no.

    0 讨论(0)
  • 2020-12-25 13:22

    Here:

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

    The result is either red, green or blue. The method is not applicable to other sets of colors though, where you'd have to build a list of all the colors you want to choose from and then use random.choice to pick one at random.

    0 讨论(0)
  • 2020-12-25 13:26
    color = lambda : [random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)]
    
    0 讨论(0)
  • 2020-12-25 13:27

    You could also use 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)
    

    For example

    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']

    Lets try plotting them in a scatter plot

    for i in range(number_of_colors):
        plt.scatter(random.randint(0, 10), random.randint(0,10), c=color[i], s=200)
    
    plt.show()
    

    0 讨论(0)
  • 2020-12-25 13:29

    Inspired by other answers this is more correct code that produces integer 0-255 values and appends alpha=255 if you need RGBA:

    tuple(np.random.randint(256, size=3)) + (255,)
    

    If you just need RGB:

    tuple(np.random.randint(256, size=3))
    
    0 讨论(0)
  • 2020-12-25 13:36
    import random
    rgb_full="(" + str(random.randint(1,256))  + "," + str(random.randint(1,256))  + "," + str(random.randint(1,256))  + ")"
    
    0 讨论(0)
提交回复
热议问题