Will man vorhandene Bilder verkleinern oder vergrößern, kann man dies per Hand in einem Bildbearbeitungsprogramm erledigen oder es einem PHP-Script überlassen.
Hier eine Methode die das Bild anhand der Breitenangabe verkleinert oder vergrößert.
public function resizeImage($newWidth, $src){
list($imgWidth, $imgHeight, $imgTypeNr, $imgAttr) = getimagesize($src);
if(!empty($imgTypeNr)) {
$pathInfo = pathinfo($src);
$imgName = $pathInfo['filename'];
$path = $pathInfo['dirname'] . '/';
$extension = $pathInfo['extension'];
$ratio = $imgWidth / $newWidth;
$newHeight = round($imgHeight / $ratio);
$newImgName = $imgName . '_' . $newWidth . 'x' . $newHeight.'.'.$extension;
if(!file_exists($path . $newImgName)) {
$imgResize = imagecreatetruecolor($newWidth, $newHeight);
switch ($extension) {
case 'bmp':
$imgOld = imagecreatefromwbmp($src);
break;
case 'gif':
$imgOld = imagecreatefromgif($src);
break;
case 'jpg':
$imgOld = imagecreatefromjpeg($src);
break;
case 'png':
echo 'ok';
$imgOld = imagecreatefrompng($src);
imagealphablending($imgResize, false);
$colorTransparent = imagecolorallocatealpha($imgResize, 0, 0, 0, 127);
imagefill($imgResize, 0, 0, $colorTransparent);
imagesavealpha($imgResize, true);
break;
}
imagecopyresampled($imgResize, $imgOld, 0, 0, 0, 0, $newWidth, $newHeight, $imgWidth, $imgHeight);
$saveImg = false;
switch ($extension) {
case 'bmp':
$saveImg = imagewbmp($imgResize, $path . $newImgName);
break;
case 'gif':
$saveImg = imagegif($imgResize, $path . $newImgName);
break;
case 'jpg':
$saveImg = imagejpeg($imgResize, $path . $newImgName);
break;
case 'png':
echo 'ok2';
$saveImg = imagepng($imgResize, $path . $newImgName);
break;
}
if ($saveImg !== false) {
return $path . $newImgName;
}
}else{
return $path . $newImgName;
}
}
}