avnsh1111/laravel-image-optimizer

一个Laravel包,可以自动优化通过应用程序上传的图片。

v1 2023-04-24 13:59 UTC

This package is auto-updated.

Last update: 2024-09-24 17:09:47 UTC


README

Latest Version on Packagist Total Downloads

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)。有关更多信息,请参阅许可证文件