小东西没我想象中简单

贴个资料备忘。

 

 

这两天在研究用JAVA开发类似MSN机器人的应用程序,今天想到要让程序每次发送消息的时候更换一种随机的字体颜色,于是这就有一个问题,假设大 部分情况下背景色是白色(#FFFFFF)的,万一随机出来的颜色太淡看不清楚怎么办呢?这时候就需要一个对于颜色的判断标准,我首先想到的就是亮度,每 种颜色有它的色彩亮度,这个计算在JPG压缩等场合也会用到。这里提供一个由RGB计算色彩知觉亮度的公式:

Y = ((R*299)+(G*587)+(B*114))/1000

根据这个公式,白色的知觉亮度最大,为255,而黑色最小,为0,根据W3C标准,字体色和背景色的知觉亮度差值大于125,也就是至少有50%亮 度差异的情况下,人眼比较容易辨认。看看上面这个公式,可以发现在亮度计算中,RGB所占有的权重不同,绿色居然占到了58.7%的权重,以前还真没注意 到……

除去亮度以外,背景和字体的色彩差异也是对辨认感有影响的,而色彩差异则是通过计算两种色彩RGB的差值绝对值之和,即:

Δ = |R1-R2| + |G1-G2| + |B1-B2|

根据这个公式,黑色和白色的差异最大,为765,而W3C的标准建议,背景和字体颜色的色彩差异应当大于500,也就是至少有35%的色彩差异,人眼才容易分辨。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值