根据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/
答案 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。