Okej dzięki, pokombinuje i napisze co mi z tego wyszło

Uznałem że zacznę się uczyć PHP ale na razie potrzebuję coś na szybko więc znalazłem kod, który wysyła grafikę na serwer do jednego pliku tworzy miniaturkę w drugim pliku to jest wycinek z tego kodu o rozmiarach miniaturki:
case false: // zmniejszanie bezpośrednio do 180x160px
$nts = imagecreatetruecolor($config['thumbnail_width'], $config['thumbnail_height']);
imagecopyresized($nts, $ic, 0, 0, 0, 0, $config['thumbnail_width'], $config['thumbnail_height'], $is[0], $is[1]);
break;
default: // zmniejszanie z zachowaniem skali, aż do osiągnięcia co najmniej 180x160px
$width = $is[0];
$height = $is[1];
$ratio = $is[0] / $config['thumbnail_width'];
if ( $ratio > 1 )
{
$width = $config['thumbnail_width'];
$height = intval($is[1] / $ratio);
}
$ratio = $height / $config['thumbnail_height'];
if ( $ratio > 1 )
{
$width = intval($width / $ratio);
$height = $config['thumbnail_height'];
}
$nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tłem
imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
}
switch ( $extension ) // zapis do pliku
{
case 'gif':
imagegif($nts, $config['path_thumbnails'] . $filename);
break;
case 'png':
imagepng($nts, $config['path_thumbnails'] . $filename);
break;
default:
imagejpeg($nts, $config['path_thumbnails'] . $filename);
break;
}
imagedestroy($nts); // zniszczenie obrazka
return $config['path_thumbnails'] . $filename;
}
?>
Pomógłbyś mi zmodyfikować ten kod? Nie chce zeby zdjęcie w pionie były zniekształcane więc wymyśliłem aby zmniejszało zdjęcie do maksymalnej wysokości 275px i maksymalnej szerokość 275 px. Wtedy wytworzy nam sie zdjecie np. 275 px na 250 px i kod będzie ucinał je do 250 px na 250 px. I w ten sposób mam miniaturki w jednakowym kształcie i nie tracą one na zawartości zbyt wiele. Proszę o gotowy skrypt lub dokładnie instrukcje co zmienić. Z góry dzięki wielkie.
Czy ktoś mógłby podać mi instrukcje jak tego dokonać?