Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Biblioteka GD
Forum PHP.pl > Forum > PHP
smarcz
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]?
kubarek
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
smarcz
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ę?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.