Цель: получить картинку нужных размеров.В начале прогоняется через скрипт, который ресайзит до максимальной высоты 1001px. Далее сравниваем размеры с нужными нам:
//узнаем размеры фото
$size = getimagesize($fileout);
$ww = $size[0];
$hh = $size[1];
//узнаем разницу
if ($ww < $newxsize) $new_w = $newxsize-$ww;
if ($hh < $newysize) $new_h = $newysize-$hh;
$src = imagecreatefromjpeg($fileout);
//создаем пустую подложку с задаными параметрами и заливаем белым цветом
$dest = imagecreatetruecolor(770, 1001);
$white = imagecolorallocate($dest, 255, 255, 255);
imagefill($dest, 0, 0, $white);
//накладываем фото на подложку
imagecopy($dest, $src, $new_w, $new_h, 0, 0, 770, 1001);
header('Content-Type: image/jpeg');
imagejpeg($dest, null, 85);
imagedestroy($dest);

