Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Znak wodny, Problemik z funkcją
MateuszS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Witam, napisałem kiedyś taką funkcję do tworzenia znaku wodnego, teraz znowu mi się przydałaby ale mam problem. Ustawiam tam przezroczystość (chodzi ok), ale jak już ustawiam w % odległość znaku od krawędzi x i y to już nie bardzo działa. Jeżeli wlepiam obrazy o różnych kształtach (większa szer. niż dł lub odwrotnie) to już się sypie, ucina albo jeszcze coś innego ;/

  1. function znak_wodny($obrazek, $docelowy) {
  2. $przezroczystosc = 45;
  3. $x = 60;
  4. $y = 85;
  5.  
  6. $nakladany = "../images/znak3.gif";
  7. $rozszerzenieObraz = strtolower(end(explode(".", $obrazek)));
  8. $rozszerzenieNakladany = strtolower(end(explode(".", $nakladany)));
  9. if($rozszerzenieObraz == "png") $obraz = imagecreatefrompng($obrazek);
  10. elseif($rozszerzenieObraz == "jpg") $obraz = imagecreatefromjpeg($obrazek);
  11. elseif($rozszerzenieObraz == "gif") $obraz = imagecreatefromgif($obrazek);
  12. else return;
  13. if($rozszerzenieNakladany == "png") $obrazN = imagecreatefrompng($nakladany);
  14. elseif($rozszerzenieNakladany == "jpg") $obrazN = imagecreatefromjpeg($nakladany);
  15. elseif($rozszerzenieNakladany == "gif") $obrazN = imagecreatefromgif($nakladany);
  16. else return;
  17.  
  18. $obraz_x = imagesx($obraz);
  19. $obraz_y = imagesy($obraz);
  20. $obrazN_x = imagesx($obrazN);
  21. $obrazN_y = imagesy($obrazN);
  22. $odleglosc_x = round((0.01*$x)*$obraz_x, 0);
  23. $odleglosc_y = round((0.01*$y)*$obraz_y, 0);
  24.  
  25. imagesavealpha($obrazN, true);
  26. imagecopymerge($obraz, $obrazN, $odleglosc_x, $odleglosc_y, 0, 0, $obrazN_x, $obrazN_y, $przezroczystosc);
  27. if($rozszerzenieObraz == "jpg") imagejpeg($obraz, $docelowy);
  28. else imagepng($obraz, $docelowy);
  29. imagedestroy($obraz);
  30. imagedestroy($obrazN);
  31.  
  32. }


Wywołanie

  1. move_uploaded_file($zdjecie_tmp, $sciezka);
  2. createThumbnail($sciezka, $sciezka_normalny, 700); //pomniejszam obraz na ktory naloze znak
  3. znak_wodny($sciezka_normalny, $sciezka_normalny); //nakladam znak


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 22.08.2025 - 04:11