Cambia la funcion ImageCreate() por ImageCreateTrueColor()
y la funcion ImageCopyResized() por ImageCopyResampled()
Te dejo una funcion sencilla que cree para eso, espero que te sirva, un saludo
Código PHP:
/*-----------------------------------------------------------------
* crearThumbJPEG() : Crea un thumbnail de una imagen JPEG pasada
* autor : Braulio Hernandez | [email protected]
*
* parametros :
* $rutaImagen: Ruta al JPEG Original
* $rutaDestino: Rutay nombre del archivo Thumb para almacenarlo
* $anchoThumb: ancho del thumb = valor por defecto 200px; (opcional)
* $altoThumb: alto del Thumb = valor por defecto 150pz; (opcional)
* $calidadThumb : calidad de respecto a la imagen original por defecto 50(opcional)
* retorno: retornara false si el thumb no se ha podido crear o la ruta si se ha creado
*
* descripcion: toma la ruta de una imagen la redimensiona y crea una vista previa en la ruta especificada
* como segundo parametro, (el nombre del archivo thumb debe estar incluido en la ruta
* ej /imagenes/thumbs/mithumb.jpeg)
*
*/
function crearThumbJPEG($rutaImagen,$rutaDestino,$anchoThumb = 200, $altoThumb = 150, $calidad = 50){
$original = imagecreatefromJPEG($rutaImagen);
if ($original !== false){
$thumb = imageCreatetrueColor($anchoThumb,$altoThumb);
if ($thumb !== false){
$ancho = imagesx($original);
$alto = imagesy($original);
imagecopyresampled($thumb,$original,0,0,0,0,$anchoThumb,$altoThumb,$ancho,$alto);
$resultado = imagejpeg($thumb,$rutaDestino,$calidad);
return $resultado;
}
}
return false;
}