多年以前,在我长期丢失的Charles Petzold的Windows 3.0编程书中,记录了一个神奇的COLORREF或RGB值,您可以使用它来检查是否应该以浅色或深色绘制文本。例如。如果背景颜色低于此值,则使用黑色文本,如果颜色较高,则使用白色文本。有谁知道/记住这个神奇的价值是什么?
答案 0 :(得分:8)
我无法告诉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
但我不喜欢结果。对我而言,格林对红色和红色的贡献比对蓝色更有贡献,这似乎是合乎逻辑的。