Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] watermark
emajl22
post
Post #1





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


pisze skrypt nakladania znaczka wodnego na zdjecia. znalazlem w internecie kilka takich skryptow, ale ja potrzebuje zrobic to tak, ze wrzuca sie zdjecie przez formularz i naklada sie znak wodny na zdjecie, a nastepnie skrypt przenosi zdjecie juz ze znakiem wodnym na serwer.

  1. <?php
  2.  
  3. if (isset($_POST['w'])) {
  4. $imagesource = $_FILES['img']['tmp_name'];
  5. $watermarkPath = "w.png";
  6. $watermark_w = imagesx($watermarkPath);
  7. $watermark_h = imagesy($watermarkPath);
  8. imagecopy($imagesource, $watermarkPath, 0, 0, 0, 0, $watermark_w, $watermark_h );
  9. $img_name = $_FILES['img']['name'];
  10. move_uploaded_file($img_tmp_name, "./$img_name");
  11. }
  12.  
  13. ?>
  14.  
  15. <form action="" method="post" enctype="multipart/form-data">
  16. <input type="hidden" name="MAX_FILE_SIZE" value="500000000" />
  17. <input type="file" name="img" />
  18. <input type="submit" name="w" />
  19. </form>

nie wiem jak przeniesc zdjecie ze znakiem wodnym na serwer..

i takie bledy wyskakuja:
  1. Warning: imagesx() expects parameter 1 to be resource, string given in
  2.  
  3. Warning: imagesy() expects parameter 1 to be resource, string given in
  4.  
  5. Warning: imagecopy() expects parameter 1 to be resource, string given in


Ten post edytował emajl22 26.08.2011, 13:22:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
drozdii07
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

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


No jak byk jest napisane, że dałeś w parametrze stringa.. a powinno być coś innego.

Ten post edytował drozdii07 26.08.2011, 13:31:51
Go to the top of the page
+Quote Post
peter13135
post
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


błąd wyraźnie mówi, że te funkcje oczekują jako parametr "resource" (np. wyplute przez imagecreate) , a nie stringa. proponuję użyć alternatywnie funkcji copy, oraz getimagesize
Go to the top of the page
+Quote Post
emajl22
post
Post #4





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


wersja poprawiona, ale nadal cos nie dziala:
  1. <?php
  2.  
  3. if (isset($_POST['w'])) {
  4. $imagesource = imagecreatefromjpeg('tapeta.jpg');
  5. $watermarkPath = imagecreatefrompng('w.png');
  6. $watermark_w = imagesx($watermarkPath);
  7. $watermark_h = imagesy($watermarkPath);
  8. $image_w = imagesx($imagesource);
  9. $image_h = imagesy($imagesource);
  10. imagecopymerge($imagesource, $watermarkPath, $image_w, $image_y, 0, 0, $watermark_w, $watermark_h, 30);
  11. $img_tmp_name = $_FILES['img']['tmp_name'];
  12. $img_name = $_FILES['img']['name'];
  13. move_uploaded_file($img_tmp_name, "./test-$img_name");
  14. }
  15.  
  16. ?>
  17.  
  18. <form action="" method="post" enctype="multipart/form-data">
  19. <input type="hidden" name="MAX_FILE_SIZE" value="500000000" />
  20. <input type="file" name="img" />
  21. <input type="submit" name="w" />
  22. </form>

nie naklada znaku wodnego na obrazek, bledow nie ma, obrazek sie wrzuca poprawnie

Ten post edytował emajl22 26.08.2011, 13:43:17
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


yyy a gdzie masz zapis stworzonego obrazka? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
emajl22
post
Post #6





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


a musze najpierw wyslac zdjecie na serwer czy moge od razu nalozyc na wrzucane zdjecie znak i dopiero wrzucic na serwer?

mam cos takiego:
  1. <?php
  2.  
  3. if (isset($_POST['w'])) {
  4.  
  5. $imageupload_tmp_name = $_FILES['img']['tmp_name'];
  6. $imageupload_name = $_FILES['img']['name'];
  7. move_uploaded_file($imageupload_tmp_name, "./$imageupload_name");
  8.  
  9. $watermarkPath = "w.png";
  10.  
  11. $image = imagecreatefromjpeg($imageupload_name);
  12. $watermark = imagecreatefrompng($watermarkPath);
  13.  
  14. $watermark_size = getimagesize($watermarkPath);
  15. $watermark_w = $watermark_size[0];
  16. $watermark_h = $watermark_size[1];
  17.  
  18. $image_size = getimagesize($imageupload_name);
  19. $dest_x = $image_size[0] - $watermark_w;
  20. $dest_y = $image_size[1] - $watermark_h;
  21.  
  22. imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_w, $watermark_h);
  23.  
  24. move_uploaded_file(tutaj nie wiem co dac, "i tu tez");
  25.  
  26. /*header("Content-type: image/jpeg");
  27. imagejpeg($image);
  28. imagedestroy($image);
  29. imagedestroy($watermark);*/
  30.  
  31.  
  32.  
  33. }
  34.  
  35. ?>
  36.  
  37. <form action="" method="post" enctype="multipart/form-data">
  38. <input type="hidden" name="MAX_FILE_SIZE" value="500000000" />
  39. <input type="file" name="img" />
  40. <input type="submit" name="w" />
  41. </form>

naklada obrazek, ale nie wiem jak to teraz wrzucic na serwer ;d

Ten post edytował emajl22 26.08.2011, 14:26:00
Go to the top of the page
+Quote Post
peter13135
post
Post #7





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


obrazek możesz zapisać za pomocą imagejpeg()
zainteresuj się pozostałymi parametrami, jakie przyjmuje ta funkcja
Go to the top of the page
+Quote Post
emajl22
post
Post #8





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


wielkie dzieki
Go to the top of the page
+Quote Post
1010
post
Post #9





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


polecam tą klasę: http://www.verot.net/php_class_upload_samp...89c2ab421585c66

Operacje na grafice dzięki niej to prosta sprawa
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: 23.08.2025 - 20:33