Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][gd2] problem z tworzeniem miniatur z dużych plików
gmati
post
Post #1





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

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


Witam,

Mam mini system do tworzenia miniatur z plików JPG. System ma na celu przesłanie pliku JPEG od użytkownika, i wygenerowanie dwóch miniatur różnej wielkości z tego pliku. Wszystko jest OK, gdy zdjęcia nie są zbyt dużej wielkości (1-2 Mpx). Przy większych rozdzielczościach miniatury nie są generowane. Większe pliki fizycznie udaje się wysłać na serwer, jednak miniatury nie są generowane.

Funkcje z jakich korzystam do generowania miniatur to:
ImageCreateFromJPEG
ImageSX
ImageSY
ImageCreateTrueColor
ImageCopyResampled
ImageJPEG

Czy problem może dotyczyć jakiś ograniczeń na serwerze? Z góry dzięki za jakieś sugestie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wlacz wyswietlanie bledow lub przejrzyj logi. Bledy powiedza ci lepiej niz my co jest nie tak.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Może dotyczyć ograniczeń na serwerze, a najpewniej dostępnej pamięci.
Rozmiar zdjęcia w formie skompresowanej ma mniejsze znaczenie, większe ma faktyczna rozdzielczość zdjęcia, bo takowe musi być w pamięci przechowane w postaci surowej.


--------------------
Go to the top of the page
+Quote Post
gmati
post
Post #4





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

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


Przy próbie poddania obróbce większego pliku JPEG, wyskakuje błąd: HTTP ERROR 500.

Timeout albo za mało RAM?
Go to the top of the page
+Quote Post
sazian
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


500 to wewnętrzny błąd serwera, czyli to może być wszystko i nic.
Musisz się dostać do logów serwera, ale mi to wygląda na timeout
Go to the top of the page
+Quote Post
gmati
post
Post #6





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

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


Doszedłem do takiego błędu w logach:

PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3264 bytes) in ...*.php on line 7

Czyli za mało pamięci, do wykoniania zadania. Jaki jest optymalny rozmiar pamięci, do takich zadań przy dzisiejszych aparatach cyfrowych i telefonach?
Go to the top of the page
+Quote Post
maly_swd
post
Post #7





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


Z tego co pamiętam na samo wczytanie do GD obrazka, potrzeba:
(wysokość) x (szerokosć) x (3 bajty na pixel) x 2 (coś tam gd jeszcze potrzebuje chyba na trzymanie kanałów alpha).

czyli 4000x 3000 x 3 x 2 = 70 MB na samo załadowanie.
Każda kolejna operacja może wymagać podobnego kawałka pamięci. Np kopiowanie ze zmniejszaniem.


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
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: 21.08.2025 - 11:18