Hola, fijate si te sirve este código:
La variable
$archivo es el nombre del archivo que se subio al servidor.
Código PHP:
<?
$destino_imagen = "./carpeta/$archivo";
$info_imagen = getimagesize("../temp/$archivo");
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];
$imagen_ancho = 500;
$imagen_alto = 500;
if($ancho > $imagen_ancho OR $alto > $imagen_alto){
if(($alto - $imagen_alto) > ($ancho - $imagen_ancho))
{
$imagen_ancho = round($ancho * $imagen_alto / $alto,0) ;
}
else
{
$imagen_alto = round($alto * $imagen_ancho / $ancho,0);
}
}
else
{
$imagen_alto = $alto;
$imagen_ancho = $ancho;
}
// Imagen GIF
if($tipo_imagen == 1){
$imagen_nueva = imagecreate($imagen_ancho, $imagen_alto);
$imagen_vieja = imagecreatefromgif("../temp/$archivo");
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $imagen_ancho, $imagen_alto, $ancho, $alto);
if (!imagegif($imagen_nueva, $destino_imagen));
}
// Imagen JPG
if($tipo_imagen == 2){
$imagen_nueva = imagecreatetruecolor($imagen_ancho, $imagen_alto);
$imagen_vieja = imagecreatefromjpeg("../temp/$archivo");
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $imagen_ancho, $imagen_alto, $ancho, $alto);
if (!imagejpeg($imagen_nueva, $destino_imagen));
}
// Imagen PNG
if($tipo_imagen == 3){
$imagen_nueva = imagecreatetruecolor($imagen_ancho, $imagen_alto);
$imagen_vieja = imagecreatefrompng("../temp/$archivo");
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $imagen_ancho, $imagen_alto, $ancho, $alto);
if (!imagepng($imagen_nueva, $destino_imagen));
}
?>