改变RGB颜色的亮度

时间:2015-04-07 08:02:21

标签: c graphics colors

我听说很简单

R*=f;
G*=f;
B*=f;

其中f是标量值0 .. 1.0或更高 改变亮度是不是很合适的方式 的颜色,但我找不到一些代码片段 获得更好的东西(没有太多的学习 色彩理论) 也许有人会给我这样的剪断? TNX

2 个答案:

答案 0 :(得分:0)

将颜色转换为HSL或HSV,然后调整亮度(L)或值(V)。如果需要,转换回RGB。

答案 1 :(得分:-1)

因为0,0,0是黑色而255,255,255是白色的(中间是灰度),所以你的公式确实是一个非常好的近似值,用于改变给定颜色值的亮度

感知亮度不是完全,但对大多数应用程序来说效果都不错。

从RGB到Lightness的简单转换是:

L = 1/3 * (R+G+B)

正如您从这个公式中看到的那样,f * L和您的方法是相同的。