webForumDet fria alternativet

Förminska bild till viss bredd

PHP

2 svar · 347 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Frågan#1

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?

Medlem sedan dec. 20002 526 inlägg
#2

sök på GD, thumbnails eller så här i forumet så får du fram info.

Medlem sedan jan. 2005110 inlägg
#3

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);

}

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
143 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
144 ms — ändringar (db)