将01数字转换为RGB蓝色刻度(Python)

2024-07-08 14:52:59 发布

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

我有一个介于0和1之间的数字,我想把它转换成蓝色比例中相应的RGB分量。 所以,当数字为0时,我希望获得[255255255](即白色),而如果数字是1,我希望获得[0,0255](蓝色)。在

你知道一个公式吗?或者这是如何用Python实现的? 如果还知道如何将0-1数字转换为其他色阶,例如绿色(在这个意义上,0再次对应于[255255255],而1对应于[0255,0])。在

提前感谢您能提供的任何帮助!在


Tags: 数字rgb比例公式分量蓝色意义绿色
3条回答
def green(brightness):
    brightness = round(255 * brightness) # convert from 0.0-1.0 to 0-255
    return [255 - brightness, 255, 255 - brightness]

def blue(brightness):
    brightness = round(255 * brightness) # convert from 0.0-1.0 to 0-255
    return [255 - brightness, 255 - brightness, 255]

# etc., green(1.0) -> [0, 255, 0]

这是一个奇怪的“尺度”,因为它从白色变成蓝色,而不是从黑色([0,0,0])到蓝色。

总之,这只是一个线性插值:

def make_blue(alpha):
  invalpha = 1 - alpha
  scaled = int(255 * invalpha)
  return [scaled, scaled, 255]

如何将这一点扩展到其他颜色组件应该是显而易见的。

有关两种颜色混合的一般问题,请参见this answer。在你的例子中,其中一种颜色是白色,另一种颜色是蓝色,但是你还想知道红色和绿色。

使用HSL color space获取正确的值。用色调来定义正确的颜色,比如蓝色,以值“0.6”为例。饱和度可以是1的最大值,并取您的数字来控制亮度。0表示黑色,0.5表示颜色,1表示白色。所以我们只使用0.5到1的范围。定义正确的HSL颜色后,将其转换为RGB color space。 把它们放在一起

import colorsys 
colorsys.hls_to_rgb(0.6, 1, YOURNUMBER * 0.5 + 0.5)

相关问题 更多 >

    热门问题