Tra*_* A. 10 python random python-imaging-library
我刚刚在朋友的建议下在python中选择了图像处理,以生成随机颜色的图案.我发现这个在线脚本可以在RGB光谱中生成各种不同的颜色.
def random_color():
levels = range(32,256,32)
return tuple(random.choice(levels) for _ in range(3))
Run Code Online (Sandbox Code Playgroud)
我很有兴趣将此脚本附加到仅生成三种随机颜色中的一种.优选红色,绿色和蓝色.
var*_*wal 26
在256(也称为8字节)范围内生成RGB三元组的一种巧妙方法是
color = list(np.random.choice(range(256), size=3))
color现在是一个大小为3的列表,其值在0-255范围内.您可以将其保存在列表中,以记录之前是否生成颜色.
Kha*_*oti 17
您也可以使用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)
Run Code Online (Sandbox Code Playgroud)
例如
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)
Run Code Online (Sandbox Code Playgroud)
['#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()
Run Code Online (Sandbox Code Playgroud)
小智 10
这里:
def random_color():
rgbl=[255,0,0]
random.shuffle(rgbl)
return tuple(rgbl)
Run Code Online (Sandbox Code Playgroud)
结果是红色,绿色或蓝色.该方法不适用于其他颜色组,但您必须构建所有颜色的列表,然后使用random.choice随机选择一种颜色.
from random import randint
r = randint(0, 255)
g = randint(0, 255)
b = randint(0, 255)
rand_color = (r, g, b)
Run Code Online (Sandbox Code Playgroud)
您还可以使用它random.randrange()来减少打字次数。
from random import randrange
r = randrange(255)
g = randrange(255)
b = randrange(255)
rand_color = (r, g, b)
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用一根线来完成此操作!
from random import randrange
rand_color = (randrange(255), randrange(255), randrange(255))
Run Code Online (Sandbox Code Playgroud)
然后你就可以用这个颜色做任何你想做的事情。你可以做的一件事是你可以在 pygame 中使用随机颜色创建一个形状。
from random import randrange
import pygame
rand_color = (randrange(255), randrange(255), randrange(255))
pygame.draw.line(screen, rand_color, (0, 0), (600, 400), 20)
Run Code Online (Sandbox Code Playgroud)
小智 6
color = lambda : [random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)]
Run Code Online (Sandbox Code Playgroud)
受其他答案的启发,这是更正确的代码,可以生成 0-255 整数值,并在需要 RGBA 时附加 alpha=255:
tuple(np.random.randint(256, size=3)) + (255,)
Run Code Online (Sandbox Code Playgroud)
如果您只需要 RGB:
tuple(np.random.randint(256, size=3))
Run Code Online (Sandbox Code Playgroud)
如果您不希望从 256\xc3\x97256\xc3\x97256 颜色的全部可能空间中对颜色进行采样 - 因为以这种方式生成的颜色可能看起来不“漂亮”,其中许多颜色太暗或太暗白色——您可能想从颜色图中采样颜色。
\ncmpy包包含来自 Matplotlib 的颜色图(向下滚动以查看展示),并允许简单的随机采样:
\nimport cmapy\nimport random\nrgb_color = cmapy.color(\'viridis\', random.randrange(0, 256), rgb_order=True)\nRun Code Online (Sandbox Code Playgroud)\n您可以通过添加范围步骤使颜色更加清晰:random.randrange(0, 256, 10)。
| 归档时间: |
|
| 查看次数: |
63981 次 |
| 最近记录: |