Este es un script, que nos devuelve una imagen redimensionada proporcionada de un jpg, gif o png.
<?php
$anchura=$_GET['ancho'];
$hmax=$_GET['alto'];
$nombre=$_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] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax) {
$anchura2=$hmax*$anchura/$altura;
$altura=$hmax;$anchura=$anchura2;
}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $img, 0, 0, 0, 0,
$anchura, $altura, $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);
?>
Y lo utilizamos de la siguiente manera.
<img src=”nombre_script.php?imagen=<ruta_imagen>&ancho=<ancho_en_px>&alto=<alto_en_px> alt=”<alt>” />
Cuando se cumple la primera condición de ancho o alto, nos devuelve la imagen redimensionada hasta ese punto.