Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nakładanie znaku wodnego na obrazek
Forum PHP.pl > Forum > Przedszkole
-Popson-
Witam!
Próbuję zrobić automatyczne nakładanie znaku wodnego na obrazek. Znalazłem kilka rozwiązań, ale żadne nie zadziałało do końca poprawnie. Znak wodny jest w formacie png o rozmiarach 400x400. O ile na jpg nakłada się doskonale, tak na png już nie bardzo. Wygląda to tak jak by się "wysypywały" cienie.

  1. $znak = System_Path::get('productGfx')."/watermark/znak.png";
  2. $path = System_Path::get('productGfx')."/".$hash.".jpg";
  3. $info_img = getimagesize($path);
  4. $info_mark = getimagesize($znak);
  5.  
  6. switch($info_img[2]){
  7. case 1: $image = imagecreatefromgif($path);
  8. break;
  9. case 2: $image = imagecreatefromjpeg($path);
  10. break;
  11. case 3: $image = imagecreatefrompng($path);
  12. break;
  13. }
  14.  
  15. $watermark = imagecreatefrompng($znak);
  16.  
  17. $x = imagesx($image);
  18. $y = imagesy($image);
  19.  
  20. $new_mark = imagecreatetruecolor($x,$y);
  21. imagealphablending($new_mark, false);
  22. imagesavealpha($new_mark, true);
  23. imagecopyresampled($new_mark, $watermark, 0, 0, 0, 0, $x, $y, 400, 400);
  24.  
  25. imagealphablending($new_mark, false);
  26. imagesavealpha($new_mark, true);
  27.  
  28.  
  29. imagecopy($image,$new_mark,0,0,0,0,$x,$y);
  30. imagepng($image, System_Path::get('productGfx')."/".$hash.".png",9);
  31. rename(System_Path::get('productGfx')."/".$hash.".png", System_Path::get('productGfx')."/".$hash.".jpg");
  32. imagedestroy( $image );
  33. imagedestroy( $watermark );
  34. imagedestroy( $new_mark );


Przykładowy przerobiony obrazek png:


Będę wdzięczny za pomoc:)
Pozdrawiam!
Piotrek
xsonic
Wykorzystaj do tego imagemagick zastosuj funkcje background znak wodny daj jako obrazek a obrazek jako background.
Albo inaczej ale ten programik jest bardzo ciekawy smile.gif
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.