You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

8位十六进制/RGBA颜色亮度计算求助:网站对比度计算遇阻

如何计算RGBA与8位十六进制颜色的相对亮度?

计算网站对比度时,若需处理RGBA或8位十六进制颜色的相对亮度,可按以下方法执行:

一、8位十六进制颜色的相对亮度计算

相对亮度(Relative luminance)在sRGB色彩空间中定义为:归一化后0代表纯黑,1代表纯白,计算公式为:
L = 0.2126 * R + 0.7152 * G + 0.0722 * B

具体计算步骤:

  • 十六进制转8位RGB值:将十六进制颜色(如#RRGGBB)的RR、GG、BB分量分别转换为0-255的十进制数值,记为R8bit、G8bit、B8bit。
  • 归一化到sRGB范围:
    RsRGB = R8bit / 255
    GsRGB = G8bit / 255
    BsRGB = B8bit / 255
    
  • 伽马校正:对每个归一化后的通道值做非线性转换:
    if RsRGB <= 0.03928:
        R = RsRGB / 12.92
    else:
        R = ((RsRGB + 0.055) / 1.055) ** 2.4
    
    if GsRGB <= 0.03928:
        G = GsRGB / 12.92
    else:
        G = ((GsRGB + 0.055) / 1.055) ** 2.4
    
    if BsRGB <= 0.03928:
        B = BsRGB / 12.92
    else:
        B = ((BsRGB + 0.055) / 1.055) ** 2.4
    
  • 计算最终相对亮度:代入开头的L公式即可得到结果。

二、RGBA颜色的相对亮度计算

RGBA包含透明度通道,需先将其与背景色混合为不透明RGB颜色,再按上述步骤计算:

  • 转换透明度值:将Alpha通道的0-255数值转换为0-1的小数(A = Alpha / 255)。
  • 与背景色混合:假设背景色的8位RGB值为R_bg、G_bg、B_bg,前景色的8位RGB值为R_fg、G_fg、B_fg,混合后的RGB值为:
    R = A * R_fg + (1 - A) * R_bg
    G = A * G_fg + (1 - A) * G_bg
    B = A * B_fg + (1 - A) * B_bg
    
  • 计算相对亮度:将混合后的R、G、B按8位十六进制颜色的步骤计算相对亮度。

内容的提问来源于stack exchange,提问作者Jenny Fer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:17:38