>> zmorris at zsculpt dot com
I don't have the imageColorMatch() function on my server, but I could slighty improve the quality of the GIF/PNG image by converting it first to 256 colors, then to true colors and finally to the desired number of colors.
$dither = true;
$colors = 64;
$tmp = imageCreateFromJpeg('example.jpg');
$width = imagesX($tmp);
$height = imagesY($tmp);
imageTrueColorToPalette($tmp, $dither, 256);
$image = imageCreateTrueColor($width, $height);
imageCopy($image, $tmp, 0, 0, 0, 0, $width, $height);
imageTrueColorToPalette($image, $dither, $colors);
Final $image will still have less than 64 colors, but more than if it was directly converted to 64 colors, and they match the JPEG image more.
Dunno why true colors to palette conversions are such a problem...