如何使用干预图像将 webp 图像转换为 jpeg 或 png laravel

how to convert webp image to jpeg or png by using intervention image laravel

我正在 Laravel 框架 (PHP) 中开发应用程序。我想上传具有 webp 格式的图像,然后将其转换为 jpeg 或 png 图像格式。转换图像后,我还想将其上传到 s3 存储桶。

首先我们可以使用Intervention Image库。我们必须安装 php 7 和 gd 库。我正在编写命令来安装下面的 gd 库和 webp 库(对于 ubuntu):

sudo apt-get update
sudo apt-get install webp
sudo apt-get install php7.0-gd (check php version and then install accordingly)

现在检查文件扩展名,如果扩展名是 webp,select 你的输出文件扩展名

$extension = $this->file->extension();

if($this->file->getMimeType() == 'image/webp'){
    $extension = 'png';
}
// Generate a random filename
$fileName = time() . '_' . strtolower(uniqid()) . '.' . $extension;

现在将图像编码为所需格式

if($this->file->getMimeType() == 'image/webp'){
    $image = $image->encode($extension);
}
$image = $image->stream();

现在上传图片到s3 bucket

Storage::disk('s3')->put($folderName . '/' . $fileName, $imageNormal->__toString());