Примерно так. Не проверял, писал по памяти. PHP: //исходное изображение $source_image = imagecreatefromjpeg($infile); //получаем размеры исходного, увеличиваем высоту на 20px $w = imagesx($source_image); $h = imagesy($source_image) + 20; //создаём канву нужного размера $im1 = imagecreatetruecolor($w,$h); //копируем исходное изображение на канву с левого верхнего края imagecopy($im1, $source_image, 0, 0, 0, 0, imagesx($source_image), imagesy($source_image)); //имя и качество в % $outfile = 'new_image.jpg'; $quality = '100'; //сохраняем файл imagejpeg($im1, $outfile, $quality); ps: в $infile кидаешь имя файла исходного