Förminska bild till viss bredd

PHP

2 svar · 350 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Trådstart#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);

}

257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)