如何确定亮度%?

问题描述 投票:0回答:3

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

我尝试使用 W3C 发布的相对亮度公式,虽然范围是[0,1],但红色是

0.21
,白色是
1.00

我在想,可能workwithcolor做的就是先把颜色转成灰度,然后读取灰度的亮度。我试过了,但仍然没有给出相同的结果。

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

algorithm colors rgb formula luminance
3个回答
5
投票

在这里检查公式: 决定RGB颜色亮度的公式

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

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

编辑: 对于相对亮度,除以最大值 (255) 你得到 21%

对于白色,你得到 100%


3
投票

Luminance, Luminosity 和 Brightness 不是一回事。 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 - 您可以使用杰里建议的亮度公式(还有一些其他公式可以提高性能)。 2 - 您可以在 HSL 颜色空间中将饱和度更改为 0%,这正是 http://www.workwithcolor.com/hsl-color-schemer-01.htm 所做的。


0
投票

获得它们显示的值的一种方法是将颜色从 sRGB 转换为 CIE-XYX,然后从 CIE-XYZ 转换为 L*a*b*(或 CIELAB)

在 CIELAB 中,L* 被描述为感知亮度,即页面显示为亮度的值。

我在这里回答了同样的事情,因为这两个问题似乎是一样的

© www.soinside.com 2019 - 2024. All rights reserved.