![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 12.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Czy ktoś może wie jakim algorytmem posługuje się biblioteka GD dla przetwarzania obrazka JPG, GIF, PNG itd...? Albo ile bajtów pamięci na pixel przypada w trakcie wczytywania do np: ImageCreateJPG lub ImageCreatePNG, ImageCreateGIF. Czy ma tu głównie znaczenie rozdzielczość czy wielkość pliku w [kb]?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Albo ile bajtów pamięci na pixel przypada IMHO, to zależy nie od rozdzielczości, czy wielkości pliku, tylko od typu pliku ( np. GIF może mieć maks. 256 kolorów, czyli na jeden piksel przypada jeden bajt, etc. ) o rozmiarze plików decyduje też nagłówek pliku -------------------- // ...
Co nieco o mnie ;) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 12.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, masz rację z tym co napisałeś. Moje pytanie nie było zbyt precyzyjne. Wyjaśniam - temat jest także związany z optymalizacją kodu tak aby nie przekroczyć dozwolonego bufora na operację po stronie serwera.
Załóżmy, że mamy obrazek który wysyłamy poprzez formularz za pomocą $_FILES, który waży 600 Kb i ma rozdzielczość 1200x1600 pixeli. Skrypt PHP zawarty na stronie ma za zadanie odczytac przesyłany plik i zmienić mu rozdzielczość do określonej (x). Serwer ma ustawiony bufor na operację wynoszący 20 MB - nie mylić z maksymalną wielkością pliku. W trakcie obrubki naszego zdjęcia bufor stopniowo zostaje zapełniany. Jeżeli przekroczymy dozwoloną wartość 20 MB serwer zwraca nam fatal error i przerywa działanie skryptu w dosyć brutalny sposób. Rodzi się pytanie - jak określić ile będziemy używać pamięci do przetworzenia obrazka w trakcie wykonywania operacji ImageCreateJPG, GIF, PNG ale przed jej wykonaniem, tak aby serwer nie zdążył przekazać nam informacji o fatal error i aby wcześniej zakończyć wykonywanie skryptu lub by przekierować użytkownika do ponownego dołączenia zdjęcia o mniejszych wymaganiach dla serwera. Jest to dosyć poważny problem i nie wiem dlaczego dotąd jeszcze nie poruszany przez forumowiczów. Większość serwerów komercyjnych ma dosyć niewielkie BUFORY dla wykonywania operacji, a przesyłane zdjęcia mają coraz większą rozdzielczość. Większość aparatów cyfrowych wykonuje zdjęcia o rozdzielczości 1200x1600 standard. Tak więc myślę, że problem będzie się pojawiał. Ja walcze z tym zagadnieniem i czekam na info. Być może jest inny prostrzy sposób na zmianę rozdzielczości zdjęcia przesyłanego przez formularz tak, aby nie potrzebował aż tyle pamięci na operację? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:26 |