インストールされている以下のオプティマイザを使って画像の最適化を行ってくれる。
- JpegOptim
https://github.com/tjko/jpegoptim - Optipng
http://optipng.sourceforge.net/ - Pngquant 2
https://pngquant.org/ - SVGO
https://github.com/svg/svgo - Gifsicle
http://www.lcdf.org/gifsicle/
インストール
1 2 3 4 |
$ composer create-project laravel/laravel image-optimizer --prefer-dist $ cd image-optimizer $ composer require spatie/laravel-image-optimizer $ php artisan make:controller PhotosController |
サンプル
routes/web.php
1 2 |
Route::post('/photos', 'PhotosController@store') ->middleware('optimizeImages'); |
controller
1 2 3 4 5 6 7 8 9 10 11 |
namespace App\Http\Controllers; class PhotosController extends Controller { public function store() { $this->validate(request(), [ 'photo' => 'required|image:jpeg ' ]); request()->photo->storeAs('images', 'optimized.jpg'); return response('OK', 201); } } |
view
1 2 3 4 5 6 7 8 |
<form action="/photos" enctype="multipart/form-data" method="POST"> {{ csrf_field() }} <div class="form-group"> <label for="">Photo</label> <input class="form-control" name="photo" type="file" /> <button type="submit">Upload</button> </div> </form> |
保存パス
storage/app/images/optimized.jpg
参考サイト
[Laravel] Image Optimization With Spatie Laravel Image Optimizer – Laravel News
https://laravel-news.com/spatie-laravel-image-optimizer