$img = imagecreatetruecolor($width,$height);
// Задаю палитру для нового изображения. Ожидаю, что полученная картинка будет состоять только из трех этих цветов.
imageColorAllocate($img, 255, 255, 255);
imageColorAllocate($img, 0, 0, 0);
imageColorAllocate($img, 128, 128, 128);
// Создаю изображение из исходного
$img2 = imageCreateFromJpeg($filename);
// Объединяю исходное изображение и изображение на основе трех цветов.
imageCopyMerge($img, $img2, 0, 0, 0, 0, $width, $height, 100);
В итоге $img создается, но не из трех цветов, а из большего количества. Где ошибка? И самое главное, как получить изображение из исходного изображения на основе трех нужных цветов?