フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

LaravelでIntervention Imageを利用して画像を加工する

はじめに

  • Intervention Imageを利用して画像を加工する。Intervention Imageは、オープンソースPHP画像処理および操作ライブラリです。 これは、画像を作成、編集、および作成するためのより簡単で表現力豊かな方法を提供し、現在2つの最も一般的な画像処理ライブラリである GDLibraryとImagickをサポートしています。

インストール

$ composer require intervention/image

intervention/imageを利用するための設定

  • config/app.phpファイルに下記の記述を追記する
'providers' => [
    Intervention\Image\ImageServiceProvider::class,
],


'aliases' => [
    'Image' => Intervention\Image\Facades\Image::class,
],
  • 設定ファイルを変更したので一度キャッシュをクリアする
php artisan config:clear

コード

  • 下記のサンプルは画像をリサイズして透かし画像を合成する
        use Intervention\Image\Facades\Image;

        // 加工する画像のパスを指定する
        $img = Image::make('public/img/example.jpg');

         // 指定する画像をリサイズする
        $img->resize(320, 240);

  // 加工する画像の上に指定した画像を重ねる。
        $img->insert('public/img/example2.jpg');

   // 上記の2つの加工処理をした画像をファイル名を指定して保存する
        $img->save('/public/img/hoge.jpg');      
  • テキストを画像に加工する場合のサンプル。日本語は文字化けするので、何かしらの対応が必要そうです。
        $img = Image::make('/srv/www/winlogic/public/img/example.jpg');

        // write text
        $img->text('ABCDEFG');
        
        // write text at position
        $img->text('ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG.', 120, 100);
        
        // use callback to define details
        $img->text('foo', 0, 0, function($font) {
            $font->size(24);
            $font->color('#fdf6e3');
            $font->align('center');
            $font->valign('top');
            $font->angle(45);
        });
        
        // draw transparent text
        $img->text('foo', 0, 0, function($font) {
            $font->color(array(255, 255, 255, 0.5));
        });

        $img->save('/srv/www/winlogic/public/img/bar2.jpg');