Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] rozdzielczosc zdjecia
blank_screen
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

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


Witam,
mam male pytanko, chcialbym zeby po uploadzie zdjecia na serwer skrypt rozpoznawal jego rozdzielczosc i pozniej generowal tylko mniejsze od niego rozdzielczosci, gdyz jak wygeneruje mi wieksze to zdjecie bedzie rozciagniete i niewyrazne, przykladowo uploaduje zdjecie 1024x768, a moj aktualny skrypt tworzy mi miniature 800x600, co w tym przypadku jest ok, ale takze tworzy obrazy w rozdzielczosciach 1600x1200 i 1920x1080, a tego chcialbym uniknac... moj skrypt wyglada tak:

  1. <?php
  2. case img:
  3. if($type == "1") {
  4. $ext = strrchr("$img",".");
  5. $ext = str_replace( '.', '', $ext );
  6. if($_GET['size'] == '1') { $width = '1920'; $height = '1080 '; } elseif($_GET['size'] == '2') { $width = '1600'; $height = '1200 '; } elseif($_GET['size'] == '3') { $width = '1024'; $height = '768 '; } elseif($_GET['size'] == '4') { $width = '800'; $height = '600 '; }
  7. echo "<img src='".URL."imgs/".$img."' width='".$width."' height=".$height.">"; }
  8. break;
  9. ?>



Z gory dzieki i pozdrawiam

Ten post edytował blank_screen 3.08.2009, 12:08:48
Go to the top of the page
+Quote Post
patryczakowy
post
Post #2





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


ten skrypt worzy miniaturki o podanych wymiarach skaluje odpowiednio boki mozesz go sobie dostosować do swoich potrzeb
  1. <?php
  2. $obrazek = $_REQUEST['obrazek'];
  3. $max_szerokosc = $_REQUEST['max_szerokosc'];
  4. $max_wysokosc = $_REQUEST['max_wysokosc'];
  5.  
  6. if (!$max_szerokosc)
  7.  $max_szerokosc = 80;
  8. if (!$max_wysokosc)
  9.  $max_wysokosc = 60;
  10.  
  11. $rozmiar = GetImageSize($obrazek);
  12. $szerokosc = $rozmiar[0];
  13. $wysokosc = $rozmiar[1];
  14.  
  15. $wspolczynnik_x = $max_szerokosc / $szerokosc;
  16. $wspolczynnik_y = $max_wysokosc / $wysokosc;
  17.  
  18. if ( ($szerokosc <= $max_szerokosc) && ($wysokosc <= $max_wysokosc) ) {
  19.  $nowa_szerokosc = $szerokosc;
  20.  $nowa_wysokosc = $wysokosc;
  21. }
  22. else if (($wspolczynnik_x * $wysokosc) < $max_wysokosc) {
  23.  $nowa_wysokosc = ceil($wspolczynnik_x * $wysokosc);
  24.  $nowa_szerokosc = $max_szerokosc;
  25. }
  26. else {
  27.  $nowa_szerokosc = ceil($wspolczynnik_y * $szerokosc);
  28.  $nowa_wysokosc = $max_wysokosc;
  29. }
  30.  
  31. $zrd = ImageCreateFromJpeg($obrazek);
  32. $prz = ImageCreateTrueColor($nowa_szerokosc,$nowa_wysokosc);
  33. Imagecopyresampled($prz, $zrd, 0, 0, 0, 0,
  34.    $nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);
  35. header('Content-type: Image/jpeg');
  36. ImageJpeg($prz, null, -1);
  37. ImageDestroy($zrd);
  38. ImageDestroy($prz);
  39. ?>
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Proszę dodać tag do tematu.
Go to the top of the page
+Quote Post
blank_screen
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

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


nie wiem czy sie zrozumielismy, nie jestem az tak dobry w PHP, ba, prawie wcale go nie znam, orientuje sie nieco ogolnie w zakresie programowania, moglbys mnie bardziej naprowadzic? dzieki za zainteresowanie moim problemem
Go to the top of the page
+Quote Post
patryczakowy
post
Post #5





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


możesz zapisać ten skrypt np jako zmianaWielkosci.php a wywoływać go w ten sposób
  1. <img src="zmianaWielkosci.php?obrazek=adresobrazka.jpg&max_szerokosc=600&max_wysokosc=600"/>

W ten sposób zostanie wygenerowana miniaturka co ważne zostanie przesłana do przeglądarki już pomniejszona co zaoszczędzi twój transfer oczywiście szerokość i wysokość możesz zmienić
Go to the top of the page
+Quote Post
Chrom
post
Post #6





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


może się mylę ale skorzystaj z podanego przez patryczakowatego rozwiązania, Twój skrypt zapisuje zdjęcia w standardowych wymiarach a co będzie jak ktoś wyśle tasiemkę 100/10000, czasami zdjęcia są obrabiane/kadrowane i nie posiadają standardowych wymiarów, cała strona może się wtedy rozjechać.
Go to the top of the page
+Quote Post
patryczakowy
post
Post #7





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


Cytat(Chrom @ 3.08.2009, 13:39:35 ) *
Twój skrypt zapisuje zdjęcia w standardowych wymiarach a co będzie jak ktoś wyśle tasiemkę 100/10000,

zostanie proporcjonalnie przeskalowana a poza tym skrypt skaluje i wysyła do przeglądarki nie zapisuje ze skalowanego obrazka i dlatego wywołując go z różnymi parametrami uzyskami różne miniaturki a pełno wymiarowe zdjęcie będzie zawsze dostępne
Go to the top of the page
+Quote Post
blank_screen
post
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

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


ok, dzieki chlopaki za pomoc, to ja moze uchyle rabka tajemnicy i powiem ze to nie galeria, tylko planowana strona z tapetkami na pulpit, w necie jest duzo tapet w roznych rozmiarach ale generalnie nie ma wiekszych rozmiarow niz pasujace na ekran 24", czyli tak.. uploaduje sobie tapete o rozdzielczosci 800x600 i jak dodam ten skrypt(jeszcze nie wiem gdzie) to bede mial w swojej kolekcji tylko ten jeden rozmiar, nie bedzie rozciagnietej 1920x1080 ani 1600x1200, ktora do tej pory byla generowana automatycznie?
Go to the top of the page
+Quote Post
patryczakowy
post
Post #9





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


Wszytko zależy jak tego użyjesz jak chce ci się bawić to użytkownik może sam podawać rozdzielczość jaka go interesuje.
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 - 14:07