你如何计算“突出颜色”?

时间:2015-12-29 21:26:39

标签: c++ algorithm colors highlight

我必须为C ++ / VCL应用程序中的特定控件编写自己的鼠标悬停代码。问题是,考虑到前景色和背景色的任何组合,如何计算高亮颜色以指示鼠标已超过该控件?

我找到了有关如何将RGB转换为HSL并调整亮度的文章(参考:how to highlight a given color in c sharpalgorithm to switch between rgb and hsb color values),所以我有数学部分。当文本颜色已经是白色时,它决定了该怎么做。或者如果用户在白色上使用黑色,则使黑色变亮使其在白色上变灰,并且非常难以阅读。

我在想我可能想要做一些事情,比如拍摄背景颜色,在色轮上找到相反的颜色(我不知道该怎么做)。如果该颜色与文本颜色太接近(无论如何确定),请使其更亮或更暗。

有没有人有他们愿意分享的算法?

谢谢!

修改:此问题被标记为Determine font color based on background color的副本。该解决方案选择黑色或白色作为给定背景颜色的字体颜色。我想更进一步,当鼠标悬停在该文本上时,选择第三种颜色作为突出显示。谢谢!

0 个答案:

没有答案