加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 反向相反的颜色

发布时间:2020-12-14 05:29:31 所属栏目:Java 来源:网络整理
导读:我有一个用户设置,他们可以选择警报的颜色.警报是文本或按钮上的背景颜色.但问题出在哪,如果他们选择一个深蓝色,我们有黑色字母,对比度是不够的,你不能读它. 我试图做一个功能来获得反向相反的颜色,但没有太多. 有这样的功能吗? 解决方法 我发现对我来说最
我有一个用户设置,他们可以选择警报的颜色.警报是文本或按钮上的背景颜色.但问题出在哪,如果他们选择一个深蓝色,我们有黑色字母,对比度是不够的,你不能读它.

我试图做一个功能来获得反向相反的颜色,但没有太多.

有这样的功能吗?

解决方法

我发现对我来说最好的解决方案是将RGB值转换为 YIQ值.由于我们只对亮度值(由Y表示)感兴趣,所以需要进行一个单独的计算:Y =(299 * R 587 * G 114 * B)/ 1000. Java代码将如下所示:
public static Color getContrastColor(Color color) {
  double y = (299 * color.getRed() + 587 * color.getGreen() + 114 * color.getBlue()) / 1000;
  return y >= 128 ? Color.black : Color.white;
}

您可以看到,它只是根据原始颜色的亮度决定使用黑色或白色.结果在我看来非常好.权重(299,587,114)与眼睛的灵敏度(或视网膜的灵敏度)相对于相应的颜色成比例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读