eyadhamza / laravel-webp
这是我创建的laravel-webp包
v2.0.0
2023-12-06 19:00 UTC
Requires
- php: ^8.1
- intervention/image: ^2.7
- laravel/framework: ^8.0|^9.0|^10.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- pestphp/pest: ^1.18
- pestphp/pest-plugin-laravel: ^1.1
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8
README
这个Laravel包是一个对PHP Intervention Library的简单封装,提供了一个更直观的接口,方便将图片转换为WebP格式——一种下一代图像格式,并将它们调整到所需的尺寸。
安装
您可以通过composer安装此包
composer require eyadhamza/laravel-webp
使用以下命令发布配置文件
php artisan vendor:publish --provider="EyadHamza\LaravelWebp\LaravelWebpServiceProvider" --tag="webp-config"
已发布配置文件的内容
return [ 'quality' => 70, 'height' => null, 'width' => null, 'overwrite' => true ];
用法
在Eloquent模型中转换/调整图片大小
要在Eloquent模型中转换图片,只需在模型中为图片列添加一个转换即可
class TestModel extends Model { protected $casts = [ 'image' => ToWebpCast::class . ':200,200,100', 'avatar' => ToWebpCast::class, ]; }
ToWebpCast
类有三个可选参数:宽度、高度和品质。您也可以在配置文件中将值设置为默认值。在配置文件中,将overwrite
值设置为true
或false
;如果设置为true
,则旧图片将被删除。
现在,每次设置图片属性时,它都会被转换为WebP格式,并调整到指定的尺寸(如果提供的话)。
优化现有图片
如果您已经在本地的存储上有未优化的图片,并且它们的路径存储在数据库中,您可以使用以下Artisan命令
php artisan public:to-webp
将指定目录中的图片转换为WebP格式
php artisan public:to-webp --directory='public/images'
要删除旧图片,使用--overwrite
选项
php artisan public:to-webp --overwrite
要优化静态资源中的文件,使用
php artisan public:to-webp --assets
要修改数据库属性值以指向新的webp图片,运行
php artisan images:to-webp Post
如果您想了解更多方便更改图片路径的方法,请参考ImageToWebpService
类。
测试
composer test
更新日志
请参阅更新日志以了解最近的变化。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略了解如何报告安全漏洞。
致谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。