Hola !
Prueba usando la funcion
imagecreatetruecolor en vez de imagecreate, e
imagecopyresampled en vez de imagecopyresized.
La primera permite que la imagen resultante tengo colores verdaderos 24bits en vez de los pocos y pobres de la función normal. Y la segunda genera mejor la miniatura (usa un mejor filtro para cambiar de tamaño). Espero que te sirva. Saludos !!