write ahead log

ロールフォワード用

Laravelで画像をリサイズする際のメモ

Laravel 5.7で試した.

intervention/imageを使った.

他にも透かしを入れられたりと便利.

基本的に上記の公式を見るのがよい. 以下は怠けたいとき用.

composerでパッケージのインストール

$ composer require intervention/image

laravelのconfigへ追記

config/app.phpへ以下を追記.

$providers変数へ以下を追加する.

 $providers = [
        ...
        Intervention\Image\ImageServiceProvider::class,
        ...
    ];

$aliasesも追記しておく.

 $aliases = [
        ...
        'Image' => Intervention\Image\Facades\Image::class,
        ...
    ];

コントローラーのコード

コントローラーにこんなコードを書いた.

$file = $request->file('foo'); // fooってパラメータ名で取得
$x = 300; // 300px
$y = 300; // 300px

// 画像をリサイズ
$img = \Image::make(file_get_contents($file->getRealPath()));
$img->resize($x, $y, function($constraint) {
    $constraint->aspectRatio(); // アスペクト比を保つ
});
$img->save($file->getRealPath());

// 他のストレージへ保存
$file->storeAs($save_path, $filename, 'public');