【问题标题】:How to determine luminance %?如何确定亮度百分比?
【发布时间】:2013-10-30 17:33:07
【问题描述】:

根据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/

【问题讨论】:

  • 这是wikipedia 所说的相对亮度。
  • 找到了这个基于 W3C css 颜色定义的 Luminance() tech.pusherhq.com/libraries/color 的 JS 库。
  • 我喜欢您链接中显示的结果。他们似乎没有使用任何通常的嫌疑人进行转换。

标签: algorithm colors rgb formula luminance


【解决方案1】:

在此处检查公式: 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%

【讨论】:

  • Thx Jerry,我认为你是对的,但我在问题中发布的 workwithcolor 链接中的亮度 % 似乎在做不同的事情。所以虽然你是对的,但我想我问错了问题。谢谢!
  • 不知何故 workwithcolor 的公式将返回 Lum 54% 的红色,89% 的浅粉色和 100% 的白色。相对亮度公式只能返回 21% 的红色和 100% 的白色,或 54% 的红色和 255% 的白色。
【解决方案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 所做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2016-07-16
    相关资源
    最近更新 更多