| 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: 15 let
|
|||
0