2011-06-21 106 views
4

我在自定义标签中绘制一些文本。颜色:如果背景为黑色,则为白色,当为浅色时为黑色

用户可以修改标签背景,但控件应该根据指定的背景调节文本的可见性。

所以,当背景是DARK时,我想绘制白色的前景文字,当它的LIGHT我想要BLACK前景时。

如何“理解”颜色是浅或深?

+1

http://stackoverflow.com/questions/97646/how-do-i-determine-darker-or-lighter-color-variant-of-a-给定颜色/ 97697#97697 –

+0

@KMån:我不需要颜色的较暗或较亮的变体。我需要检测给定颜色本身是浅色还是黑色。 – serhio

+0

你可能想接受你自己的答案。使用预定义的功能显然比重新发明车轮更好。 – CodesInChaos

回答

1

一个简单的解决方案是添加背景颜色的颜色组件并将它们与阈值进行比较。

你可能想给蓝色更低的重量。 0.3*R+0.6*G+0.1*B是常见的选择。

相关问题