Autor | Zpráva | ||
---|---|---|---|
ts_istudio Profil |
#1 · Zasláno: 11. 6. 2013, 09:36:37
Dohadujeme se, kolik přesně paměti potřebuje fce imagecopyresampled. Hledal jsem a nenašel. Předpokládám, že to bude lineárně závislé na rozměrech a barevné hloubce obrázku, ale nemám jak to odzkoušet.
|
||
Joker Profil |
#2 · Zasláno: 11. 6. 2013, 10:41:11
ts_istudio:
„Dohadujeme se, kolik přesně paměti potřebuje fce imagecopyresampled.“ Funkce samotná asi moc ne, největší problém je, kolik paměti zaberou ty obrázky (zdrojový a výstupní). Před (delším) časem jsem dělal nějaké testy na WebZdarma a tamní memory limit 48MB (jestli tehdy nebyl nižší, ale asi ne) stačil tak na obrázky v nižších jednotkách megapixelů, na to co produkují moderní digitály ne. |
||
DJ Miky Profil |
Obecně se čistá paměť spočítá jako
šířka[px] × výška[px] × bitová hloubka ÷ 8 , tedy pro 24bitové (true color) obrázky jsou potřeba 3 bajty na každý pixel obrázku, pro průsvitné PNG to budou 4 bajty (24 bitů barvy + 8 bitů průsvitnost). Hodnotu je však potřeba vynásobit koeficientem kvůli režii, z komentářů na PHP.net lidem obvykle stačí 1,5–1,8× více. Z toho vychází ± 5 bajtů na pixel pro 24bitové obrázky, což je např. pro 1000×1000pixelový obrázek přibližně 5 MB paměti.
Nesmíš však zapomenout, že při provedení imagecopyresampled musíš mít v paměti jak původní, tak nový obrázek.
|
||
ts_istudio Profil |
#4 · Zasláno: 11. 6. 2013, 14:30:47
ok, díky moc.
|
||
Alphard Profil |
#5 · Zasláno: 11. 6. 2013, 22:15:12
Kalkulačka na www.dotsamazing.com/en/labs/phpmemorylimit, asi brzy nahradí rozbitý odkaz ve FAQ.
|
||
Časová prodleva: 11 let
|
0