Laravelとintervention/imageの3で画像アップロード
2024.08.02 09:00
2024.08.02 10:22

Laravelの11を使おうと思ったら、画像アップロードライブラリであるintervention/imageのバージョンが2から3になっていて、かつ内容がだいぶ変わっていたので、対応をメモしました。
自分が使ってる範囲で変わったのは、画像リサイズである「resize」と画像の比率を保持する「aspectRatio」、元サイズ以上の拡大を防ぐ「upsize」、画像の回転を修正する「orientate」でした。
以前の2だとこんな感じ。
// 比率を保ったままリサイズ
$img->resize($width, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->orientate();
これを3にするとこんな感じになります。
$manager = new ImageManager(new Driver());
$img = $manager->read(POSTされたデータのパス);
// 比率を保ったままリサイズ
$img->scaleDown(width: 300);
// 縦横を調整
$img->orient();
// クォリティを指定して保存
$img->save(保存する画像のパス, 80);
シンプルでわかりやすくなりましたね。
scaleDownは元サイズをこえなければ、横300で比率を保ったままリサイズします。
2から3にアップデートするときのガイドもあるみたいですね。
https://image.intervention.io/v3/introduction/upgrade
今回は以上です!