[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に新規保存しています。
便利ですね!!