Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][GD2] Przezroczysty Watermark
Forum PHP.pl > Forum > PHP
Master Miko
Witam,

Może źle napisałem. Działa, ale nie tak jak powinno. Otóż skrypt wygląda tak:



  1. <?php
  2. // Wysylamy plik JPG
  3. header('content-type: image/jpeg');
  4.  
  5. // Wczytujemy plik transparentny plik PNG i ustawiamy mu alpha
  6. $watermark = imagecreatefrompng('watermark.png');
  7. imageAlphaBlending($watermark , true);
  8. imageSaveAlpha($watermark , true);
  9.  
  10. // Przygotowujemy szerokosc i wysokosc
  11. $watermark_width = imagesx($watermark);
  12. $watermark_height = imagesy($watermark);
  13.  
  14. // To nie wiem po co jest
  15. $image = imagecreatetruecolor($watermark_width, $watermark_height);
  16.  
  17. // Próba ustawienia transparentu questionmark.gifquestionmark.gif
  18. $transparentColor = imagecolorallocatealpha($image, 200, 200, 200, 127);
  19.  
  20. // Pobieranie pliku JPG i jego wielkosci
  21. $image = imagecreatefromjpeg($_GET['src']);
  22. $size = getimagesize($_GET['src']);
  23.  
  24. // Obliczanie gdzie ma isc watermark
  25. $dest_x = $size[0] - $watermark_width - 5;
  26. $dest_y = $size[1] - $watermark_height - 5;
  27.  
  28. // Wklejanie watermarka do zdjecia
  29. imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 60);
  30.  
  31. // Wyswietlamy zdjecie i czyscimy pamiec.
  32. imagejpeg($image);
  33. imagedestroy($image);
  34. imagedestroy($watermark);
  35. ?>



Skrypt wyświetla szarą ramkę wokół napisu "copyright". Powiem, że plik PNG jest zapisany poprawnie i jest przezroczysty - wygenerowany przez php. Moim zdaniem problem tkwi gdzieć gdzie plik watermark zamieniany jest z png na jpg - tam traci przezroczystość i nie wiem dlaczego sad.gif
mike
A widziałes kiedyś plik .jpg z obsługą przezroczystości? tongue.gif
Master Miko
No ale mi chodzi o to, żeby najpierw nakleić watermark (przezroczysty) na zdjęcie a potem żeby go zapisać jako jpg.
Zawsze mi się wydawało, że php wczytując pliki zamienia format w swój przejściowy i na nim wykonuje operacje :|
i input ani output nie są ważne :|

Jak ten problem ominąć?


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Problem rozwiązany. Rozwiązanie:

Trzeba stworzyć jeszcze jeden obrazek - wkleić do niego oryginał, potem wkleić do niego watermark, no i można
zapisywać.
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.