Avatar billede clevzter Nybegynder
15. september 2003 - 20:35 Der er 6 kommentarer og
1 løsning

godt thumb-script med GdLib

Hej.

Jeg har et galleri der bruger thumbnails genereretmed gdlib.

Er dog ikke tilfreds med kvaliteten af billederne og kan også se at scriptet kun udnytter GDlib version 1.

Så vidt jeg ved kan man lave det bedre med nyere versioner.

Jeg har GDlib 2.0.1. til rådighed på min server.

Er der nogen der har/kan lave et godt script der genererer thumbnails i god kvalitet.

Man skal bare kunne fortælle scriptet den ønskede fil, dens højde og bredde.
Avatar billede martineriksen Nybegynder
15. september 2003 - 20:36 #1
<?php
        function thumbnail($i,$nw,$p,$nn) {
                $img=imagecreatefromjpeg("$i");
                $ow=imagesx($img);
                $oh=imagesy($img);
                $scale=$nw/$ow;
                $nh=ceil($oh*$scale);
                $newimg=imagecreate($nw,$nh);
                imagecopyresized($newimg,$img,0,0,0,0,$nw,$nh,$ow,$oh);
                imagejpeg($newimg, $p.$nn);
                return true;
        }

        #thumbnail(filetouse,newwidth,newpath,newname);
        thumbnail("/img/x.jpg",100,"/img/thm/","xt.jpg");
?>
Avatar billede dmcn Praktikant
15. september 2003 - 20:38 #2
Den funktion vil formentlig ikke returnere et meget bedre billede, da den bruger imagecopyresized til at generere billedet. Denne funktion blev implementeret i GD1, men i GD2 kom imagecopyresampled med. Denne funktion nøjes ikke med at resize billedet, men behandler det også for bedst muligt resultat.
clevzter, du skal altså være på udkig efter et script der benytter funktion www.php.net/imagecopyresampled
Avatar billede clevzter Nybegynder
15. september 2003 - 20:40 #3
okay, jamen det lyder jo så som om jeg skal bruge et script med funktionen imagecopyresampled()

er der ikke også en funktion der hedder noget med truecolor? det lyder da også lidt af god billedkvalitet...
Avatar billede dmcn Praktikant
15. september 2003 - 20:42 #4
Tjek evt. manualsiden for imagecopyresampled (linket ovenfor) - der er en del forskellige. :)
Avatar billede martinbk Nybegynder
16. september 2003 - 00:30 #5
function resizeImage($src_file, $dest_file, $newWidth)
{
// find the image size
$imginfo = @getimagesize($src_file);
if ($imginfo == NULL)
  return false;

// height/width
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];

$ratioWidth = $srcWidth/$newWidth;
$ratioHeight = 0;
$destWidth = $newWidth;
$destHeight = $srcHeight / $ratioWidth;
$src_img = imagecreatefromjpeg($src_file);
$dst_img = imagecreatetruecolor($destWidth,$destHeight);
ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight);
imagejpeg($dst_img, $dest_file, 100);
imagedestroy($src_img);
imagedestroy($dst_img); 
return $dest_file;
}

min ovenstående funktion laver et truecolor billede og resampler det samtidig, jeg har endnu ikke oplevet nogen kvalitetesproblemer, måske højst lidt CPU belastning, da det er temmelig krævende at lave en resampling af billeder
spørg hvis du er i tvivl om anvendelse af funktionen
Avatar billede clevzter Nybegynder
17. september 2003 - 01:07 #6
>> holybull
Det lader til at være præcis hvad jeg gerne vil ha fat i. Resampling og trucoler for god billedkvalitet. Super!
Er blot lidt i tvivl om hvordan jeg bruger det.
Ville gerne kunne bruge det sådan så jeg f.eks. kunne skrive <img src="thumb.php?src=noget.jpg&width=100">
Kan scriptet ordnes sådan? Er ikke selv en haj til den slags.
Avatar billede clevzter Nybegynder
24. september 2003 - 04:02 #7
>> holybull
"spørg hvis du er i tvivl om anvendelse af funktionen"

Jeg er i tvivl. Hjælp.
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