Autor | Zpráva | ||
---|---|---|---|
g3rtrud Profil * |
#1 · Zasláno: 22. 1. 2012, 14:15:47
Zdravím, je podla vás vhodné vytvárať miniatúry priamo pri načítaní stránky? mám na mysli niečo takéto:
<?php function onlineresize ($subor,$NovaSirka,$NovaVyska) { $image = imagecreatefromjpeg($subor); $sirka = imagesx($image); $vyska = imagesy($image); if ($NovaVyska==0){ $pomer=$sirka/$vyska; $NovaVyska=$NovaSirka/$pomer; }else { $NovaSirka=$NovaSirka; $NovaVyska=$NovaVyska; } $image_zmenseny = imagecreatetruecolor($NovaSirka, $NovaVyska); imagecopyresampled($image_zmenseny, $image, 0, 0, 0, 0, $NovaSirka, $NovaVyska, $sirka, $vyska); // Zobrazíme zmenšeninu header('Content-type: image/jpeg'); imagejpeg($image_zmenseny); } //zavolame funkciu a zobrazime obrazok onlineresize($_GET['obrazok'],$_GET['sirka'],$_GET['vyska']); ?> odkaz na obrázok by vyzeral takto: <img src="resize.php?obrazok=obr.jpg&sirka=200&vyska=150"/>
takto by bolo zmenšených asi 10 obrázkov na jednej stránke. Vytvárať klasicky miniatury by bolo komplikované tak sa chcem spýtať či by takéto riešenie bolo veľkou záťažou pre server. |
||
Keeehi Profil |
#2 · Zasláno: 22. 1. 2012, 14:44:06
A je takový problém, tu zmenšeninu uložit?
<?php function onlineresize ($subor,$NovaSirka,$NovaVyska) { $image = imagecreatefromjpeg($subor); $sirka = imagesx($image); $vyska = imagesy($image); if ($NovaVyska==0){ $pomer=$sirka/$vyska; $NovaVyska=$NovaSirka/$pomer; }else { $NovaSirka=$NovaSirka; $NovaVyska=$NovaVyska; } $image_zmenseny = imagecreatetruecolor($NovaSirka, $NovaVyska); imagecopyresampled($image_zmenseny, $image, 0, 0, 0, 0, $NovaSirka, $NovaVyska, $sirka, $vyska); imagejpeg($image_zmenseny,"zmenseniny/".$NovaSirka."x".$NovaVyska."-".$subor); } // Zobrazíme zmenšeninu header('Content-type: image/jpeg'); if(!file_exist("zmenseniny/".$_GET['sirka']."x".$_GET['vyska']."-".$_GET['obrazok'])) { onlineresize($_GET['obrazok'],$_GET['sirka'],$_GET['vyska']); } readfile($_GET['sirka']."x".$_GET['vyska']."-".$_GET['obrazok']); ?> PS vstupům od uživatele se nedá věřit! |
||
g3rtrud Profil * |
#3 · Zasláno: 22. 1. 2012, 22:51:37
ten kód mi nefunguje, nevypíše žiadnu chybu, nič...
|
||
Keeehi Profil |
#4 · Zasláno: 23. 1. 2012, 00:20:45
Žádnou chybu nevypíše, protože se to bere jako obrázek. Zakomentuj header a chyba by se měla objevit.
|
||
g3rtrud Profil * |
#5 · Zasláno: 23. 1. 2012, 10:19:25 · Upravil/a: g3rtrud
Warning: imagejpeg() [function.imagejpeg]: Unable to open './miniatury/' for writing
Toto mi vypísal tento aj iný skript ktorý som skúšal. edit: práva adresára sú nastavené na 777 |
||
Keeehi Profil |
#6 · Zasláno: 23. 1. 2012, 13:31:08
Problém bude v tom, že Vám z cesty nějak vypadlo jméno souboru.
|
||
g3rtrud Profil * |
#7 · Zasláno: 24. 1. 2012, 10:59:28 · Upravil/a: g3rtrud
Ďakujem, opravil som to a už to funguje. Len keď to dám do while a chcem aby sa zmenšilo niekolko obrázkov naraz, tak vypíše chybu:
Cannot redeclare createthumb() (previously declared in... Stačilo vybrať funkciu pred while, všetko už funguje ako má, ďakujem za pomoc. |
||
Časová prodleva: 13 let
|
0