Resize kvalitet
Jeg har et script der resizer et billede on the fly. Kvaliteten bliver også ok, men ikke super, og det er super jeg går efter. Om billedet kommer til at fylde 10 gange så meget, eller om det tager 10 gange så lang tid at lave, er underordnet, kvaliteten af billedet, og kvaliteten alene, har prioritet 1! Hvis jeg beholder billedet i sin oprindelige størrelse og scalere den ned, bliver det heller ikke godt. Hvordan optimere jeg koden så jeg får det bedste resulteat overhovedet?Kode:
//Her skal filen flyttes fra
$fra = $_FILES['upfil']['tmp_name'];
$size = getImageSize($_FILES['upfil']['tmp_name']); //Find højden og bredden på det billede jeg vil resize
list($foo, $bredde, $bar, $hojde) = explode("\"",$size[3]);
$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?
//Find den nye højde og bredde
$bredde_ny = 133;
$hojde_ny = round($bredde_ny*$forhold);
//Load/opret billeder
//Hvilken type fil arbejder vi med?
$ext2 = strtolower(end(explode(".", $_FILES['upfil']['name'])));
//Hvis filen er et jpg, jpeg eller gif billede
if($ext2 == "jpeg" || $ext2 == "jpg")
{
$source = imagecreatefromjpeg($_FILES['upfil']['tmp_name']);
}
if($ext2 == "gif")
{
$source = imagecreatefromgif($_FILES['upfil']['tmp_name']);
}
$destination = imagecreatetruecolor($bredde_ny, $hojde_ny);
//Resize
imagecopyresampled($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);
//Gem
imagejpeg($destination, $_FILES['upfil']['tmp_name']);
//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
//Hvis filen er et jpg, jpeg eller gif billede
if($ext == "jpeg" || $ext == "jpg" || $ext == "gif")
{
$tid = $_SERVER['REMOTE_ADDR'];
//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = $tid . "_" . rand(1, 1000000) . "." . $ext;
$til = "news/" . $nytNavn;
move_uploaded_file($fra, $til);
}
