LaravelでIntervention Imageを使おうと思ったらv3になっていた

スポンサーリンク

画像処理で利用しようと思ったら、v3になっていた。

導入

composer require intervention/image

Controllerでuse宣言

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

実処理

public function store(Request $request)
{
    try {
        // 画像を取得
        $image = $request->file('file');

        // 新しいマネージャー インスタンスを作成する
        $manager = new ImageManager(new Driver());
            
        // 取得した画像を読み込み
        $img = $manager->read($image);
        // 画像の拡張子を取得
        $extension = $image->getClientOriginalExtension();
        // ユニークな画像名を生成(タイムスタンプ + ランダム文字列)
        $fileName = 'image_' . time() . '_' . uniqid();

        // 画像を保存する
        $img->save(storage_path(self::ORIGIN_PATH . $fileName . '.' . $extension));

        // 画像の幅と高さを取得
        $width = $img->width();
        $height = $img->height();

        // SP用(幅300、高さ自動)
        $mobileImage = $img->scale(width: 300);
        // SP画像を保存
        $mobileImage->save(storage_path($mobileFilePath));

        return response()->json([
            'success' => true,
        ]);
    } catch (\Exception $e) {
        // アップロードが失敗した場合、エラーメッセージを返す
        return response()->json([
            'success' => false,
            'message' => '画像のアップロードに失敗しました。',
        ], 500);
    }
    }

コメント

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