php képméretezés dilemma
Hello!
Van egy minkét megoldásban működő "problémám". Szerintetek melyik megoldás jobb és miért?
A kérdés tárgya:
Van egy egyszerű oldal ahova képeket listázok ki.Na most ezek a képek elég nagyok így előbb "thumbnail" képeket csinál belőlük egy php oldal és visszatér az átméretezett kicsit képpel.
1. megoldás az hogy az img tag src-jébe beillesztem a php-t így:VAGY
2. megoldás, hogy magát a php kódot "ciklusozom" be hogy kilistázza a képeket átméretezveNekem az 1. megoldás elég szimpatikus, szóval itt arra lennék főleg kíváncsi, hogy mennyire helyes megadni az img tag src-jének egy php oldalt ami a képpel tér vissza? Mik lehetnek a hátrányai?
Köszönöm előre is!
■ Van egy minkét megoldásban működő "problémám". Szerintetek melyik megoldás jobb és miért?
A kérdés tárgya:
Van egy egyszerű oldal ahova képeket listázok ki.
...
<img src="" border="0" alt="">
<img src="" border="0" alt="">
<img src="" border="0" alt="">
...
1. megoldás az hogy az img tag src-jébe beillesztem a php-t így:
...
<img src="thumb_process.php?kepnev=kepnev_1.jpg" alt="">
<img src="thumb_process.php?kepnev=kepnev_2.jpg" alt="">
<img src="thumb_process.php?kepnev=kepnev_3.jpg" alt="">
...
2. megoldás, hogy magát a php kódot "ciklusozom" be hogy kilistázza a képeket átméretezve
// átméretező kódrész
...
while (van kép) {
echo '<img src="$atmeretezett_kep1" alt="">';
}
...
Köszönöm előre is!
szóval
Az első megoldás a helyes. A baj csak az vele, hogy minden egyes kéréskor újra kell generálnia a kis képet.
Úgy kell megoldani, hogy a képet generálja le egyszer, majd mentse el(pl egy thumbs alkönyvtárba), és a következő kéréskor már a lementett képet szolgálja ki.
terhelés
Igen úgy lenne jó, de egyáltalán mekkora az erőforrásigénye mondjuk 100 kép kilistázásnak ilyen php-s megoldásnak?
a 2. megoldásnál
100 kép listázásánál a thumb_process.php 100-szor fut le.
Az igazán jó megoldás az lenne ha mod_rewritetal kezelnéd le a kisképes dolgot.
pl:
<img src="thumbs/kepnev_1.jpg">
a thumbs könyvtárba kell a thumb_process.php amire átirányítod a nem létező fájlra mutató linket. A thumb_process.php-val legeneráltatod a jpg-t, elmented a mappába és meg is jeleníted.
A következő kéréskor már nem fut le a thumb_process, mivel akkor már elérhető a kis kép, és a webszerver fogja kiszolgálni.
Vbence képméretezője
Pro és kontra
A második megoldás, miszerint egyszer legenerálod, még mindig kicsit overhead, tekintve, hogy a kiszolgálást nem a webszerver, hanem a PHP végzi, ezzel felesleges lépéseket és erőforrásokat pazarolsz a kiszolgálásra.
Az átirányításos módszer nekem a legszimpatikusabb, hiszen ilyenkor csak akkor hajtod meg a php-t ha arra valóban szükség van. Ezt maximum egy takarító script-tel fejelném meg, ha korlátozott a kapacitás a lemezen.
Egy megoldás lehet még - igaz ehhez sok hely kell a szerveren - hogy a fájlokat minden szükséges méretre a feltöltést követően átméretezed. Így mindig csak a webszervert használod a megjelenítéshez.
Ha tehát kevés a tárhely és nincs átirányítás (vagy custom 404 handler), akkor marad a tisztán php-s megoldás.
Ha van hely, akkor mehet a cache-elős móka (egyszer generál, utána php szolgál ki). Egy takarító script elfér mellette.
Ha van sok hely, akkor az össze képet előre legyárthatod.
Ha kevés a hely és van átirányítás, akkor pedig a köztes út (átirányítás php-ra ha nincs meg a kép) és egy külön script (cron) ami a képeket valamilyen algoritmus szerint törli (pl az x ideje nem használtak)
Ha a képet gyakran
Mert egy php script mondjuk tudná ellenőrizni a nagy kép fájldátumát, de az átirányításban nincs ilyen lehetőség.
Lehetőséhek
Ha eleve mindig a php szolgál ki, akkor ez már nem is kérdés.
Csak átirányítással sehogy.
A lehetőségeid - a teljesség igénye nélkül - a következők lehetnek:
- amikor változik a kép, a már elkészült átméretezett változatokat törlöd, így a következő kiszolgálásnál újra létrejönnek
- amikor feltöltik / a helyére kerül az új kép létrehozod a megfelelő méreteket és felülírod az elévült verziót.
Amúgy mindkét esetben figyelembe kell venned, hogy a kliens is használ cache-t, ez időnként bezavarhat.
elöttem szólok szinte mindent elmondtak de
-Összesen hány képről van szó? Mekkora a tárhelyed?
-Egy oldalon ebből kb hány kép jelenik meg?
-Gyakran akarod módosítani a képek méretét, minőségét?
-Kb hány oldaltöltésre számítasz?
Illetve még egy kis megjegyzésem volna hogy ha a dinamikus képgenerálás mellett döntsz, akkor figyelj rá hogy a megfelelő fejlécek ki legyenek küldve hogy a böngésző tudja cache-elni a képeket.
válaszok
-A tárhely nem probléma, mert saját szerveren fut.
-Ha megnyitsz egy mappát az oldalon akkor 20/30 kép látszódik/töltődik be egyszerre.
-A képek mérete, minősége fix nem változik.
-Kevés (NAGYON KEVÉS) oldaltöltődésre számítok, mivel nem olyan profilú az oldal ami tömegeknek szól. Kb havi 100 látogató és akkor nagyon sokat mondtam.
A megfelelő fejlécekre figyelek. Sőt, fel is szabadítom a memóriát a szerveren miután elküldte a böngészőnek a kisképet.
phpthumb
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php
cache-elni is tud, és nem csak thumbra jó, hanem szinte bármire, vízjelezésre, stb