多年前,在我长期遗失的Charles Petzold的
Windows 3.0编程书中,有一个神奇的COLORREF或RGB值记录下来,你可以用它来检查你是否应该用浅色或深色绘制
文字.例如.如果背景颜色低于此值,则使用黑色文本,如果颜色较高,则使用白色文本.有谁知道/记住这个神奇的价值是什么?
我不知道COLORREF,但是使用
luminance作为阈值我得到了很好的结果:
Y= 0.3 * R + 0.59 * G + 0.11 * B
颜色表示为0.0到1.0之间的十进制值.
如果Y> = 0.5,则认为背景为“光”(并使用深色文本),如果Y <0.5,则相反. 我记得我也使用过其他公式,包括简单的意思:
L = (R+G+B)/3
但我不喜欢这个结果.我觉得合乎逻辑的是,除了蓝色之外,绿色比红色和红色更有助于亮度.