Resize image funktion.
Hej jeg har lavet denne funktion som skal resize billede filer.Problemet er at hvis jeg kalder funktionen med følgende argumenter:
resizeImage($temp_file, $fileNameDist, 100, 200);
Så resizer den et billede med størrelsen, 1536x1024 til 7x13 pixel. Så selve resize delen er vel god nok, eller hvad?
Jeg har gået scriptet igennem for regne fejl, men uden held. Er der nogen der kan hjælpe?
function resizeImage($sourceFile, $targetFile, $maxWidth, $maxHeight){
list($sourceImageWidth, $sourceImageHeight, $fileType) = getimagesize($sourceFile);
if ($sourceImageWidth > $maxWidth){
$delta = $maxWidth/$sourceImageWidth;
if (($sourceImageHeight * $delta) > $maxHeight) $delta = $maxHeight/$sourceImageHeight;
} elseif ($sourceImageHeight > $maxHeight) $delta = $maxHeight/$sourceImageHeight;
if (isset($delta)){
$destImageWidth = round($delta * $maxWidth);
$destImageHeight = round($delta * $maxHeight);
} else {
$destImageWidth = $sourceImageWidth;
$destImageHeight = $sourceImageHeight;
}
$targetImage = imagecreatetruecolor($destImageWidth, $destImageHeight);
switch($fileType){
case ($fileType == 1):
$sourceImage = imagecreatefromgif($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0, $destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagegif($targetImage,$targetFile,100);
break;
case ($fileType == 2):
$sourceImage = imagecreatefromjpeg($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0, $destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagejpeg($targetImage,$targetFile,100);
break;
case ($fileType == 3):
$sourceImage = imagecreatefrompng($sourceFile);
imagecopyresampled($targetImage, $sourceImage, 0,0,0,0, $destImageWidth, $destImageHeight, $sourceImageWidth, $sourceImageHeight);
imagepng($targetImage,$targetFile,100);
break;
}
}
