/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Generere thumbnails
Fra : MZH


Dato : 02-09-02 10:29

Jeg forsøger at lave en funktion, så en bruger kan uploade et billede
til serveren og få det vist i et billedgalleri.

Nu kunne det så være rigtig smart, hvis PHP samtidig kunne generere et
lille thumbnail af det uploadede billede til en oversigtsside - kan
man det med en standard PHP installation (jeg har ikke selv adgang til
opsætning af PHP)?

Jeg har rodet med funktionen imagecopyresample(), men kan ikke få den
til at funke...

Nogen der kender en god tutorial?

Mikl

 
 
Niels Andersen (02-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 02-09-02 10:53

MZH wrote in <1lb6nu8nqkb525uveasnscner3t45c1tsl@4ax.com>:
> Nu kunne det så være rigtig smart, hvis PHP samtidig kunne generere et
> lille thumbnail af det uploadede billede til en oversigtsside - kan
> man det med en standard PHP installation (jeg har ikke selv adgang til
> opsætning af PHP)?

GD skal være med, men det er den vist oftest.

> Jeg har rodet med funktionen imagecopyresample(), men kan ikke få den
> til at funke...

Det er præcis den, der er essensen. Hvad er problemet?

--
Mvh.

Niels Andersen
(la nels. anersyn.)

MZH (02-09-2002)
Kommentar
Fra : MZH


Dato : 02-09-02 13:19

>Det er præcis den, der er essensen. Hvad er problemet?

Ja, det er jo nok bare mig, men jeg er i tvivl om hvilken form
parametrene "dst_im" og "src_im" skal have - er det serverstier á la
"/home/usr/www/pictures/billede.jpg" eller er det URL'er á la
"http://www.minserver.dk/pictures/billede.jpg"?

Hvis jeg har forstået det ret, så skal dstX, dstY, srcX og srcY alle
være "0", dstW og dstH er størrelsen på min thumbnail og srcW srcH er
størrelsen på mit kildebillede, korrekt?

Et lille hurtigt eksempel til cut'n'paste ville være dejligt, selvom
det ikke er velset her i gruppen

Mvh.

Mikl

Niels Andersen (02-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 02-09-02 15:01

MZH wrote in <e5l6nus1bq6v1sifgekfgd9egcn5o0djvt@4ax.com>:
[imagecopyresampled]
> Ja, det er jo nok bare mig, men jeg er i tvivl om hvilken form
> parametrene "dst_im" og "src_im" skal have

I manualen står der, at det er ressourcer. Det du skal skrive en variabel,
som indeholder billedet. I bruger-kommentarerne står der bla. dette
eksempel:

$src_img = imagecreatefromjpeg("/path/to/$my_src_file");
$dst_img = imagecreatetruecolor($dest_width,$dest_height);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width,
$dest_height, $src_width, $src_height);
imagejpeg($dst_img, "/path/to/storage/new_file.jpg", $quality);
imagedestroy($src_img);
imagedestroy($dst_img);

--
Mvh.

Niels Andersen
(la nels. anersyn.)

[9000] Rasmus Vester~ (05-09-2002)
Kommentar
Fra : [9000] Rasmus Vester~


Dato : 05-09-02 10:34


"MZH" <mikkel@mzh.nospamdk> wrote in message news:1lb6nu8nqkb525uveasnscner3t45c1tsl@4ax.com...
> Jeg forsøger at lave en funktion, så en bruger kan uploade et billede
> til serveren og få det vist i et billedgalleri.
>
> Nu kunne det så være rigtig smart, hvis PHP samtidig kunne generere et
> lille thumbnail af det uploadede billede til en oversigtsside - kan
> man det med en standard PHP installation (jeg har ikke selv adgang til
> opsætning af PHP)?
>
> Jeg har rodet med funktionen imagecopyresample(), men kan ikke få den
> til at funke...
>

Ikke rigtig, men jeg har selv lavet præcis det samme.

Hvis der er GDlib2 eller højere installleret, kan du bruge imagecopyresampled, hvis det er GD < 2 skal du bruge imagecopyresized.

Du får lige koden til min funktion:

function resizeJpg($src_file, $maxH, $maxW, $append) {
$src_img = imagecreatefromjpeg("./images/".$src_file);
$w=ImageSX($src_img);
$h=ImageSY($src_img);
$ratio=$w/$h;

if ($maxW<1) $maxW=10000;
if ($maxH<1) $maxW=10000;
if ($maxW < $maxH*$ratio) $maxH=$maxW/$ratio;
else $maxW=$maxH*$ratio;

$dst_img = imagecreate($maxW,$maxH);
imagecopyresized($dst_img, $src_img,0,0,0,0,$maxW,$maxH,ImageSX($src_img),ImageSY($src_img));
$path="./images/thumbs/".substr($src_file, 0,-4)."$append.jpg";
imagejpeg($dst_img, $path);
return $path;
}

Den skal så bare kaldes med filnavnet på det billede der skal "thumbnailes", max størrelse for højde og bredde, samt en eventuel endelse. F.eks.

$thumb=resizeJpg("image01.jpg", 80, 100,"thumb");

//$thumb vil nu indeholde referencen til /images/thumbs/image01thumb.jpg som er en lille udgave af image01.jpg

Håber det kan bruges.

Kan evt ses i funktion på
http://ml.1go.dk
Her bliver hele galleriet genereret ud fra et billedebibliotek, hvor scriptet selv sørger for at opdatere med evt. nye billeder, og lave thumbnails til disse også.

Mvh
Rasmus Hansen




Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste