如何以编程方式创建N个从深色到浅色的连续等距颜色

2024-05-19 08:57:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个从深色到浅色的N种不同颜色的渐变,所有这些颜色在视觉上都是等距的。在

类似于this answer,但对于Python而不是R(只能使用标准库,而不是numpy)。在

我想要一个函数,在这个函数中,我可以给出深色,例如RGB(103,0,13),浅色,例如RGB(255,245,240),以及阴影的数量作为参数。类似于ColorBrewer的输出(但是在这里我不能定义两个结束颜色,并且我最多只能有9个阴影)。在

enter image description here

编辑:我目前所做的工作:使用colorsys.rgb_to_hls(r, g, b)将RGB值转换为HLS,并在深色和浅色之间插入色调。在


Tags: 函数answernumpy参数标准数量颜色rgb
1条回答
网友
1楼 · 发布于 2024-05-19 08:57:17

有一个办法。但是,请注意,您在上面发布的示例渐变是某种非线性渐变。下面的函数生成线性渐变。在

def generateColorGradient(RGB1, RGB2, n):
    dRGB = [float(x2-x1)/(n-1) for x1, x2 in zip(RGB1, RGB2)]
    gradient = [tuple([int(x+k*dx) for x, dx in zip(RGB1, dRGB)]) for k in range(n)]
    return gradient

print generateColorGradient((103,0,13), (255,245,240), 9)

# OUTPUT
# [(103, 0, 13), (122, 30, 41), (141, 61, 69), (160, 91, 98), (179, 122, 126), (198, 153, 154), (217, 183, 183), (236, 214, 211), (255, 245, 240)]

相关问题 更多 >

    热门问题