Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Znak wodny
Forum PHP.pl > Forum > Przedszkole
Hectic
Jaką funkcję graficzną użyć, aby do wgrane zdjęcia za pomocą funkcji upload dodawał się znak wodny? Chodzi mi o coś takiego jak na fotka.pl (w lewym dolnym rogu).
Adrian Staniszewski
  1. <?php
  2. function gd_createf($adres) {
  3. $watermark="gfx/watermark.png";
  4. header("Content-Type: image/jpeg");
  5. $transparency = 25; // przezroczystosc znaku wodnego
  6. $source_photo = stripslashes($adres);
  7. $photo = imagecreatefromjpeg($source_photo);
  8. $watermark = imagecreatefrompng($watermark);
  9. $watermark_width = imagesx($watermark);
  10. $watermark_height = imagesy($watermark);
  11. $size = getimagesize($source_photo);
  12. $dest_x = ($size[0] - $watermark_width);
  13. $dest_y = ($size[1] - $watermark_height);
  14. imagecopymerge($photo, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $transparency);
  15. imagejpeg($photo);
  16. imagedestroy($photo);
  17. imagedestroy($watermark);
  18. }
  19. ?>


jak widac jednak funkcja nie wystarczy smile.gif
Hectic
Dzięki, ale po wywołaniu tej funkcji nie ma nic tongue.gif
Adrian Staniszewski
w $adres podajes adres pliku do "poprawienia" - musi byc JPG
w gfx/watermark.png - musisz miec znak swoj (wodny tongue.gif)
na poczatku dajesz ob_start(); i dzialasz exclamation.gif
Hectic
O to co otrzymuje smile.gif

Cytat
Adrian Staniszewski
Wybacz ale watpie czy pojdzie mi plik z twojego localhost tongue.gif
Hectic
Wybacz, ale mi chodziło o to, że taki otrzymuje wynik odpalenia pliku img.php winksmiley.jpg A chyba powinien być tam obrazek winksmiley.jpg
miyk
witam,

http://www.php.org.pl/artykuly/4/12

prosze tutaj jest opisane :-P moze Ci to pomoze... a moze nie smile.gif
Adrian Staniszewski
pokaz moze cale zrodlo pliku ;>
majeś
Cytat(miyk @ 17.11.2006, 23:57:26 ) *
witam,

http://www.php.org.pl/artykuly/4/12

prosze tutaj jest opisane :-P moze Ci to pomoze... a moze nie smile.gif






mnie bardzo pomoglo smile.gif dzieki smile.gif

mam zrobiony scrypt jak chcialem smile.gif

przy wgrywaniu pliku smile.gif robi 1 - 640x480 2 140-105 smile.gif

dodaje do 640x480 znak wodny smile.gif

wgrywa na serwer i dodaje do bazy smile.gif





dzieki smile.gif mysle czy cos jeszcze chciale, ale chyba nie smile.gif
Koniczynka
Czytałem manuala odnośnie imagecopymerge i chciałem zastosować tą funkcję u siebie w skrypcie.


  1. <?php
  2. function dodzdjecie () {
  3.  
  4. $this->nazywaniefot();
  5. move_uploaded_file("$this->rozszerzenie", "$this->zdjecie");
  6. $this->img = imagecreatefromjpeg("$this->zdjecie");
  7. $this->width = imagesx($this->img);
  8. $this->height = imagesy($this->img);
  9. $this->height_mini = $this->row2['jak_ustawienia'];
  10. $this->width_mini = $this->row['jak_ustawienia'];
  11. $this->img_mini = imagecreatetruecolor($this->width_mini, $this->height_mini);
  12.  
  13. imagecopyresampled($this->img_mini, $this->img, 0, 0, 0, 0, $this->width_mini , $this->height_mini, $this->width , $this->height);
  14.  
  15.  
  16. imagejpeg($this->img_mini, "$this->hotelnazwa2", 80);
  17. imagedestroy($this->img);
  18. imagedestroy($this->img_mini);
  19. unlink("$this->zdjecie");  
  20.  
  21. header("Content-type: image/jpeg"); 
  22. imagecopymerge($this->hotelnazwa2 , tlo.gif , 240 , 100 , 220 , 28 , 221 , 30 , 50);  
  23.  
  24. echo "Udało Ci się wgrać $this->hotelnazwa2";
  25.  
  26. }
  27. ?>



Funkcja się jednak nie wykonuje i wyświetla się błąd: Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/francusk/public_html/emme/panel/dodajfotke.php on line 239.

Z góry będę wdzięczny za podpowiedzenie powodu tego błędu.
Kicok
imagecopymerge" title="Zobacz w manualu PHP" target="_manual

Do tej funkcji nie przekazuje się nazw obrazków. Musisz je najpierw otworzyć przez imagecreatefromxxx()
DannyM
Zrobilem jak zaleca Adrian Staniszewski

  1. <?php
  2. function gd_createf($adres) {
  3. $adres="images/";
  4. $source_photo="pirat.jpg";
  5. $watermark="mark.png";
  6. header("Content-Type: image/jpeg");
  7. $transparency = 25; // przezroczystosc znaku wodnego
  8. $source_photo = stripslashes($adres);
  9. $photo = imagecreatefromjpeg($source_photo);
  10. $watermark = imagecreatefrompng($watermark);
  11. $watermark_width = imagesx($watermark);
  12. $watermark_height = imagesy($watermark);
  13. $size = getimagesize($source_photo);
  14. $dest_x = ($size[0] - $watermark_width);
  15. $dest_y = ($size[1] - $watermark_height);
  16. imagecopymerge($photo, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $transparency);
  17. imagejpeg($photo);
  18. imagedestroy($photo);
  19. imagedestroy($watermark);
  20. }
  21. ?>


ale tez nic nie widze mam zero wygenerowanego kodu - biala kartka
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.