Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skalowanie i zapis obrazków
5w155
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.01.2009

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


Witam!
Chciałbym z poniżeszego formularza:
  1. <form action="" method="post" enctype="multipart/form-data">
  2. <input type="text" name="login" />
  3. <input type="file" name="plik" />
  4. <input type="submit" value="Zapisz" />
  5. </form>

Uploadowany obrazek dostaje nową nazwę i lokalizację ze skryptu:
  1. $zapytanie = 'SELECT MAX(id_opisu) FROM opis_towaru';
  2. $wyniki = $baza->select($zapytanie);
  3. $id_p_1 = $wyniki[0]['MAX(id_opisu)']+1;
  4.  
  5. if (isset($_FILES['Plik']))
  6. {
  7. $okladka = explode('.',$_FILES['Plik']['name']);
  8.  
  9. if (!move_uploaded_file($_FILES['Plik']['tmp_name'], '../okladki/'.$id_p_1.'.'.$okladka[1]))
  10. switch($_FILES['Plik']['error'])
  11. {
  12. case 1:
  13. echo('Przesyłany plik jest większy niż zezwala konfiguracja serwera.');
  14. break;
  15. case 2:
  16. echo('Przesyłany plik jest większy niż zezwala formularz.');
  17. break;
  18. case 3:
  19. echo('Przesłano tylko część pliku.');
  20. break;
  21. case 4:
  22. echo('Plik nie został przesłany');
  23. break;
  24. }
  25. }

później chciałbym uzyskać dodatkowy efekt. Otóż chciałbym, żeby ten obrazek został odpowiednio zeskalowany i ten nowoutworzony plik podmienił ten stary. Skalowanie uzyskuję z tego skryptu:
  1. $nazwa_p = 'przyklad.jpg';
  2.  
  3. $szerokosc = 120;
  4. $wysokosc = 190;
  5.  
  6. header('Content-type: image/jpeg');
  7.  
  8. list($szerokosc_oryg, $wysokosc_oryg) = getimagesize($nazwa_p);
  9.  
  10. $skala_oryg = $szerokosc_oryg/$wysokosc_oryg;
  11.  
  12. if ($szerokosc/$wysokosc > $skala_oryg) {
  13. $szerokosc = $wysokosc*$skala_oryg;
  14. } else {
  15. $wysokosc = $szerokosc/$skala_oryg;
  16. }
  17.  
  18. $image_p = imagecreatetruecolor($szerokosc, $wysokosc);
  19. $image = imagecreatefromjpeg($nazwa_p);
  20. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $szerokosc, $wysokosc, $szerokosc_oryg, $wysokosc_oryg);
  21.  
  22. $obrazek = imagejpeg($image_p, null, 100);


Czyli ogólnie:
- wybieramy obrazek z formularza
- plik zostaje wrzucony do odpowiedniego katalogu
- obrazek jest skalowany
- stary obrazek jest podmieniany przez nowy- zeskalowany

jak mogę to osiągnąć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zrób je w kolejności właściwej, a jako nazwy dla nowego pliku użyj nazwy starego pliku - automatycznie zastąpi.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
krowal
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


  1. <?php
  2. $obrazek = imagejpeg($image_p, null, 100); // tutaj null zastąp ściężką pliku który chcesz zastąpić
  3. ?>


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
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 Aktualny czas: 22.08.2025 - 05:24