去饱和RGB颜色的算法



我有个问题。有没有什么方法或算法可以让我在不将颜色转换为HSV或HSL的情况下对RGB值进行去饱和处理?我的RGB输入将完全饱和,因此我只需要一种方法来去饱和我的颜色。

我正在做一个颜色选择器,我需要一个快速有效的方法来做这件事。任何建议都将不胜感激:(

简单方法(忽略感知亮度,如0.3R+0.6G+0.11B和其他公式(:

初始颜色(r,g,b)
相同强度的灰色(i,i,i)
其中i = (r + g + b) / 3

与灰色成分的偏差:

dr = i - r
dg = i - g
db = i - b

让参数t从初始饱和颜色的0变为灰色颜色的1。所以

r' = r + dr * t  
g' = g + dg * t
b' = b + db * t

最新更新