image - 如何使用干预图像 laravel 将 webp 图像转换为 jpeg 或 png
问题描述
我正在用 Laravel 框架 (PHP) 开发一个应用程序。我想上传具有 webp 格式的图像,然后将其转换为 jpeg 或 png 图像格式。转换图像后,我还想将其上传到 s3 存储桶。
解决方案
首先,我们可以使用干预图像库。我们必须安装 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,请选择您的输出文件扩展名
$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 存储桶
Storage::disk('s3')->put($folderName . '/' . $fileName, $imageNormal->__toString());
推荐阅读
- gis - ArcPro 中道路网络的距离
- perl - unchecking HTML checkbox using perl Mojolicious
- tcl - TCL regsub 模式到另一个模式
- firebase - 未捕获的 SyntaxError:预期的表达式,在 firebase web 中得到 '<'main.dart.js:1
- python - 在集合中找到最接近给定值的值
- fluentui-react - FluentUI DetailsList - 是否可以将一列定义为宽度上的填充/流体/自动?
- python - Django静态图像不服务
- sql - 我可以在 INNER JOIN 中访问 SELECT 中使用的 table.id
- asp.net - 为同一个项目使用两个 IDE
- python-3.x - 在具有两列以上 groupby 的 Pandas 中查找分类值的平均值