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

}

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)