gpt4 book ai didi

PHP - 根据给定变量计算颜色(十六进制)

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:15 28 4
gpt4 key购买 nike

我正在尝试创建一个标签云,需要帮助来创建一个函数来计算应用于每个标签链接所需的颜色。

我有 3 个变量:

  • 单个标签重要性(从 0.1 到 1)
  • 最大(最重要)的标签颜色(十六进制代码,例如“fff000”)
  • (十六进制代码)最小(不太重要)的标签颜色(十六进制代码)

最佳答案

这里有一些可以帮助您入门的东西:

您可以通过以下方式获取 r、g、b 值:

$color1 = 0xfff000;
$r1 = ($color1 >> 16) & 0xff;
$g1 = ($color1 >> 8) & 0xff;
$b1 = $color1 & 0xff;

在两个值之间进行插值:

define('MIN', 0.10);
define('MAX', 1.00);
define('RANGE', MAX - MIN);

$i = 0.10; // importance

$i = ($i - MIN) / RANGE;

$r = $r1 + ($r2 - $r1) * $i;
$g = $g1 + ($g2 - $g1) * $i;
$b = $b1 + ($b2 - $b1) * $i;

然后你可以把它们放回去:

$color = ($r << 16) | ($g << 8) | $b;

但 RGB 不一定是最佳的色彩空间。使用 HSL 之类的东西可能会获得更好的结果。

作为所有这些的替代方案,您可以简单地手动创建 10 种您喜欢的颜色,并将它们放入一个数组中:

$colors = array('#000000', '#100000', ... );
$color = $colors[intval(($importance - 0.10) / 0.0901)];

0.0901 数字就是 (MAX - MIN)/10 + smallDelta。当 $importance == MAX 时,增量用于将最大索引保持在 9(而不是 10)。

关于PHP - 根据给定变量计算颜色(十六进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com