当前位置:  开发笔记 > 编程语言 > 正文

以编程方式选择高对比度颜色

如何解决《以编程方式选择高对比度颜色》经验,为你挑选了2个好方法。

这应该是一个简单的问题,但我还没有找到一种方法使它工作.

基本上,我有一个愚蠢的localhost页面,我在我的webdevelopment中使用.当我在我们的开发服务器和本地版本的C#代码(通过主机文件从dev url重定向)之间浏览时,我知道有时会忘记'dev.foo.com'指向的内容 - 本地或服务器.

所以我创建了一个页面,它将作为我的默认网页的默认页面在本地运行,因此我可以从服务器轻松识别我的localhost.

这个页面随机地做了很多事情(包括为D&D生成角色的起始统计数据),包括设置随机背景颜色.我这样做是通过生成0到255之间的3个随机数,并将它们设置为CSS中身体背景颜色的RGB值.

给定3个R,G和B,我如何确定R2,G2和B2,使第二种颜色与第一种颜色形成高对比度?我喜欢让页面具有随机的背景颜色(它让我不习惯着陆页的外观)但我也希望能够阅读文本.



1> starblue..:

由于色彩视觉本身的分辨率太低,因此需要亮度差异才能使文本可读.

所以作为算法,我建议如下:

选择随机背景颜色.

然后决定它是浅色还是深色.例如,您可以检查三原色的平均值是大于等于128.

对于浅色使用黑色文本,对于黑暗的一个白色文本.


这里的解决方案很简洁:http://24ways.org/2010/calculating-color-contrast/

2> Tim Lesher..:

"对比度"是一个加载的单词.如果您只关心能够阅读文本,那么一种简单的方法是在基于亮度的色彩空间(如HSL)中工作,并选择亮度差异较大的前景色和背景色.

HSL和RGB之间的转换是众所周知的 - 详见维基百科.

如果你在谈论实际的色彩对比度,那就不像切割和干燥了(据我所知,有许多感知因素没有被缩减为单一颜色空间),但我怀疑你不需要那种复杂程度.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有