Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak przeskalować / zmniejszyć obrazek w trakcie wysłania na serwer
Tomekstw
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


na razie mam coś takiego
  1.  
  2. <?php
  3. if(isset($_POST['upload']))
  4. {
  5. $filename = $_FILES['plik']['tmp_name'];
  6. $plik_nazwa = $_FILES['plik']['name'];
  7. $plik_rozmiar = $_FILES['plik']['size'];
  8.  
  9.  
  10.  
  11. list($width, $height) = getimagesize($filename);
  12.  
  13. $thumb = imagecreatetruecolor(120, 80);
  14. $source = imagecreatefromjpeg($filename);
  15.  
  16. imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 80, $width, $height);
  17.  
  18. if(is_uploaded_file($filename)) {
  19. move_uploaded_file($filename, "upload/$plik_nazwa");
  20. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  21. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer! $width x $height";
  22. }
  23. }
  24. ?>


Ale jak się domyślacie to nie działa bo jakby działało to bym nie dawał ? logiczne
Chcę aby plik został wysłany na serwer ale ... plik zostaje wysłany ale nie zostaje pomniejszony


No więc czekam na pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
jarmiar
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


skorzystaj z tej klasy
http://www.verot.net/php_class_upload.htm
wystarczyło wejść w google, logiczne nie?
Go to the top of the page
+Quote Post
CuteOne
post
Post #3





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

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


ale kombinujesz... skoro plik jest już na serwerze to wystarczy go "ruszyć" do zadanego folderu a dopiero potem przeskalować...
Go to the top of the page
+Quote Post
Tomekstw
post
Post #4





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


CutOne , sory że tak pózno odpisuje to znaczy bardzo pózno bo aż 4 dni ale miałem małą awarie internetu.

Mógłbyś wyjaśnić bardziej szczegółowo ?
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%)
-----


manual:: move_uploaded_file
Go to the top of the page
+Quote Post
Tomekstw
post
Post #6





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


Myślisz że nie czytałem ?.

Wgrać na serwer obrazek do folderu i tam go dopiero zeskalować i nadpisać ? jeżeli nie to chyba masakra (IMG:style_emoticons/default/snitch.gif)

a jeżeli tak to jak to zrobić

Ten post edytował Tomekstw 24.09.2011, 19:08:59
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





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

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


Tak jak piszesz wgrać, przeskalować i nadpisać/stworzyć nowy plik... Dlaczego masakra.. ?

Ten post edytował CuteOne 24.09.2011, 19:10:45
Go to the top of the page
+Quote Post
Tomekstw
post
Post #8





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


Czyli nadal nie wiem jak to zrobić (IMG:style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
CuteOne
post
Post #9





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

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


1. wrzucasz plik przez formularz
2. zapisujesz w wybranym folderze
3. skalujesz plik z tego folderu i zapisujesz/nadpisujesz

....
Go to the top of the page
+Quote Post
Tomekstw
post
Post #10





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


Cytat(CuteOne @ 24.09.2011, 20:15:42 )
3. skalujesz plik z tego folderu i zapisujesz/nadpisujesz


Jakbym wiedział jak zrobić ten punkt to bym zrobił wiem jak wyświetlić przeskalowany obraz ale nie wiem jak go zapisać ... !
Go to the top of the page
+Quote Post
Mefiuu
post
Post #11





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


imagepng

np taką funkcją zapisujesz przeskalowany obrazek.
Go to the top of the page
+Quote Post
Tomekstw
post
Post #12





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


mógłbyś dać przykład ?
Go to the top of the page
+Quote Post
Mefiuu
post
Post #13





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


  1. <?php
  2. // Create a blank image and add some text
  3. $im = imagecreatetruecolor(120, 20);
  4. $text_color = imagecolorallocate($im, 233, 14, 91);
  5. imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
  6.  
  7. // Save the image as 'simpletext.jpg'
  8. imagejpeg($im, 'simpletext.jpg');
  9.  
  10. // Free up memory
  11. imagedestroy($im);
  12. ?>
  13.  



żywcem z manuala ... po prostu dla utworzonego przeskalowanego obrazka wykonujesz funkcję imagejpg z parametrem $filename. Pod taką nazwą zapisze Ci plik jpg. Sprawdź manual.
Go to the top of the page
+Quote Post
Tomekstw
post
Post #14





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.08.2011

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


Tak faktycznie.

Dobra masz +.
Go to the top of the page
+Quote Post
yebieoll
post
Post #15





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.09.2011

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


też coś znalazłem:

  1. function resize($nazwa_pliku, $wysokosc, $szerokosc, $czy_zachowac_skale)
  2. {
  3. $ic = imagecreatefrompng($nazwa_pliku);
  4. if ( $ic === false )
  5. {
  6. return 'Miniaturka nie stworzona!';
  7. }
  8. $is = getimagesize($nazwa_pliku); // [0] - szerokość, [1] - wysokość
  9. //-----------------------------
  10. switch ( $czy_zachowac_skale )
  11. {
  12. case false: // zmniejszanie bezpośrednio do szerokosc/wysokosc
  13. $nts = imagecreatetruecolor($wysokosc, $szerokosc);
  14. imagecopyresized($nts, $ic, 0, 0, 0, 0, $szerokosc, $wysokosc, $is[0], $is[1]);
  15. break;
  16. default: // zmniejszanie z zachowaniem skali, aż do osiągnięcia co najmniej szerokosc/wysokosc
  17. $width = $is[0];
  18. $height = $is[1];
  19. $ratio = $is[0] / $szerokosc;
  20. if ( $ratio > 1 )
  21. {
  22. $width = $szerokosc;
  23. $height = intval($is[1] / $ratio);
  24. }
  25. $ratio = $height / $wysokosc;
  26. if ( $ratio > 1 )
  27. {
  28. $width = intval($width / $ratio);
  29. $height = $wysokosc;
  30. }
  31. $nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tłem
  32. imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
  33. }
  34. //-----------------------------
  35. imagepng($nts, 'nowy.png');
  36. imagedestroy($nts);
  37. }
  38.  
  39. resize('example.png', 180, 160, false);
  40. //albo
  41. resize('example.png', 180, 160, true);


dodatkowo masz możliwość pomniejszania proporcjonalnego lub bezpośrednio do ustalonych wartości.
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: 24.08.2025 - 18:13