2

对于我的一个 Web 应用程序,我只需要随机选择深色 html 颜色代码,然后将其用作字体颜色。这样每次用户刷新页面时,字体的颜色都会发生变化。但它应该只变成深色调。有什么办法吗?

我使用以下代码:

$color = sprintf("#%x%x%x", rand(0,255), rand(0,255), rand(0,255));
4

3 回答 3

5

不要使用 255,而是使用更低的限制,例如 92。

于 2012-08-05T16:26:24.670 回答
1

这取决于你所说的黑暗是什么意思,一个非常粗略的版本可以只为 rg 和 b 选择 0 到 127 之间的随机颜色值,而不是使用完整的 255 范围。

不过,您可以通过多种方式指定暗色,并且暗色的许多变体可以具有一个或多个高于某个阈值的值。

于 2012-08-05T16:26:41.810 回答
0

“黑暗”是一个相对术语。在和之间#FFFFFF,第二个是“暗”。但一般来说,它们都不会被视为深色。还有一些不同的概念可以翻译为暗/亮,例如亮度、值、光度等。#FFFFAA#FFFFFE

因此,您需要首先定义您感兴趣的黑暗类型以及您正在测量的值的阈值。

这个关于 RGB 值亮度的问题包含各种亮度计算的算法。感知亮度可能是这个特定问题最合适的公式(尽管可能有更多的算法试图定义感知亮度,而不仅仅是列出的两个,并且您可能想要使用更高级的人类感知色彩空间之一在那里,如 HCL 或 CIECAM02,而不是 RGB),所以只需颠倒公式即可在特定亮度范围内生成颜色。

编辑:
拥有像 StackExchange 这样的大型多元化社区的一大好处是,这里有程序员在所有类型的领域工作,很可能其中一个已经问过/回答了与您相关的问题或有助于解决您的问题正在努力

于 2012-08-05T17:42:02.980 回答