Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][GD2] Przezroczysty Watermark, Nie działa a powino
Master Miko
post 29.08.2006, 11:03:34
Post #1





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował Master Miko 29.08.2006, 11:06:03


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mike
post 29.08.2006, 11:28:42
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


A widziałes kiedyś plik .jpg z obsługą przezroczystości? tongue.gif
Go to the top of the page
+Quote Post
Master Miko
post 29.08.2006, 11:30:05
Post #3





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował Master Miko 29.08.2006, 12:06:32


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 03:46