Código PHP:
$ancho_max=400;
$alto_max=400;
$nombre=basename($_GET['imagen']);
$datos = getimagesize($nombre);
if($datos[2]==1){$img = @imagecreatefromgif($nombre);}
if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if($datos[2]==3){$img = @imagecreatefrompng($nombre);}
$ratio = ($datos[0] / $ancho_max);
$alto = ($datos[1] / $ratio);
if($alto>$alto_max){$ancho=$alto_max*$ancho_max/$alto;$alto=$alto_max;$ancho_max=$ancho;}
$thumb = imagecreatetruecolor($ancho_max,$alto);
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $ancho_max, $alto, $datos[0], $datos[1]);
if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if($datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if($datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb);
<img src="redimensionar.php?imagen=IMAGEN">
Lo poco que entiendo es que, por ejemplo, una imagen tiene de ancho 800x600, la muestra 400x300, si el ancho es mayor a 400px, lo reduce a 400 y hace proporcional a la altura, si la altura es mayor a 400px, lo reduce a 400 y proporciona el ancho.
El tema es que hay una imagen que es menos a 400, tanto de ancho como alto, pero me muestra de ancho 400, es decir, me la estira. Su tamaño original es 130x80 y me lleva la imagen a 400x246px.
No se como hacer, donde poner un gif o algo por el estilo, para que si tanto el ancho como el alto son menores a 400, lo deje como está.
Desde ya gracias