PHPの画像加工ライブラリIntervention ImageをCakePHPで利用する
インストール
Intervention ImageをCakePHP2.5.5で利用します。
Installationでインストールガイドを確認することが出来ます。本記事では、Windows環境のXAMPP1.8.3(PHP5.5.15)の構成でIntervention Imageを利用しました。
composerでインストールすることが出来るので、CakePHPのルートディレクトリに配置されている
composer.json
を開いて、requireの部分にIntervention Imageを追記します。
"require": { "php": ">=5.2.8", "ext-mcrypt": "*", "intervention/image": "2.x" },
追記したら、コマンドプロンプトで
composer update
を実行してインストール完了です。
composerをインストールしていない場合は、Composer-Setup.exeをダウンロードしてインストールします(Windows環境の場合)。
composer updateを実行すると、CakePHPのルート配下にvendorディレクトリが作成されます。
CakePHPでIntervention Imageをロードする
include_pathの追加
include_pathを追加しておきます。
app/config/bootstrap.php
の最後に以下のコードを追加します。
$path = 'C:\xampp\htdocs\vhost\cakephp2.5.5;'; set_include_path(get_include_path().PATH_SEPARATOR.$path);
上のコードの場合は、cakephp2.5.5ディレクトリがCakePHPのルートディレクトリの場合の設定になります。
requireとuse
コントローラでライブラリをrequireします。
require 'vendor/autoload.php'; use Intervention\Image\ImageManager; class PagesController extends AppController { }
画像の加工
インストールガイドのUsageを参考に画像のリサイズと保存を試してみます。
$manager = new ImageManager(array('driver' => 'gd')); $image = $manager->make('img/cake.power.gif')->resize(60, null)->save('img/cake.power-new.gif');
CakePHPのロゴ画像(cake.power.gif)を加工して保存したのが上のコードです。
resizeのAPIは以下のページで利用方法を調べることが出来ます。
その他のAPIも公式サイトのドキュメントで調べることが出来ます。