avnsh1111 / laravel-image-optimizer
一个Laravel包,可以自动优化通过应用程序上传的图片。
v1
2023-04-24 13:59 UTC
Requires
- php: ^7.2|^8.2
- illuminate/support: ^6.0|^7.0|^10.0
- spatie/image-optimizer: ^1.6.4
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
README
Laravel Image Optimizer 是一个包,提供了一种简单的方式来优化和调整Laravel应用程序中的图片。
安装
您可以通过composer安装此包。
composer require avnsh1111/laravel-image-optimizer
使用方法
要使用此包,您需要创建一个使用 OptimizeImage
特性的模型。该特性提供了一套优化和调整图片的选项。
以下是一个使用 OptimizeImage
特性的模型的示例
use LaravelImageOptimizer\Traits\OptimizeImage; use Illuminate\Database\Eloquent\Model; class TestImage extends Model { use OptimizeImage; protected $fillable = ['name']; protected static $optimizeImages = [ 'name' => [ 'name_only' => true, 'base_path' => 'public/uploads/images/', 'quality' => 85, 'width' => 800, 'height' => 800, 'keep_files' => false // This value will be overridden by the $keep_files property ], ]; }
选项
name_only
:如果只想在数据库中存储文件名,则设置为true
。如果想要存储完整路径,则设置为false
。base_path
:图片存储的基础路径。quality
:优化图片的质量(从0到100)。width
:优化图片的最大宽度。height
:优化图片的最大高度。keep_files
:如果更新或删除记录时想要保留原始图片文件,则设置为true
。如果想要更新或删除记录时删除图片文件,则设置为false
。
示例
以下是如何使用此包来优化和调整图片的示例
use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Storage; use Intervention\Image\Facades\Image; // Fake storage for testing Storage::fake('public'); // Create a test image $image = Image::make(UploadedFile::fake()->image('test-image.jpg', 2000, 2000)); $imagePath = 'public/uploads/images/test-image.jpg'; Storage::put($imagePath, (string)$image->encode()); // Check if the image exists in storage $this->assertTrue(Storage::exists($imagePath)); // Create a TestImage model $testImage = TestImage::create(['name' => 'test-image.jpg']); // Load the optimized image $optimizedImage = Image::make(Storage::get($imagePath)); // Check if the optimized image dimensions are correct $this->assertLessThanOrEqual(800, $optimizedImage->width()); $this->assertLessThanOrEqual(800, $optimizedImage->height());
测试
要运行测试,请执行以下命令
composer test
贡献
有关详细信息,请参阅CONTRIBUTING。
安全性
如果您发现任何安全相关的问题,请通过电子邮件er.avinashrathod@gmail.com报告,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。