Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Nakładanie znaku wodnego na obrazek
--Popson--
post
Post #1





Goście







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:
(IMG:http://so-solutions.pl/public/images/obrazek.png)

Będę wdzięczny za pomoc:)
Pozdrawiam!
Piotrek
Go to the top of the page
+Quote Post
xsonic
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


Wykorzystaj do tego imagemagick zastosuj funkcje background znak wodny daj jako obrazek a obrazek jako background.
Albo inaczej ale ten programik jest bardzo ciekawy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 18:39