Pues yo hago esto para redimensionar las imagenes:
Código PHP:
<?php
//Defino el alto y el ancho maximo
$ancho_maximo=320;
$alto_maximo=240;
//Obtengo los atributos
list($ancho, $alto, $tipo, $atr)=getimagesize($rutaimagen);
//Los copio a la variable final para seguir teniendo el tamaño original
$anchura=$ancho;
$altura=$alto;
//Con el siguiente bucle divido ambas variables por una constante hasta q por fin el tamaño se ajuste a los maximos que deseo que tengan
$j=2;
while ($anchura>$ancho_maximo || $altura>$alto_maximo) {
$anchura=ceil($ancho/$j);
$altura=ceil($alto/$j);
$j++;
}
//Finalmente muestro la imagen
?>
<img src="<?php echo $rutaimagen; ?>" border="0" width="<?php echo $anchura; ?>" height="<?php echo $altura; ?>">
Con esto consigo q se redimensione la imagen sin distorsionarla. Espero q te sirva.