我正在探索我前几天的想法。
如果我允许网站上的注册用户为他们的评论和帖子选择他们自己的颜色会怎样?这样他们的存在感和个性表现会更强,也更容易发现(并忽略/禁止)麻烦制造者(#000 背景上的#900 字符)。 ;)
我怎么能保证他们的帖子仍然可读?能否推荐相关算法?
我主要在寻找 JavaScript 和 PHP 解决方案,但其他方法也可能有用。
最佳答案
用于计算颜色感知亮度的非常好的公式。为了确保足够的对比度,请确保对比度值的差异高于某个阈值。
Calculating the Perceived Brightness of a Color
C# 中的示例(我知道最初的发帖人想要一个 JavaScript 解决方案——我目前对它不是很熟悉):
bool ValidateContrast(Color foreColor, Color backColor)
{
double foreBrightness = CalcBrightness(foreColor),
backBrightness = CalcBrightness(backColor);
double threshold = 70; // Just a value, test this.
bool enoughContrast = Math.Abs(foreBrightness - backBrightness) > threshold;
return enoughContrast;
}
private double CalcBrightness(Color color)
{
double r = color.R, g = color.G, b = color.B;
double brightness = Math.Sqrt(.241 * r * r + .691 * g * g + .068 * b * b);
return brightness;
}
关于colors - 如何确保用户自定义颜色的评论仍然可读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980403/