[0033]intervention/imageを利用して自動画像加工

■construct

Lalavel10 PHP 8.2.9で動作確認済

まず、ssh接続し、composerでintervention/imageをインストールします。

              
#intervention/imageをインストール
% composer require intervention/image
    			
            

3.2バージョンが入りました。これで準備は完了です!

色んなことができますが、今回はサーバに配置しているバラバラのサイズの画像を元に、500×500cmにサイズ変更します。変更時に比率は変えずに余白を白で埋めます。

既存の画像は変更(上書き)せずに、違うディレクトに同ファイル名で保存するようにしました。

XXXXController.php

              
<?php
namespace App\Http\Controllers;
//Useが必ず必要!
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
class XXXXController extends Controller
{
	public function index(){
		$img = "sample.png";
		$image_to = "/inte_uploads/".$img;
        if (!file_exists($image_to)) {
            //存在しない場合は作成する
            $manager = new ImageManager(new Driver());
            $image_from = "/uploads/".$img;
            $image = $manager->read($image_from);
            $image->pad(500, 500,'fff');
            $image->toPng()->save($image_to);
        }
	}
}
    			
            

このサンプルでは、/inte_uploads/sample.png が存在しない場合に、/uploads/sample.png の画像を加工し、 /inte_uploads/sample.pngに新規保存しています。

便利ですね!!