Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]PHP i duża rozdzielczość obrazka
Tadek888
post 11.03.2012, 13:28:41
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 21.04.2009
Skąd: Białogóra

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


Mam skrypcik który zmniejsza fotki do 800px dłuższa krawędź.

Używam przy tym:
imagecreatefromjpeg
imagecreatetruecolor
imagecopyresampled
imagejpeg

Jeśłi ładuję fotkę w rozdzielczości 1920x1200 wszystko działa
i fotka ląduje zmniejszona do 800px w docelowym folderze.

Jeśli ładuję fotkę w rozdzielczości 4592x3056 to też ląduje w
folderze docelowym ale nie zostaje zmniejszona do 800px
tylko ma oryginalny rozmiar

Czy jest to jakieś ograniczenie czy użyć jakiejś biblioteki ?
Go to the top of the page
+Quote Post
Ruch Radzionków
post 11.03.2012, 14:23:24
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


a może pokażesz kod. może coś w kodzie masz źle


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
Tadek888
post 11.03.2012, 15:08:20
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 21.04.2009
Skąd: Białogóra

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


To raczej nie wina kodu
Jak pisałem wyżej.

obrazki full hd przechodzą - mniejsze też. Powyżej 4000x3000 jest problem.
Gdzieś opisali że to wina serwera to jest raz a pozatym wydajniejszy jest imagemagick.

kod:
  1. function photo_resize($file, $dir, $n_size){
  2. $pic_res = pic_res($file, $dir);
  3. $pic_w = $pic_res[0]; $pic_h = $pic_res[1];
  4.  
  5. if(($pic_w > $pic_h)&&($pic_w > $n_size)){ //poziome
  6. $pic_wn = $n_size;
  7. $divisor = ($pic_w/$pic_wn);
  8. $pic_hn = round($pic_h/$divisor);
  9. }
  10. elseif(($pic_w < $pic_h)&&($pic_h > $n_size)){ //pionowe
  11. $pic_hn = $n_size;
  12. $divisor = ($pic_h/$pic_hn);
  13. $pic_wn = round($pic_w/$divisor);
  14. }
  15. else{ // jesli mniejszy niż 800px
  16. $pic_wn = $pic_w;
  17. $pic_hn = $pic_h;
  18. }
  19.  
  20. $pic = imagecreatefromjpeg($dir.$file);
  21. $new_size = imagecreatetruecolor($pic_wn, $pic_hn);
  22. imagecopyresampled($new_size, $pic, 0, 0, 0, 0, $pic_wn, $pic_hn, imagesx($pic), imagesy($pic));
  23. $save = $dir.$file;
  24. $new_photo = imagejpeg($new_size, $save, 100);
  25. return $new_photo;
  26. }


może nie tyle serwera co za mało przeznaczyłem pamięci na to działanie.

A tutaj opis problemu :
http://stackoverflow.com/questions/12661/e...resizing-in-php

Ten post edytował Tadek888 11.03.2012, 15:07:34
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: 14.08.2025 - 00:50