Witam,
Borykam sie z identycznym problemem. Ja to zrobiłem tak, ale nie wiem jak dopisać do tego upload (dodaje się jednocześnie dwa obrazy i skrypt je łączy w jeden) i jak rozwiązac problem z dublowaniem nazw tzn. co jesli kilka osób na raz będzie chciało dodać zdjęcia. Myślę o nadawaniu nazw plikom tymczasowym i finalnym używając MD5 ale nie wiem czy dobrze kombinuje.
Jestem otwarty na wszelkie sugestie i propozycje. Oczywiście jak jest sposób żeby to uprościć to chętnię się jego nauczę :)
<?
$img = imagecreatefromjpeg("./foto_tmp/01.jpg"); // zdjecie 1
$img2 = imagecreatefromjpeg("./foto_tmp/02.jpg"); // zdjęcie 2
$w_img = imagesx($img); // szerokość zdj 1
$h_img = imagesy($img); // wysokośc zdj 1
$w_img2 = imagesx($img2); // szerkość zdj 2
$h_img2 = imagesy($img2); // wysokość zdj 2
$h_mini = 320; // stąła wysokość 320px po zmniejszeniu
$w_img_mini = ($w_img * 100)/(100*$h_img /$h_mini); // szerokość zdj 1 wyliczamy proporcjonalnie do stałej wysokość
$w_img2_mini = ($w_img2 * 100)/(100*$h_img2 /$h_mini); // szerokość zdj2 wyliczamy proporcjonalnie do stałej wysokość
$img_mini = imagecreatetruecolor($w_img_mini+$w_img2_mini, $h_mini); // tworzę obraz zawierający zjęcie 1 + obszar na zdjęcie 2
$img2_mini = imagecreatetruecolor($w_img2_mini, $h_mini);
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $w_img_mini, $h_mini, $w_img, $h_img); // generacja dopasowanych obrazów
imagecopyresampled($img2_mini, $img2, 0, 0, 0, 0, $w_img2_mini, $h_mini, $w_img2, $h_img2);
imagejpeg($img_mini, "./foto_tmp/tmp1.jpg", 80); // zapis dopasowanych obrazów
imagejpeg($img2_mini, "./foto_tmp/tmp2.jpg", 80);
imagedestroy($img);
imagedestroy($img2);
imagedestroy($img_mini);
imagedestroy($img2_mini);
$tmp1 = imagecreatefromjpeg('./foto_tmp/tmp1.jpg');
$tmp2 = imagecreatefromjpeg('./foto_tmp/tmp2.jpg');
imagecopymerge($tmp1, $tmp2, $w_img_mini, 0, 0, 0, $w_img2_mini, $h_mini , 100); // scalanie obrazów
imagejpeg($tmp1,"./foto/final.jpg",80);
imagedestroy($tmp1);
imagedestroy($tmp2);
echo '<img src="./foto/final.jpg">';
?>
Pozdrawiam