Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] czy biblioteka gd2 ma możliwość łączenia zdjęć
Forum PHP.pl > Forum > PHP
grzegorz_g
mam pytanie bo w manualu nie doczytałem tego

czy php i gd2 ma mozliwośc połączenia (zescalenia) dwóch zdjęć. Chodzi mi o to by były one obok siebie foto1 i do tego doczepione foto2 questionmark.gif

wookieb
Tak.
Tworzysz nowy obrazek o odpowiednich rozmiarach.
Potem imagecopy jednego zdjecia na nowy, a potem drugiego zdjecia na nowy.
Kodu dokładnego nie podam, ale chwila kombinowania i bedziesz mial smile.gif
grzegorz_g
kurde chwila się trochę przedłuża sad.gif

kombunowałem z przykładem z manuala

  1. // Create image instances
  2. $src1 = imagecreatefromgif('14.gif');
  3. $src2 = imagecreatefromgif('14.gif');
  4. $dest = imagecreatetruecolor(94, 37);
  5.  
  6. // Copy
  7. imagecopy($dest, $src1, 0, 0, 0, 0, 47, 37);
  8. imagecopy($dest, $src2, 48, 37, 48, 37, 47, 37);
  9.  
  10. // Output and free from memory
  11. header('Content-Type: image/gif');
  12. imagegif($dest);
  13.  
  14. imagedestroy($dest);
  15. imagedestroy($src);
  16.  
  17.  


i jeden gif jest ok! w miejscu tego drugiego mam czarna plame sad.gif

krowal
W swoim kodzie ten drugi obrazek umieszczasz nie obok pierwszego, ale po przekątnej. Dlatego masz czarną plamę bo nic tam nie wklejasz. Spróbuj tak:
  1. // Create image instances
  2. $src1 = imagecreatefromgif('14.gif');
  3. $src2 = imagecreatefromgif('14.gif');
  4. $dest = imagecreatetruecolor(94, 37);
  5.  
  6. // Copy
  7. imagecopy($dest, $src1, 0, 0, 0, 0, 47, 37);
  8. //imagecopy($dest, $src2, 48, 37, 48, 37, 47, 37); twoj kod
  9. imagecopy($dest, $src2, 48, 0, 48, 0, 47, 37); // poprawione, przeczytaj jeszcze raz (DOKLADNIE!!!) liste argumentow, ktore ta funkcja przyjmuje
  10.  
  11. // Output and free from memory
  12. header('Content-Type: image/gif');
  13. imagegif($dest);
  14.  
  15. imagedestroy($dest);
  16. imagedestroy($src);
grzegorz_g
coś nie tak bo dokładnie Twój kod daje taki efekt:

http://scoressite.nazwa.pl/test.php

wookieb
  1. //imagecopy($dest, $src2, 48, 37, 48, 37, 47, 37); twoj kod
  2. //imagecopy($dest, $src2, 48, 0, 48, 0, 47, 37); // poprawione, przeczytaj jeszcze raz (DOKLADNIE!!!) liste argumentow, ktore ta funkcja przyjmuje
  3. imagecopy($dest, $src2, 48, 0, 0, 0, 47, 37); // Up, no właśnie..
blooregard
@grzegorz_g, wiesz, co to jest układ wspórzędnych i jak oblicza się położenie piksela na ekranie?

Jeśli nie, poczytaj na ten temat, a nie będziesz miał problemów z umieszczaniem obrazków w odpowiednich miejscach.
krowal
Nie podałeś rozmiarów obrazka z którego chcesz kopiować więc skąd mam wiedzieć. Wybacz ale nie domyśliłem się, że chcesz kopiować ten sam obrazek dwa razy obok siebie. Poczytaj o tym co napisał blooregard i jak już napisałem zerknij co dokładnie oznaczają parametry funkcji imagecopy();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.