Ahi tenes que hacer algunas cuentitas para sacar el aspecto de radio, esto es la proporcion entre el ancho y el alto.
Por ejemplo, lo monitores son de 4:3, eso significa que son 4 unidades de ancho por 3 de alto.
Analiza este codigo
Código PHP:
$TNMaxX = 180; //Ancho maximo
$TNMaxY = 120; //Alto maximo
$img = @ImageCreateFromJpeg("imagen.jpg");
// determina el tamaño de la imagen
$imx = @ImageSX($img);
$imy = @ImageSY($img);
//determina proporcion en unidades
$x = $imx/$TNMaxX;
$y = $imy/$TNMaxY;
// calcula la escala
if($x>$y) $scale = $TNMaxX/$imx;
if($x<$y) $scale = $TNMaxY/$imy;
if($x==$y) $scale = $TNMaxY/$imy;
//Escala la imagen
$x = intval($imx*$scale);
$y = intval($imy*$scale);
//crea la imagen escalada
$newImg=@ImageCreateTrueColor($x, $y);
@imagecopyresized($newImg, $img, 0, 0, 0, 0, $x, $y, $imx, $imy);
//imprime la imagen escalada
@imagejpeg($newImg,'',60);