【发布时间】:2010-12-14 15:31:22
【问题描述】:
我想使用可用作黑色文本背景的色调、饱和度和亮度生成随机的非白色颜色。我已经为随机颜色创建了一个生成器,但是当我扫描数字时,我在看起来太暗的颜色中看不到任何清晰的图案。
如何为黑色文本生成随机的非白色背景颜色?随意用代码或伪代码回答,但绝对没有必要。
【问题讨论】:
标签: language-agnostic colors background-color
我想使用可用作黑色文本背景的色调、饱和度和亮度生成随机的非白色颜色。我已经为随机颜色创建了一个生成器,但是当我扫描数字时,我在看起来太暗的颜色中看不到任何清晰的图案。
如何为黑色文本生成随机的非白色背景颜色?随意用代码或伪代码回答,但绝对没有必要。
【问题讨论】:
标签: language-agnostic colors background-color
仅生成具有高亮度值的颜色 - 例如,如果您对 {H,S,V} 中的每一个使用范围 0-255,您将在 [0,255] 中生成 H,在 [0,255] 中生成 S, [168,255] 中的 V。那应该给你足够明亮的颜色。您可能还想限制饱和度(例如 [0,192] 中的 S),因为全亮、全饱和度颜色上的黑色可能不太可读。
您可能需要使用这些值来获得可以为您提供可用颜色的范围。
【讨论】:
我不知道颜色理论,但你可以尝试随机生成 RGB 中的 3 个分量 (xxx,xxx,xxx),使分量之和大于 X(X 取决于你想要的对比度),然后转换为 HSB。
【讨论】:
HSV 和 HSL 是损坏的模型,与感知无关。您应该在 YUV 空间(也称为 YCbCr)中生成颜色,其中强度 (Y) 通道不仅仅是 R+G+B,而是模拟红色、绿色和蓝色的感知强度。一个好的起点是尝试至少 200 的随机 Y 值和介于 -50 和 50 之间的随机 U 和 V 值。
【讨论】: