Yo uso algo asi, una funcionque encontré por ahi.
Código PHP:
function generarThumbAlbum($archivo,$nombredest,$lado)
{
$ext_archivo=substr($archivo,-3);
$ext = strtolower($ext_archivo);
$tam=getimagesize($archivo);
//uso una relacion respecto del menor vs el tamaño pedido
if($tam[0]<$tam[1])
{
$n_ancho=$lado;
$n_alto=($tam[1]*($lado/$tam[0]));
}
else
{
$n_alto=$lado;
$n_ancho=($tam[0]*($lado/$tam[1]));
}
if($ext=="jpg" || $ext=="jpeg")
{
//
$origen = imagecreatefromjpeg($archivo);
$imagen = imagecreatetruecolor($lado,$lado);
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
imagejpeg($imagen,$nombredest);
}
else if($ext=="png")
{
$origen = imagecreatefrompng($archivo);
$imagen = imagecreatetruecolor($lado,$lado);
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
imagepng($imagen,$nombredest);
}
else if($ext=="gif")
{
$origen = imagecreatefromgif($archivo);
$imagen = imagecreatetruecolor($lado,$lado);
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
imagegif($imagen,$nombredest);
}
else
{
return false;
}
return $nombredest;
}
La funcion recibe esto parametros:
$archivo: nombre del archivo de imagen origen
$nombredest: nombre archivo de imagen destino
$lado: tamaño en pixeles de la imagen resultante
La funcion devuelve el nombre del archivo de destino si la imagen corresponde a los tipos permitidos y no tiene ningun tipo de control de errores, jaja.