Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nalożenie obrazka na wcześniej wygenerowany obraz.
Forum PHP.pl > Forum > Przedszkole
darth_sidious
Witajcie.

Pobierajac tlo (bedace obrazem jpg) generuje obrazek, na ktory nastepnie nanosze napisy, a chcialbym jeszcze jednoczesnie naniesc na ten wygenerowany obraz jeszcze 1 plik graficzny (jpg)...
Potrafie naniesc 2 obrazy na siebie, ale tylko kiedy obydwa juz istnieaja - pobieram je po prostu z katalogow i nanosze bez problemu...
A jak naniesc obraz na dopiero co wygenerowany?

Ponizej kod, za pomoca ktorego na pobrana grafike nakladam tekst:

  1. <?php
  2.  
  3. header( 'Content-Type: image/jpeg' );
  4.  
  5. $imgPath = "tla/".$_POST['tlo'];
  6.  
  7. function imageCreateFromJpegEx($file)
  8. {
  9.    $data = file_get_contents($file);
  10.    $im = @imagecreatefromstring($data);
  11.    $i = 0;
  12.    while (!$im)
  13.    {
  14.  
  15.        $data = substr_replace($data, "", -3, -2);
  16.        $im = @imagecreatefromstring($data);
  17.    }
  18.    return $im;
  19. }
  20.  
  21. $im = imageCreateFromJpegEx($imgPath);
  22. $napis = $_POST['napis'];
  23. $color = imagecolorallocate($im, 255, 255, 255);
  24. ImageString($im, 30, 120, 16, $napis, $color);
  25.  
  26. imagejpeg( $im );
  27. ?>


Pozdrawiam
Darth

... moze ma ktos chociaz koncepcje, jakiej funkcji probowac uzyc...
singles
Funkcje, których używasz do pobrania obrazków z katalogów (przy okazji, dlaczego imagecreatefromstring" title="Zobacz w manualu PHP" target="_manual a nie np. imagecreatefromjpg" title="Zobacz w manualu PHP" target="_manual - odpada Ci file_get_contents" title="Zobacz w manualu PHP" target="_manual) pobierają obrazek i tworzą z niego tzw image resource

W zmiennej $im masz swój obrazek (a konkretniej, image resource) z nałożonym tekstem. Do innej zmiennej pobierz sobie np z pliku obrazek który chcesz nałożyć i traktuj go tak samo jak resztę - możesz połączyć obrazki korzystając np z imagecopymerge" title="Zobacz w manualu PHP" target="_manual.

Albo skorzystaj z gotowej biblioteki: dla przykładu WideImage
darth_sidious
Wielkie dzieki singles! Udalo sie yahoo.gif

Do kodu, ktory mialem powyzej dodalem praktycznie tylko linijki odpowiadajace za polacznie dwoch obrazow...

  1. <?php
  2.  
  3. header( 'Content-Type: image/jpeg' );
  4.  
  5. $imgPath = "tla/".$_POST['tlo'];
  6.  
  7. function imageCreateFromJpegEx($file)
  8. {
  9.   $data = file_get_contents($file);
  10.   $im = @imagecreatefromstring($data);
  11.   $i = 0;
  12.   while (!$im)
  13.   {
  14.  
  15.       $data = substr_replace($data, "", -3, -2);
  16.       $im = @imagecreatefromstring($data);
  17.   }
  18.   return $im;
  19. }
  20.  
  21. $im = imageCreateFromJpegEx($imgPath);
  22. $napis = $_POST['napis'];
  23. $color = imagecolorallocate($im, 255, 255, 255);
  24. ImageString($im, 30, 120, 16, $napis, $color);
  25.  
  26. //Tutaj dodałem nanoszenie
  27.  
  28. $src = imagecreatefromjpeg('adres_gtafiki_ktora_nakladam_na_wygenerowany_obraz');
  29. $dest = $im;
  30.  
  31. imagecopymerge($dest, $src, 11, 11, 0, 0, 54, 54, 100);
  32.  
  33. imagejpeg( $dest );
  34. ?>


Jeszcze raz wielkie dzieki...

Pozdrawiam
Darth
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.