Laravelで画像のリサイズなどをするには

intervention imageライブラリを導入する

composerでインストール

$ composer require intervention/image

使い方

use Intervention\Image\ImageManager;

    public function update(Request $request, $id)
    {
        $shopImage = $request->image;
        if (!is_null($shopImage) && $shopImage->isValid()) {
            // inputタグのtype=fileでアップロードした画像をリサイズして
            $resizedImage = ImageManager::gd()->read($shopImage)->resize(1920, 1080)->encode();

            // ユニークなファイル名
            $fileName = uniqid(rand() . '_');
            $extension = $shopImage->extension();
            $uniqFileName = $fileName . '.' . $extension;

            // ストレージへ保存する
            Storage::put('public/shop/' . $uniqFileName, $resizedImage);
        }
    }

intervention imageはリサイズの以外にも画像の加工に関する操作は他にもできることが沢山あるので、興味があれば公式サイトを探ってみてください。

Intervention Image | Intervention Image v3 | intervention.io
Intervention Image provides an easy way to manipulate images with PHP using the GD or Imagick library.

intervention imageを使うにはGDライブラリを有効にする必要がある

phpinfo();を見て、GDが有効になっていることを確認する必要がある。

コメント

タイトルとURLをコピーしました