Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Znak wodny z tekstem użytkownika
aram100
post 27.12.2017, 19:41:54
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 27.12.2017

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


Witam

Mam na mojej stronce formularz do wysyłania zdjęć na serwer.

  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2. Wybierz plik do wysłania:
  3. <input type="file" name="fileToUpload" id="fileToUpload">
  4. <input type="submit" value="Wyślij plik" name="upload">


  1. <?php
  2. $target_dir = "images/";
  3. $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
  4. $uploadOk = 1;
  5. $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
  6.  
  7. if ($_FILES["fileToUpload"]["size"] > 1048576) {
  8. echo "Błąd, plik ma zbyt duży rozmiar. ";
  9. $uploadOk = 0;
  10. }
  11.  
  12. if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") {
  13. echo "Błąd, tylko rozszerzenia JPG, JPEG, PNG są dozwolone. ";
  14. $uploadOk = 0;
  15. }
  16.  
  17. if ($uploadOk == 0) {
  18. echo "Plik nie został przesłany.";
  19. } else {
  20. if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
  21. echo "Plik ". basename( $_FILES["fileToUpload"]["name"]). " został przesłany.";
  22. } else {
  23. echo "Błąd, plik nie został przesłany!";
  24. }
  25. }
  26.  
  27. ?>


Chciałbym tworzyć dodatkowo podczas tego przesyłania zdjęcie z tekstowym znakiem wodnym, ale ten tekst ma być podawany przez użytkownika.

W HTML'u dodanie pola - <input type="text" name="znak" />

Czytałem coś o bibliotece GD, znalazłem gotowce np.:

  1. $imageURL = 'obrazek.png';
  2. list($width,$height) = getimagesize($imageURL);
  3. $imageProperties = imagecreatetruecolor($width, $height);
  4. $targetLayer = imagecreatefrompng($imageURL);
  5. imagecopyresampled($imageProperties, $targetLayer, 0, 0, 0, 0, $width, $height, $width, $height);
  6. $WaterMarkText = 'znak';
  7. $watermarkColor = imagecolorallocate($imageProperties, 191,191,191);
  8. imagestring($imageProperties, 5, 130, 117, $WaterMarkText, $watermarkColor);
  9. header('Content-type: image/jpeg');
  10. imagejpeg($im, null, 90);
  11. imagepng ($imageProperties);
  12. imagedestroy($targetLayer);
  13. imagedestroy($imageProperties);


Ale jak zrobić żeby ten skrypt:
1. Brał tekst od użytkownika
2. Zapisywał nowy plik w folderze docelowym.

Może głupie pytania ale w php robię coś drugi dzień :/
Go to the top of the page
+Quote Post
Evinek
post 27.12.2017, 20:17:38
Post #2





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


Dodajesz dodatkowe pole w formularzu.
Odbierasz je przez tablicę $_POST.
Modyfikujesz obrazek odebrany przez formularz (ten z tablicy $_FILES) i dodajesz do niego napis korzystając z np. $_POST['znak']. Ten gotowiec powinien się sprawdzić do tego.

Pisanie po obrazku: http://php.net/manual/en/function.imagestring.php

Po stworzeniu obrazka możesz go zapisać. Użyj do tego imagejpeg lub inne podobne, drugi parametr Cie interesuje:
http://php.net/manual/en/function.imagejpeg.php

Jeśli nie wiesz jak to zrobić to poczytaj sobie jakieś poradniki jak odbierać formularze, jak działa biblioteka GD itp.
Najważniejsze rzeczy masz podane, musisz po prostu tego użyć.
Jeśli nie wiesz czy dane są przesyłane to debuguj sobie przez np. var_dump($_POST).
Sprawdź sobie każdą metodę w manualu aby zobaczyć co dokładnie robią.
Go to the top of the page
+Quote Post
aram100
post 27.12.2017, 22:19:03
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 27.12.2017

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


Co do zapisywania obrazka - mogę określić folder docelowy i dodatkowo zrobić tak, aby zapisywał się ten obrazek ze znakiem w postaci "nazwaplikuZnak" ?

Go to the top of the page
+Quote Post
patwoj98
post 28.12.2017, 11:07:33
Post #4





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


Możesz. Tu już tylko i wyłącznie potrzebna będzie konkatenacja.

  1. "nazwa_pliku_cos_tam".$znak.'.jpg"
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 13:05