![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 12.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam szanownych kolegów.
Czy spotkaliście się może z problemem (a sądzę że tak) podczas przesyłania zdjęć JPG i tworzenia miniaturek, aby zdjęcie o określonych rozmiarach (szerokości) np. ok 4500 px lub większe powodowało przerwanie skryptu i błąd. Oto fragment kodu, który obrabia przesyłane zdjęcia:
W czym rzecz. Testowałem przesyłanie fotek o różnych wagach (1, 2, 5, a nawet 8MB) i ponieważ tak mam serwer ustawiony że mogę przesyłać dość duże pliki to i różne rozdzielczości mają prawo się pojawić. I tutaj zaczynają się schody. Pliki o szerokości do ok. 4200px niezależnie od wagi przesyłają się ładnie, miniaturki tworzone są poprawnie. Dopiero przy próbie wysłania zdjęcia powyżej tych rozmiarów skrypt się wysypuje i co najlepsze nawet nie dostaję żadnego komunikatu błędu a jedynie białe tło przeglądarki. W czym rzecz? Czy GD2 ma jakieś ograniczenia co do szerokości obrabianych plików czy może moim skryptom czegoś brakuje? Jeśli problem się już pojawił na forum, a mi nie udało się znaleźć konkretnego postu proszę odeślijcie mnie do niego. Z góry dzięki |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 183 Pomógł: 24 Dołączył: 4.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat PHP has a maximum per-request memory limit configurable in php.ini tylko mi do głowy przychodzi
-------------------- kAlmAcetA
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Zwiększ parametr memory_limit w php.ini.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tylko i wyłacznie memory limit. Duże zdjęcia są bowiem przetwarzane podczas createimagefrom* do formy własnego formatu biblioteki GD2, która to zawiera nieskompresowane RGBA + własne informacje. Same dane o kolorach to:
4B x 4500 x 3375 = 60750000B ~= 59326,17kB ~= 57,94MB A gdzie jeszcze pamięć na resztę? Stąd posypie Ci przetwarzanie dużych obrazów wiele skryptów jeśli nie jesteś na to gotowy w konfiguracji. -------------------- 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
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Bo takiż rzeczy się nie robi w php, piszesz skrypt w bashu, i go wykonujesz z php, wykona się wiele wiele szybciej, ostatnio sprawdzałem to na imagemagick. Generowałem miniaturki pdfów.
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 12.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
dziękuję za szybkie odpowiedzi. W poniedziałek będę testował, dam znać co i jak. pozdrawiam
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@cojack: Ale zdajesz sobie sprawę, że GD to program napisany w C (strona projektu), a rozszerzenie gd to jedynie interfejs? I narzut spowodowany tym interfejsem jest pewnie porównywalny do narzutu innych interfejsów jak chociażby tego do wywoływania poleceń w bashu? Innymi słowy: głupoty wypisujesz.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Crozin:
Cytat ostatnio sprawdzałem to na imagemagick. nie wiem o czym Ty do mnie piszesz. Ten post edytował cojack 23.01.2011, 11:54:50 -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 12.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Sprawdziłem na serwerze wartość memory_limit = wynosi ona 128M. Niestety nie można zwiększyć już tej wartości (zasady bezpieczeństwa - tak tłumaczą się administratorzy), zatem pozostaje chyba tylko sprawdzać szerokość przesyłanego zdjęcia i blokować wykonywanie skryptu powyżej jakiejś wartości (w moim przypadku ok. 4200px). Chyba że macie jakiejś jeszcze inne pomysły. Dzięki za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:33 |