Bildgröße mit PHP ändern

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;
      }
    }
  }
Veröffentlicht am
Kategorisiert in php