[ milost @ 03.12.2001. 12:35 ] @
kako da dobijem thumbnail od nove, tek uploadovane slike (za sada, recimo gif ili jpeg formata)?

Znaci, kad korisnik uploaduje neke slike, da ima mogucnost da vidi sta je sve uploadovao, a da pri tom, pored imena slike, ima i mail thumbnail.
Kako taj thumbnail da dobijem?

SKriptu pisem u PHP-u, pa zato postavljam pitanje ovde.

Zahvaljujem na svakom korisnom odgovoru....
[ Jbyn4e @ 03.12.2001. 13:56 ] @
Citat:
milost:
kako da dobijem thumbnail od nove, tek uploadovane slike (za sada, recimo gif ili jpeg formata)?
SKriptu pisem u PHP-u, pa zato postavljam pitanje ovde.

Hm, nisam se zezao sa tim, ali imas u dokumentaciji PHP-a na stranici
ref.image.html
ponesto o slikama i tako dalje.. pa se zezaj. Ako te mrzi, ima na
http://phpclasses.upperdesign.com/browse.html/package/272
klasa za to...
Da vidis i ostale graphics klase, idi na
http://phpclasses.upperdesign.com/browse.html/class/11

Eto.
[ dwarf @ 04.12.2001. 02:47 ] @
Pa, kada jednom stavis sliku permanetno negde na server (sto moras, jer PHP skript brise fajlove koje uploduje kada se zavrsi), lepo preusmeris korisnika na drugu stranu kojoj kao paramtera prosledjujes ime fajla i njegovu lokaciju (ako ti lokacija nije stalna). Zatim je samo osnovni PHP/HTML mix sa preuzimanjem varijabli i koriscnenjem istih u HTML tagovima. I na kraju, da bi dobio thumbnail, lepo stavi manje procente u width i height atribute slike, respektivno.

Code:

<img src="<?php echo $dir."/".$fileName;?>" width="40%" height="40%" alt="vas thumbnail">


Ovo ti je najjednostavije resenje. Kompleksnije i "profesionalnije" resenje ti jeste da koristis GD f-je...Odluci sam...Nadam se da je ovo bilo od pomoci.
[ FlatLine @ 04.12.2001. 03:06 ] @
Ako samo stavi procentualno manje dimenzije nece da mu se promeni duzina ucitavanja stranice.. Evo jednostavnog koda za pravljenje thumbnaila od nekog jpeg-a pomocu GD biblioteke:
Code:
<?php 

// http://www.php.net/manual/en/ref.image.php

function Thumbnailize ($ImageFile) { // JPEGs only!
    $Src_Img = imagecreatefromjpeg ($ImageFile); 
    $new_w = imagesx($Src_Img)/6; 
    $new_h = imagesy($Src_Img)/6; 
    $dst_img = imagecreate($new_w,$new_h); 
    imagecopyresized ($dst_img, $Src_Img, 0, 0, 0, 0, $new_w, $new_h, imagesx ($Src_Img), imagesy ($Src_Img)); 
    imagejpeg ($dst_img, "thumb_$ImageFile");
    print "<a href=\"$ImageFile\"><img src=\"thumb_$ImageFile\"></a>";



Thumbnailize ("neka_slika.jpg");

?>

Naravno, code je preuzet iz PHP Manual-a i malo preradjen.
[ dwarf @ 04.12.2001. 05:07 ] @
Naravno da se nece smanjiti duzina ucitavanja slika, ali koliko sam ja shvatio coveka, to i nije toliko bitno. Bitno je samo da korisnik vidi sta je poslao.
[ milost @ 04.12.2001. 08:24 ] @
Hmm... pa prikaz slike sa umanjenim procentima svakako nije resenje (opet se prevlaci slika cele duzine, samo se prikazuje umanjena slika.

Ovo je problem kada korisnik treba da vidi sta je sve ranije uploadovao.

Mislim da je jedino resenje da se thumnailovi dinamicki kreiraju po prispecu slike na server...

Jbyn4e, hvala na linku, ali tamo imaju samo klase koje operisu sa vec poznatim slikama (imaju i thumbnail i orig. sliku)

FlatLine, resenje je dobro za jpeg, imas li mozda i za gif :).

I ima li resenja koja su nezavisna od konfigurisanja PHP-a na serveru?

Poz
[ dwarf @ 04.12.2001. 09:50 ] @
GIF se vise ne podrzava u okviru GD bilbioteke posto Unisys sada naplacuje koriscenje LZW algoritma. Imas PNG doduse... :((( Idi na http://www.php.net/ pa zatim na manual i nadji Image Functions, tu svega ima. Takodje, ako se ne varam: http://www.boutell.com/gd/ to ti je home za GD lib..
[ Mirza @ 06.12.2001. 15:45 ] @
Citat:
dwarf:
Naravno da se nece smanjiti duzina ucitavanja slika, ali koliko sam ja shvatio coveka, to i nije toliko bitno. Bitno je samo da korisnik vidi sta je poslao.


umanjice se duzina ucitavanja ako pozoves sve to iz nekog drugog filea:

npr:

primjer.php:
<?php

<img src=thumbz.php?image=elitesec.jpg>

?>

i onda imas file thumbz.php:

<?php

$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$type = $size[2];

header ("Content-type: image/jpeg");
$src = imagecreatefromjpeg("$image");
$im = imagecreate(70,65);
imagecopyresized($im,$src,0,0,0,0,70,65,$width,$height);
imagejpeg($im);
imagedestroy($im);

?>


ali u svakom slucaju brze i puno bolje je kad napravis thumbnailse u Photoshopu.

M.