GD scalanie/łączenie obrazów

0

Potrzebuję pomocy ze scaleniem dwóch obrazów. Próbuję się doczytać na php.net jakiejś pomocnej informacji na temat GD, ale nic co do tej pory zrobiłem nie tworzy mi nowego obrazu zawierającego scalone pliki.
Sprawa wygląda tak, że muszę w przechowywać jeden scalony obraz z dwóch wcześniej wskazanych przez użytkownika.
Czyli mamy zdjęcie A i zdjęcie B, a wynikiem ma być zdjęcie C zawierające zdjęcie A połączone prawą krawędzią z lewa krawędzią zdjęcia B. Oczywiście jeszcze trzeba to odpowiednio przeskalować, żeby rozmiar był taki sam, ale to nie jest problem.

Proszę o naprowadzenie. Jakiś tutorial lub przynajmniej jaką funkcją to zrobić

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1