【问题标题】:Colors: White if background is DARK and BLACK when is LIGHT颜色:如果背景是暗的,则为白色;如果背景为亮,则为黑色
【发布时间】:2011-09-19 10:03:29
【问题描述】:

我在自定义标签中绘制了一些文本。

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

所以,当背景为 DARK 时,我想绘制白色的前景文本,当它的 LIGHT 时,我想绘制黑色的前景。

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

【问题讨论】:

  • @KMån:我不需要更深或更浅的颜色变体。我需要检测给定颜色本身是浅色还是深色。
  • 您可能想接受自己的答案。使用预定义函数显然比重新发明轮子要好。

标签: .net gdi+


【解决方案1】:

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

您可能希望给蓝色赋予较低的权重。 0.3*R+0.6*G+0.1*B 是常见的选择。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 2021-03-07
      • 2019-12-13
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2016-08-17
      • 2011-04-25
      相关资源
      最近更新 更多