遅れましたが..あけましておめでとうございます!2015年は Laravelで画像処理。からということで。
2015.01.08
この記事は最終更新日から1年以上が経過しています。
あけましておめでとうございます!!
新年早々、風邪をひいてしまい体調が悪いまま2015年は始まってしまいました。
おかげ様で色々とくたばっておりました。。。><
新年1発目は何を書こうと考えたところ2014年流行ったLaravelについてちらっと。
Laravel
こちらでまとめられているように、
http://qiita.com/shukotang/items/055058b33b553b48c164
2014年PHPフレームワークに1位になったLaravel。
日本人が好みそうなフレームワークといわれているよう、使いやすさが特徴だったりします。
去年はちょこちょこと扱っていたのですが、
普段、サーバーサイドの作業を行わない私でもサクサクと作成できてしまう程のお手軽さです。
Eloquent ORMだったり、RESTfulリソースコントローラーだったり、マイグレーションだったりと便利な機能がそろっているのですが、今回はこれは入れといた方が良いとされるライブラリを。
画像処理を便利に Intervention Image
Intervention Image
Intervention Imageは画像処理を便利にしてくれるライブラリです。
上記の公式サイトにも記載されていますが、インストールはcomposerでサクッとインストールできます。
composer require intervention/image
インストール完了しましたら、セットアップで以下を追加。
app/config/app.php
(124行目辺り providersに追加)
'Intervention\Image\ImageServiceProvider',
(190行目辺りaliases に追加)
'Image' => 'Intervention\Image\Facades\Image',
とセットアップは完了です。
あと、artisanコマンドで設定ファイルが作成できますので、
app/config/app.php
php artisan config:publish intervention/image
ドライバを変更したい際とかにはこちらを変更していただければと。
(使用にはGDライブラリもしくは Imagick PHP extensionが必要となってきます)
(後半に、GDドライバでハマった事例を書いてますので、エラーで上手くいかなかったりする方は参考にしていただければと。)
使い方
使い方としては、
$image = Image::make('public/foo.jpg')->resize(300, 200);<br /><br />return $image -> response('jpg');
こんな感じで、画像取得してリサイズがサクッとできるのです><
webからurlを引っ張ってきて
$image = Image::make(file_get_contents($url))->resize(300, 200);
もちろん、リサイズだけではなく、
$image->crop(200, 200);
クロップしたりも可能です。
デフォルトは中心となりますが、このように左上から設定も可能となっております。
$image->crop(200, 200, 0, 0);
web上から取得して保存したい場合などもメソッドチェーンでサクッと行えます。
Image::make(file_get_contents($url))->crop(200, 200)->save('/image/sample.jpg');
opacityの変更も
Image::make('public/foo.jpg')->opacity(50);
blur効果も
$img->blur(15);
と、画像処理を便利にするライブラリなので、インストールされた際は入れておいて損はないかと思います。
GDライブラリ
Intervention Imageを利用するにはGDライブラリもしくは Imagick PHP extensionが必要となってきます。
GDライブラリの確認はコマンドラインで
php -m
でモジュールの一覧が表示されますのでそちらで確認するか、phpinfoでgdが表示してenabledになっていれば使用できます。
GDモジュールの有効化はphp.iniの
;extension=php_gd2.dll
のコメントを解除で有効化。
extension=php_gd2.dll
(apacheの再起動も忘れずに)
そもそも私のcentosにははいっていなかったのでyumでサクッとインストールしようとしたところ、
grepで検索。
yum list | grep php-gd
yum -y install php-gd
インストールが上手くいかず。。。
こちらを参考に
http://qiita.com/wakaba260/items/9b06c4d64239a2b0bd48
gd-lastをremiからインストールすることで上手くいきました><
sudo yum -y install --enablerepo=remi gd-last
sudo yum -y install --enablerepo=remi-php55 php-gd
いやぁ助かりました。
そんな感じで今年もよろしくお願いいたします mm