如何确定亮度%?

时间:2013-10-30 17:33:08

标签: algorithm colors rgb formula luminance

根据http://www.workwithcolor.com/color-luminance-2233.htm,RED(#FF0000)的亮度为54%。浅粉色(#FF8080)有亮度:89%。我们的设计师喜欢它,但它是如何确定的?试试这里:http://www.workwithcolor.com/hsl-color-schemer-01.htm

我尝试使用relative luminance formula published by W3C,但范围为[0,1],红色为0.21,白色为1.00

我在想,也许workwithcolor所做的是首先将颜色转换为灰度,然后读取灰度的亮度。我尝试了但它仍然没有给出相同的结果。

到目前为止我已尝试过:http://jsfiddle.net/HytZQ/

2 个答案:

答案 0 :(得分:2)

在这里查看公式: Formula to determine brightness of RGB color

Luminance (standard, objective): (0.2126*R) + (0.7152*G) + (0.0722*B)

把R = 255,G = B = 0,你得到54

修改 对于相对亮度,除以最大值(255) 你得到21%

对于白色,你得到100%

答案 1 :(得分:2)

亮度,亮度和亮度不是一回事。 HSL颜色模型很容易理解,其中一个组件是L(亮度)。

根据您的要求,您不应该关注亮度。请阅读链接中的讨论:

http://www.cambridgeincolour.com/forums/thread23366.htm

RED(#FF0000)在100%饱和度时的亮度为50%,但我们使用的软件程序会略微调整值以考虑感知因素。

您需要的是从纯色开始。纯色是HSL色彩空间中的颜色,其亮度为50%,饱和度为100%,更改色调值可为您提供纯色。通过HSL / RGB色彩空间可提供总共6 * 60种纯色。即如果您使用下面的组合对生成的颜色求和,您将获得360纯色。

R = 255 *(x / 60),G = 0,B = 255;其中x从0变为60 R = 255 *(x / 60),G = 255,B = 0;其中x从0变为60

R = 255,G = 255 *(x / 60),B = 0;其中x从0变为60 R = 0,G = 255 *(x / 60),B = 255;其中x从0变为60

R = 255,G = 0,B = 255 *(x / 60);其中x从0变为60 R = 0,G = 255,B = 255 *(x / 60);其中x从0变为60

休息我们看到的所有颜色都是饱和度和光度的操纵。

现在, 要获得灰度图像:

1 - 您可以使用Jerry建议的亮度公式(还有一些其他公式可以获得更好的性能)。 2 - 您可以在HSL颜色空间中将饱和度更改为0%,这恰好是http://www.workwithcolor.com/hsl-color-schemer-01.htm