Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Połączenie przezroczystego PNG'a z JPEG'iem
Forum PHP.pl > Forum > Przedszkole
iVorIus
Witam,
szukałem rozwiązań problemu na forum oraz w googlach, lecz wszystko zawodzi.

Mianowicie, nakładam znaczek wodny w png, na obraz jpeg. Po scaleniu obrazów, widzę czarny prostokąt w wymiarach znaczka.
Jak wyczytałem na forum, pomocne powinny być funkcje imagealphablending oraz imagesavealpha. Niestety nie rozwiązały one problemu. Jedynie gdy nie łączyłem obrazów i wyświetlałem do przeglądarki sam znaczek, obydwie funkcje tworzyły jego przezroczystość.

Efekt jaki chce uzyskać to: przezroczystość znaczka po nałożeniu.

  1. function watermark ( $file, $watermarkFile, $opacity = 80 )
  2. {
  3. $image = imagecreatefromjpeg ( $file );
  4. list ( $width, $height ) = getimagesize ( $file );
  5.  
  6. $watermark = imagecreatefrompng ( $watermarkFile );
  7. imagealphablending ( $watermark, false );
  8. imagesavealpha ( $watermark, true );
  9.  
  10. list ( $watermarkWidth, $watermarkHeight ) = getimagesize ( $watermarkFile );
  11.  
  12.  
  13. imagecopymerge ( $image,
  14. $watermark,
  15. $width - $watermarkWidth,
  16. $height - $watermarkHeight,
  17. 0,
  18. 0,
  19. $watermarkWidth,
  20. $watermarkHeight,
  21. $opacity
  22. );
  23.  
  24. header('Content-type: image/jpeg');
  25. imagejpeg( $image );
  26. }
iVorIus
Dziękują za szybką i trafną odpowiedź!

Funkcja imagecopymerge_alpha pomogła!
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.