gpt4 book ai didi

PHP - 从列表中找到最接近预定义 RGB 的 RGB

转载 作者:可可西里 更新时间:2023-11-01 13:21:19 27 4
gpt4 key购买 nike

我的目标是找到与数组中的 RGB 相比最接近的 RGB 匹配项。我已经创建了一个循环遍历图片中每个像素的函数。我现在唯一需要做的就是找到图片中每个像素最接近数组颜色的颜色。

$colors = array(
array(221,221,221),
array(219,125,62),
array(179,80,188),
array(107,138,201),
array(177,166,39),
array(65,174,56),
array(208,132,153),
array(64,64,64),
array(154,161,161),
array(46,110,137),
array(126,61,181),
array(46,56,141),
array(79,50,31),
array(53,70,27),
array(150,52,48),
array(25,22,22)
);

我尝试将图片转换为 8 位以减少颜色数量并稍后在数据库中比较它们,但这似乎不是一个好主意。

最佳答案

像这样尝试:

$inputColor = array(20,40,80);

function compareColors($colorA, $colorB) {
return abs($colorA[0] - $colorB[0]) + abs($colorA[1] - $colorB[1]) + abs($colorA[2] - $colorB[2]);
}

$selectedColor = $colors[0];
$deviation = PHP_INT_MAX;

foreach ($colors as $color) {
$curDev = compareColors($inputColor, $color);
if ($curDev < $deviation) {
$deviation = $curDev;
$selectedColor = $color;
}
}

var_dump($selectedColor);

这个解决方案的优点是你可以很容易地替换比较函数。也可以使用

免责声明:可能有更优雅的实现方式,也许可以利用 map

关于PHP - 从列表中找到最接近预定义 RGB 的 RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884577/

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