micmelo / michelangelo
Laravel 图像管理和优化包
0.2.0
2021-02-13 20:13 UTC
Requires
- illuminate/database: ^5.0|^6.0|^7.0|^8.0
- illuminate/support: ^5.0|^6.0|^7.0|^8.0
- intervention/image: ^2.4
This package is auto-updated.
Last update: 2024-09-16 16:50:01 UTC
README
Michelangelo
Michelangelo 是一个 Laravel 图像管理和优化包。定义图像尺寸和选项,以多尺寸存储上传的图像(可选带水印)并在需要时从您的网站上检索优化后的图像。
概述
好处
您可以保持原始用户上传的图像不变(2MB 或更大)。此包将创建新的优化图像,并在清单文件中保存原始和优化图像的引用。
您的页面将加载更快,因为下载的 MB 将更少,因为图像将更小。我在开发阶段后期实施此包作为附加组件后,成功将图像大小从 2.4MB 减少到 700Kb。
安装
从命令行
composer require michelmelo/michelangelo
将配置文件 michelangelo.php
发布到您的 /config
目录
php artisan vendor:publish --provider="Michelmelo\Michelangelo\ServiceProvider" --tag=config
安装完成!
配置
在继续之前,请确保打开 /config/michelangelo.php
文件并更新尺寸和质量以满足您的需求。
存储方法
在您将用户上传的图像存储在您的存储 UploadedFile $image->store('images')
中,并且您已获取到图像的路径后。将此路径(您通常将其存储在数据库中)提供给 Michelangelo
use Michelmelo\Michelangelo\Michelangelo; public function store(Request $request, Michelangelo $michelangelo) { // ... // store original image in storage $article->image = $request->image->store('images'); // optimize original image to desired dimensions $michelangelo->optimize($article->image, ['news', 'news_cover']); // ... }
更新方法
当用户将替换现有图像为新图像时,我们必须首先从存储和清单文件中清除旧图像的所有记录,然后优化新图像
use Michelmelo\Michelangelo\Michelangelo; public function update(Request $request, Article $article, Michelangelo $michelangelo) { // ... if ($request->hasFile('image')) { // delete original image from storage Storage::delete($article->image); // delete all optimized images for old image $michelangelo->drop($article->image, ['news', 'news_cover']); // save new original image to storage and retrieve the path $article->image = $request->image->store('images'); // optimize new original image $michelangelo->optimize($article->image, ['news', 'news_cover']); } // ... }
销毁方法
当删除具有优化图像的记录时,请确保删除优化图像以减少未使用的文件
use Michelmelo\Michelangelo\Michelangelo; public function destroy(Article $article, Michelangelo $michelangelo) { // ... // delete original image Storage::delete($article->image); // delete optimized images $michelangelo->purge($article->image); // delete record from database $article->delete(); // ... }
检索优化图像
从您的视图文件中
<image src="{{ Michelangelo::get($article->image, 'news') }}" />
此行将检索优化图像的 URL。
赞助商和资助者
贡献
行为准则
许可协议
Michelangelo 是开源软件,许可协议为 MIT 许可协议。