Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]znak wodny png na różnych zdjęciach
Forum PHP.pl > Forum > Przedszkole
jakis_login
Witam,
Stworzyłem funkcję do tego aby na zdjęcia zostały nakładane znaki wodne. Mam problem ze znakiem wodnym który jest w formacie png. Gdy zdjęcie jest w formacie jpg to znak wodny w png nie wygląda tak jak należy, poprostu mieszają się jakby kolory. Co zrobić aby logo ze znakiem wodnym w png był prawidłowo nakładany na różnego formatu zdjęcia? Poniżej moja funkcja:
  1. public static function imageWithWatermark($photo){
  2.  
  3. $size=getimagesize($photo);
  4. switch($size["mime"]){
  5. case "image/jpeg":
  6. $image = imagecreatefromjpeg($photo); //jpeg file
  7. break;
  8. case "image/gif":
  9. $image = imagecreatefromgif($photo); //gif file
  10. break;
  11. case "image/png":
  12. $image = imagecreatefrompng($photo); //png file
  13. break;
  14. default:
  15. return false;
  16. break;
  17. }
  18.  
  19. $watermark = imagecreatefrompng('files/znak_wodny.png');
  20.  
  21. $width = imagesx($image);
  22. $height = imagesy($image);
  23. $watermark_width = imagesx($watermark);
  24. $watermark_height = imagesy($watermark);
  25.  
  26. imagecopymerge($image, $watermark, (($width - $watermark_width))-10, (($height - $watermark_height))-10, 0, 0, $watermark_width, $watermark_height, 60);
  27.  
  28. switch($size["mime"]){
  29. case "image/jpeg":
  30. imagejpeg($image, $photo); //jpeg file
  31. break;
  32. case "image/gif":
  33. imagegif($image, $photo); //gif file
  34. break;
  35. case "image/png":
  36. imagepng($image, $photo); //png file
  37. break;
  38. default:
  39. return false;
  40. break;
  41. }
  42. //imagejpeg($image, $photo); //zapisuje obrazek juz ze znakiem wodnym
  43. imagedestroy($image);
  44. imagedestroy($watermark);
  45. }
fiszol
Spróbuj użyć imagecopy zamiast imageopcymerge dla watermarka.
jakis_login
He faktycznie działa, a masz "Pomógł"
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.