Hace tiempo hice este script para mostrar una imagen redimensionada:
Código PHP:
<?php
$extension=strrchr($_REQUEST['img'],".");
if ($extension==".jpg") $imgcache=imagecreatefromjpeg($_REQUEST['img']);
elseif ($extension==".gif") $imgcache=imagecreatefromgif($_REQUEST['img']);
else $imgcache=imagecreatefrompng($_REQUEST['img']);
$ancho=imagesx($imgcache);
$alto=imagesy ($imgcache);
if ($ancho>100) $nuevo_ancho=$_REQUEST['ancho'];
else $nuevo_ancho=$ancho;
$nuevo_alto=($nuevo_ancho*$alto)/$ancho;
if ($nuevo_alto>100) $nuevo_alto=$_REQUEST['alto'];
$nuevo_ancho=($nuevo_alto*$ancho)/$alto;
$imgmini=imagecreatetruecolor($nuevo_ancho,$nuevo_alto);
imagecopyresampled($imgmini,$imgcache,0,0,0,0,$nuevo_ancho,$nuevo_alto,imagesx($imgcache),imagesy ($imgcache));
if ($extension==".jpg") imagejpeg($imgmini);
elseif ($extension==".gif") imagegif($imgmini);
else imagepng($imgmini);
imagedestroy ($imgmini);
imagedestroy ($imgcache);
?>
Lo que hace es darle un ancho a la imagen en función de su alto y darle un alto en función de su ancho de manera que o bien tiene un alto de 100 pixeles o un ancho de 100 píxeles, pero o una cosa o la otra (y siempre con su alto/ancho correspondiente), de manera que nunca sale estirada, sale siempre proporcionada.
Para usar la función puedes pasarle un ancho o un alto determinados o puedes omitir estos parámetros y dejar que el script ponga su alto y ancho por defecto:
Código:
<html>
<head>
</head>
<body>
<img src="miniatura.php?img=e:\Mis documentos\misite\imagenes\imagen.jpg&alto=50&ancho=100">
<img src="miniatura.php?img=e:\Mis documentos\misite\imagenes\imagen.gif">
</body>
</html>
Se puede usar el script para mostrar una galería completa de imágenes, por ejemplo las que tengas en una determinada carpeta, solo tienes que leer el directorio y para cada imagen generar el código anterior.
Mira si te sirve.
Saludos.