sök på GD, thumbnails eller så här i forumet så får du fram info.
Har ett uppladdnings skript där jag laddar upp bilder i en mapp, men så vill jag att bredden på bilderna ska automatiskt ska förminskas till en viss bredd.
Hur fixar jag det?
2 svar · 347 visningar · startad av mr.mainline
Har ett uppladdnings skript där jag laddar upp bilder i en mapp, men så vill jag att bredden på bilderna ska automatiskt ska förminskas till en viss bredd.
Hur fixar jag det?
sök på GD, thumbnails eller så här i forumet så får du fram info.
Jag behövde samma funktion till min sida, så jag knåpade ihop denna funktionen. Inparametrarna är rätt självklara, utom kanske $Resample. Om denna är True så förminskas bilden med interpolering. Interpolering betyder att ett "genomsnittsvärde" av färgen på de inttilliggande pixlarna räknas ut, och bilden blir "mjukare". Nackdelen med interpolering är att det tar längre tid än utan. Du får helt enkelt prova och se om du tycker att kvalitetsskillnaden är viktigare än tidsskillnaden.
function ResizeImage($Filename, $NewFilename, $NewWidth, $Resample = False){
set_time_limit(60);
$FullImage = imagecreatefromjpeg($Filename);
$ImageInfo = getimagesize($Filename);
$FullImageW = $ImageInfo\[0\];
$FullImageH = $ImageInfo\[1\];
$Scale = $FullImageW/$FullImageH;
$NewImageW = $NewWidth;
$NewImageH = $NewImageW / $Scale;
$NewImage = imagecreatetruecolor($NewImageW, $NewImageH);
if( $Resample ){
imagecopyresampled($NewImage, $FullImage, 0, 0, 0, 0, $NewImageW, $NewImageH, $FullImageW, $FullImageH);
}
else{
imagecopyresized($NewImage, $FullImage, 0, 0, 0, 0, $NewImageW, $NewImageH, $FullImageW, $FullImageH);
}
imagejpeg($NewImage, $NewFilename);
}