Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Biblioteka GD, dokumentacja
smarcz
post 28.02.2007, 11:58:29
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]?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kubarek
post 28.02.2007, 20:40:53
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 ;)
Go to the top of the page
+Quote Post
smarcz
post 28.02.2007, 22:46:46
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ę?
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: 24.07.2025 - 15:26