$originalRatio) { $newWidth = $height * $originalRatio; } else { $newHeight = $width / $originalRatio; } $fileExtension = pathinfo($file); $newImage = imagecreatetruecolor($width, $height); $newFileName = basename($newFile, $fileExtension['extension']) . strtolower($fileExtension['extension']); switch($fileExtension['extension']) { case 'jpg': case 'jpeg': return $this->resizeJpeg($file, $newFileName, $newImage, $tempImage, $width, $height, $originalWidth, $originalHeight); break; case 'gif': return $this->resizeGif($file, $newFileName, $newImage, $tempImage, $width, $height, $originalWidth, $originalHeight); break; case 'png': return $this->resizePng($file, $newFileName, 9, $newImage, $width, $height, $originalWidth, $originalHeight); break; default: return false; break; } } protected function resizeJpeg($file, $newFileName, $newImage, $width, $height, $originalWidth, $originalHeight) { $tempImage = imagecreatefromjpeg($file); imagecopyresampled($newImage, $tempImage, 0, 0, 0, 0, $width, $height, $originalWidth, $originalHeight); if(!imagejpeg($newImage, $newFileName, 100)) { return false; } else { return true; } } protected function resizeGif($file, $newFileName, $newImage, $width, $height, $originalWidth, $originalHeight) { $tempImage = imagecreatefromgif($file); imagecopyresampled($newImage, $tempImage, 0, 0, 0, 0, $width, $height, $originalWidth, $originalHeight); if(!imagegif($newImage, $newFileName)) { return false; } else { return true; } } protected function resizePng($file, $newFileName, $quality, $newImage, $width, $height, $originalWidth, $originalHeight) { $tempImage = imagecreatefrompng($file); imagecopyresampled($newImage, $tempImage, 0, 0, 0, 0, $width, $height, $originalWidth, $originalHeight); if(!imagepng($newImage, $newFileName, $quality)) { return false; } else { return true; } } } ?>