给定一个系统(例如网站),允许用户自定义某些部分的背景颜色而不是字体颜色(以保持选项数量最少),有没有办法以编程方式确定"光"或"黑暗的"字体颜色是必要的?
我确定有一些算法,但我对颜色,光度等知之甚少,无法自己解决.
我知道这不会直接反转颜色,它会"反对"它.我想知道是否有人知道一种简单的方法(几行代码)来反转任何给定颜色的颜色?
目前我有这个(这不完全是反转的定义,因为如果我传递灰色/灰色,它将返回非常相似的东西,例如127,127,127):
const int RGBMAX = 255;
Color InvertMeAColour(Color ColourToInvert)
{
return Color.FromArgb(RGBMAX - ColourToInvert.R,
RGBMAX - ColourToInvert.G, RGBMAX - ColourToInvert.B);
}
Run Code Online (Sandbox Code Playgroud) 使用 C# 我想找出十六进制颜色(网络格式,例如:#FF2233)是深还是浅,我可以根据它来决定前景色(字体颜色)应该是什么。
应用程序的用户选择颜色作为某些元素的背景。然后程序需要确定用户的背景颜色是否为暗色,然后选择白色作为字体颜色(以获得最佳可读性和对比度),否则选择黑色。
到目前为止,我一直在尝试计算“F”、“E”、“C”、“D”、“B”和“A”出现的次数。如果至少出现 4 次,我认为颜色很亮。它在大约 70% 的时间内有效。
有没有更好的解决方案?