gpt4 book ai didi

php - 从一组十六进制颜色中获取基色

转载 作者:行者123 更新时间:2023-12-02 02:49:56 26 4
gpt4 key购买 nike

我有一组颜色,想将它们分解为 10 到 20 种基本颜色。

这不应该是传入内容的调色板,而应该独立于传入内容。因此,如果使用的图像只是各种红色阴影,则它将仅返回红色,可能带有浅红色/深红色。

EG:我拥有的颜色是下面的框,以及输出为线条的示例。因此,本示例中的颜色列表从 21 种减少到 8 种。

enter image description here

上面的十六进制值:

#000000
#ffffff
#003e9f
#d61517
#00a7bd
#001070
#a0210c
#dc9103
#e6151e
#fdfdfd
#011171
#fbfd10
#ffc500
#fdc605
#e6141d
#faf703
#544b20
#796a3a
#7a6b3a

最终输出可能类似于此色轮的外环 enter image description here

最佳答案

提前选择您的颜色并创建一个数组 - 您可以使用色轮外环中的 12 个颜色。使用关联数组作为输出的集合:对于每种输入颜色,找到最接近的基色并将其作为键添加到输出数组。然后返回该数组的键。

要找到颜色距离,您可以将颜色视为三维空间中的点,(x,y,z) = (r,g,b),并使用欧几里得距离。从十六进制字符串中提取组件后,就像这样:

$dr = $r2 - $r1; 
$dg = $g2 - $g1;
$db = $b2 - $b1;
$dist = sqrt($dr * $dr + $dg * $dg + $db * $db);

如果你愿意,你可以用八叉树做一些奇特的事情,但是只要用一小部分颜色在它们上循环并找到最小距离就可以了。

关于php - 从一组十六进制颜色中获取基色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944629/

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