首页 > 解决方案 > 计算 RGB 值

问题描述

我目前正在编写一个颜色选择器并尝试创建一个函数,该函数采用 0 到 255 (RGB) 之间的 3 个整数。

选色器

如果您查看上面链接的图像,您可以看到中心有一个彩虹渐变。那里的所有 RGB 值至少包含一个 0 和一个 255 的整数。另一个可以是 0 到 255 之间的任何值。然后在图像的左侧有一个正方形,其中包含所有“子-这个“彩虹色”的颜色”。

该函数应该采用这种子颜色的 RGB 值(例如 R = 112,G = 158,B = 73,这是一种绿色)并给我彩虹色(R = 116,G = 255, B = 0 注意 255, 0 和两者之间的值)。

我真的试图开发一种算法来为我解决这个问题,但我只是对彩虹色进行了非常粗略的估计。我知道不可能,例如,通过 R = 19、G = 19、B = 18 获得彩虹色,因为有很多彩虹色包含这些值。但是应该有一种方法来解决这个问题。

标签: algorithmcolorscolor-picker

解决方案


该渐变对应于 HSL/HSV颜色模型hue中的颜色属性或值。chroma

因此,要构建所需的图片,您可以制作色调在 0..360 和最大饱和度范围内变化的渐变条。

当用户选择色调值时,使用相同色调但所有可能的值填充一个saturation正方形luminance

链接页面还提供了 HSL-RGB(和反向)转换的公式。请注意,某些图形库和框架已经包含用于此类转换的函数。


推荐阅读