计算颜色的亮度值

有时候我们需要知道某个颜色的亮度值,比如文本的背景色。当用户可以修改文本的背景色时为了使用户能够看清文字,需要根据背景色的亮度实时调节文本的颜色(黑色或白色)。

这里我使用Lab色彩空间的亮度。具体算法是由RGB色彩空间转换到XYZ 色彩空间再转换到Lab。

函数如下:返回值为0到100

function getLight(rgbHex){
var color = parseInt(rgbHex, 16);

var y = (0.2973769 * ((color & 0xff0000) >> 16) + 0.6273491 * ((color & 0xff00) >> 8) + 0.0752741 * (color & 0xff)) / 255;

if (y > 0.008856){
return 116 * Math.pow(y, 1/3) - 16;
} else {
return 903.29629629 * y;
}
}

转载于:https://www.cnblogs.com/dishuostec/archive/2011/09/07/2170148.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值