Verás, la función que realiza la redimensión de la imagen es imagecopyresampled(). Por lo tanto, el if cumplirá la función de evaluar los tamaños y decidir si se ha de aplicar esta función. En sí, esta parte ya es la que trabaja en cambiar el tamaño de la imagen:
Código PHP:
$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]);
Por lo tanto, debes evaluar los tamaños mediante una condición if, y sólo si alguna (?: o las dos?) dimensiones es mayor en la imagen real que en la redimension, entonces aplicar ese bloque de codigo, algo así:
Código PHP:
if($datos[0] > $ancho_max or $datos[1] > $alto_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]);
}
Un saludo,