2024-07-08 14:52:59 发布
网友
我有一个介于0和1之间的数字,我想把它转换成蓝色比例中相应的RGB分量。 所以,当数字为0时,我希望获得[255255255](即白色),而如果数字是1,我希望获得[0,0255](蓝色)。在
你知道一个公式吗?或者这是如何用Python实现的? 如果还知道如何将0-1数字转换为其他色阶,例如绿色(在这个意义上,0再次对应于[255255255],而1对应于[0255,0])。在
提前感谢您能提供的任何帮助!在
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)
这是一个奇怪的“尺度”,因为它从白色变成蓝色,而不是从黑色([0,0,0])到蓝色。
总之,这只是一个线性插值:
如何将这一点扩展到其他颜色组件应该是显而易见的。
有关两种颜色混合的一般问题,请参见this answer。在你的例子中,其中一种颜色是白色,另一种颜色是蓝色,但是你还想知道红色和绿色。
使用HSL color space获取正确的值。用色调来定义正确的颜色,比如蓝色,以值“0.6”为例。饱和度可以是1的最大值,并取您的数字来控制亮度。0表示黑色,0.5表示颜色,1表示白色。所以我们只使用0.5到1的范围。定义正确的HSL颜色后,将其转换为RGB color space。 把它们放在一起
相关问题 更多 >
编程相关推荐