Исходя из ответа
@Fesor и
Wiki набросал некий код (не особо быстро работает, особенно для больших картинок, но имеет право на жизнь):
<?php
$result = array();
$colors = array('#ff0000', '#ffffaa', '#ff00ff', '#cde1b0', '#000000', '#ffffff', /* весь ваш список из 68 цветов */);
$sizeof = sizeof($colors);
$img = imagecreatefromjpeg("/img_path/img.jpg"); // если формат картинки jpg, jpeg
// $img = imagecreatefrompng("/img_path/img.png"); // если формат картинки png
$imgX = imagesx($img);
$imgY = imagesy($img);
for ($x = 0; $x < $imgX; $x++) {
for ($y = 0; $y < $imgY; $y++) {
$imgColor = imagecolorsforindex($img, imagecolorat($img, $x, $y));
list($imgR, $imgG, $imgB) = array($imgColor['red'], $imgColor['green'], $imgColor['blue']);
for ($i = 0; $i < $sizeof; $i++) {
list($r, $g, $b) = array_map('hexdec', str_split(trim($colors[$i], '#'), 2));
$delta = sqrt(pow($imgR-$r, 2)+pow($imgG-$g, 2)+pow($imgB-$b, 2));
if ($delta >= 2 and $delta <= 2.5) { // 2.3 - примерно соответствует минимально различимому для человеческого глаза отличию между цветами (wiki)
$result[$i] = $colors[$i];
}
}
}
}
print_r($result); // $result - список приближенно присутствующих цветов на картинке из списка $colors
?>