Avatar billede aneez Nybegynder
05. juni 2001 - 12:26 Der er 10 kommentarer og
1 løsning

Tumbnail generator?

Kan det lade sig gøre via PHP at lave tumpnails af store pics? så man for forbedret loadtid samt bedre billedkvali på tumpnailet?

altså hvis jeg har et 800*600 pics som hedder 1.jpg vil jeg gerne have den til at vise et tumpnail af det i opløsningen 130*98

Hvis dette kan lade sig gøre? hvordan gør jeg det så?

/Aneez
Avatar billede limemedia Nybegynder
05. juni 2001 - 12:32 #1
har du GD library installeret ?
Avatar billede alvion Nybegynder
05. juni 2001 - 12:45 #2
Som ljweb siger, du bruger GD funktionerne. Her er et eksempel, som bruger JPG, men du kan så more dig med selv at udvide med PNG. Du skal være opmærksom på, at GD ikke længere understøtter GIF pga. licensregler. Brug PNG istedet.

Eksemplet undersøger både højde og bredde i forhold til thumbnail\'ens maksimum. Derefter skalerer den billedet, så højde/bredde forhold bevares.


$filename = \"mitstorebillede.jpg\";
$thumbFilename = \"thumbnail.jpg\";
$thumbMaxWidth = 80;
$thumbMaxHeight = 80;

$img = imageCreateFromJPEG($filename);
$imgWidth = imageSX($img);
$imgHeight = imageSY($img);

// Skaler thumbnail først efter bredde, derefter (hvis nødvendig) efter højde
if ($imgWidth > $thumbMaxWidth) {
    $forhold = $imgWidth / $thumbMaxWidth;
    $imgWidth = $thumbMaxWidth;
    $imgHeight = (int)($imgHeight / $forhold);
}
if ($imgHeight > $thumbMaxHeight) {
    $forhold = $imgHeight / $thumbMaxHeight;
    $imgWidth = (int)($imgWidth / $forhold);
    $imgHeight = $thumbMaxHeight;
}

$imgThumb = imageCreate($imgWidth, $imgHeight);
imageCopyResized($imgThumb, $img, 0, 0, 0, 0, $imgWidth, $imgHeight, imageSX($img), imageSY($img));

imageJPEG($imgThumb, $thumbFile) or die(\"Kunne ikke lave TN\");

imageDestroy($imgThumb);
imageDestroy($img);

Avatar billede annika Nybegynder
05. juni 2001 - 12:58 #3
GD er rigtig dårlig til at ændre størrelse på billeder. Desuden kan den kun læse jpg/png eller jpg/gif (gammel version).

Der findes et kanonprogram ved navn ImageMagick:
http://www.imagemagick.org

Efter instalation har man en eksekverbar fil ved navn convert.

Nedenstående funktion laver rigtig flot resize med antialias og sharpen. Kræver skriveadgang og safe_mode off.

// Resizes (jpg/gif/png/tif/tga/bmp/dib) image in $source and saves in $dest with specifies format.
// Suggested quality:  small images: 85, medium images: 75, large images: 60

function ResizeImage($source, $dest, $width, $height, $format= \'jpeg\', $quality=75, $sharpen=true)
{ if ($sharpen)
    $srp= \"-sharpen 2x1\";
  echo `convert -antialias -geometry ${width}x${height}! $srp -quality $quality $source $format:$dest`;

Avatar billede webmasterdk Praktikant
05. juni 2001 - 13:22 #4
off topic >> er der ikke noget med at hvis man henter en gammel version af GD så kan man stadig bruge *.gif
Avatar billede aneez Nybegynder
05. juni 2001 - 16:47 #5
Er der nogle af jer der ved om azeros servere understøtter GD eller ImageMagick ?

og hvor kan jeg hente GD?
Avatar billede alvion Nybegynder
05. juni 2001 - 19:20 #6
http://www.boutell.com/gd

Jeg er enig med annika i, at ImageMagick giver bedre billeder, men det er også mere besværligt at bruge, da det kun virker med kommandolinie parametre.
Avatar billede wizprod.com Nybegynder
05. juni 2001 - 21:25 #7
annika> Imagemagick, ja det er bedre og har flere muligheder end gd lib, MEN de fleste udbydere vil installere det på deres servere!
Avatar billede annika Nybegynder
05. juni 2001 - 21:30 #8
Såfremt man har telnet/ssh adgang til sin webserver, kan man sikkert installere det selv.

./configure
make
chmod 755 convert
cp convert der_hvor_jeg_vil_have_den
Avatar billede annika Nybegynder
05. juni 2001 - 21:32 #9
Man kan også sige følgende:

gd kan ændre billedstørrelsen for bedre load tider. Men du får rigtig dårlig billedekvalitet. Så det er efter min mening ikke besværet værd med gd.
Avatar billede aneez Nybegynder
19. juni 2001 - 11:57 #10
jeg benytter GDlib da det er det eneste som er installeret på mit webhotel.
Avatar billede wizprod.com Nybegynder
19. juni 2001 - 12:09 #11
Jeg har benyttet gdlib i et script lignende det ovenstående, hvilket har virket fint, og da jeg kun har formindsket billederne, har kvaliteten også være finno nok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester