Edit:
С ответом я сделал эту функцию
function grabclosestcolor($r, $g, $b){
    $colors = array(array(124,12,12),array(7,7,11),array(110,224,219),array(123,123,123),array(124,177,74),array(130,86,53),array(77,77,77),array(164,124,68),array(204,196,132),array(164,148,147),array(163,123,67),array(26,122,26), array(195,195,50),array(193,193,193),array(255,248,73),array(243,243,243));
    $differencearray = array();
    foreach ($colors as $value) {
        $difference = sqrt(pow($r-$value[0],2)+pow($g-$value[1],2)+pow($b-$value[2],2));
        array_push($differencearray, $difference);
        $smallest = min($differencearray);
        $key = array_search($smallest, $differencearray);
        return $colors[$key];
        }
    }
Моя цель такова. Я хватаю картину и прохожу через каждый пиксель и захватываю его x, y и rgb.
Вместо того, чтобы просто захватить rgb, у меня есть предопределенный массив, и я ищу ближайшее соответствие из цвета, который я захватил в предопределенный массив. Цель здесь - использовать только цвета из предопределенного массива. Вот мой массив цветов.
$colors = array(array(124,12,12),array(7,7,11),array(110,224,219),array(123,123,123),array(124,177,74),array(130,86,53),array(77,77,77),array(164,124,68),array(204,196,132),array(164,148,147),array(163,123,67),array(26,122,26), array(195,195,50),array(193,193,193),array(255,248,73),array(243,243,243));
и вот мой существующий код, который проходит через все это.
$int = imagesx($im) - 1;
$int2 = imagesy($im) - 1;
$start2 = 0;
do{
    $start = 0;
    do{
        $rgb = imagecolorat($im, $start, $start2);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;
        $value = rgb2hex($r,$g,$b).":$start:$start2";
        array_push($colorsofimage, $value);
    } while($int > $start++);
} while($int2 > $start2++);
rgb2hex - это функция, определенная пользователем, но я хочу, чтобы она изменила эту функцию с помощью функции, чтобы захватить ближайший цвет.
$colorsofimage содержит массив каждой информации о пикселях с hex: x: y я хочу, чтобы он был rgb2hex (NEWFUNCTION ($ r, $g, $b)); Таким образом, новый hex является 1 из предопределенного массива.
Надеюсь, вы поняли, потому что я понятия не имею, как это сделать, потому что я не знаю алгоритм цвета.
