【Laravel】laravel intervention imageの導入

投稿日   更新日

laravel intervention imageとはimage magickのようなライブラリのlaravel版。
フロントエンドにはLaravel Livewireを採用しているが、
おそらくLaravel Controllerでも動くはず。
記事はv2になっているが、自分がこのパッケージをインストールしたときはv1だったので、
公式を見ていただいた方が早いかも()

インストール

https://image.intervention.io/v2/introduction/installation
composer requireする

$ composer require intervention/image


config/app.php に以下を追記

providersに

Intervention\Image\ImageServiceProvider::class


aliasesに

'Image' => Intervention\Image\Facades\Image::class


これでlivewireコンポーネントで
use Image;で呼ぶだけで、laravel intervention imageが使用できる。

リサイズの使用法

リサイズだけでなく、各関数の使用法はサイドメニューから見れる。
ちなみにリサイズ。
[Intervention Image - Resize](http://image.intervention.io/api/resize)

W * Hのアスペクト比を維持したまま画像を加工したい場合は、
最下部の記述を用いる。

// resize the image so that the largest side fits within the limit; the smaller
// side will be scaled to maintain the original aspect ratio
$img->resize(400, 400, function ($constraint) {
  $constraint->aspectRatio();
  $constraint->upsize();
});


第一引数がwidthで第二引数がheight。

ImageMagickを使用したい

もしImageMagickを使いたい場合は、以下の手順を行ってください。

$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"


config/image.php を開いてdriverをimagickへ変更。

// 'driver' => 'gd'
'driver' => 'imagick'


※環境にImageMagickがインストールされている必要がある。

参考記事

[Intervention Image | Intervention Image v2 | intervention.io](https://image.intervention.io/v2)
[Laravelでintervention/imageを使う - Qiita](https://qiita.com/masuda-sankosc/items/874f6128de29ece021d5)