ライブドアのsmalllightを使って動的に画像をリサイズしてみる « cat /dev/random > /dev/null &

最近、動的に画像をリサイズするのが流行っているようです。
ゆめみラボのmod_ktaiやクックパッドのmod_tofu、livedoorラボEDGEのsmall_lightなどいろいろありますが
今回small_lightを使ってみたので記事を書いてみます。
ついでに速いと噂のlibjpeg-turboも入れてみます。

smalllightとは

公式を見るのが一番早いとは思うので一度見てみてください。(→smalllight

僕がsmalllightで特にいいなぁと思ったのが4点です。
・Apacheモジュールで動く
・cropできる
・パラメータがわかりやすい、指定しやすいように考えられてる(と思う)
・公式のデザインが凄いわかりやすくていい

とりあえずインストールして使っていきましょう。

インストール環境

・CentOS5.3 (Xen上のVM)

インストール方法

まず必要な以下のRPMをインストールします。

httpd-devel (smalllightが依存)
ImageMagick-devel (smalllightが依存)
libid3tag (DAGのimlib2が依存)
freetype-devel (smalllightが依存)

最初にimlib2とlib-jpeg-turboをインストールします。

imlib2はEPELを有効にすれば入るのですが1.3.0と古かったので
僕はrpmfindで探して拾ってきました
imlib2-1.4.4-1.el5.rf.x86_64.rpm
imlib2-devel-1.4.4-1.el5.rf.x86_64.rpm

libjpeg-turboは公式にRPMパッケージがあります
libjpeg-turbo

とりあえず上記のRPMをインストールします

1 rpm -Uvh --nosignature imlib2-1.4.4-1.el5.rf.x86_64.rpm imlib2-devel-1.4.4-1.el5.rf.x86_64.rpm libjpeg-turbo-1.1.1.x86_64.rpm

次にlibjpeg-turboを使う設定をします。

念のため今使っているlibjpegの確認

1 [root@LIP-HAPP-01 temp]# ldd /usr/lib64/libMagick*|grep jpeg
2 libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002afbaa33f000)
3 libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002ba6264fb000)
4 libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002abe0f53d000)

exportしてもいいんですが面倒なのでld.so.conf.dにファイルを作ってldconfigします

1 echo /opt/libjpeg-turbo/lib64/ > /etc/ld.so.conf.d/libjpeg-turbo.conf
2 ldconfig

もう一度libMagick*が何を使っているか見てみましょう。

1 [root@LIP-HAPP-01 temp]# ldd /usr/lib64/libMagick*|grep jpeg
2 libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002ae10146c000)
3 libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002b2b3b765000)
4 libjpeg.so.62 => /opt/libjpeg-turbo/lib64/libjpeg.so.62 (0x00002b2f72355000)

libjpeg-turboになりました

smalllightのインストール

以下からダウンロードしてきます
smalllight

2 tar zxf mod_small_light-1.1.1.tar.gz
3 cd mod_small_light-1.1.1
4 ./configure --with-apxs=/usr/sbin/apxs
5 make
6 make install

インストールが終わったので早速使ってみましょう。
いろんな使い方はあると思いますが、今回はSmalllightはストレージとは別の場所にいれました。

以下の設定をApacheに入れてアクセスしてみます。

1 SetOutputFilter SMALL_LIGHT
2  
3 RewriteEngine on
4 RewriteRule ^/thumb_imlib2/(.*.jpg)$ /small_light(dw=70,dh=70,cw=70,ch=70,e=imlib2,info=1,of=jpeg,q=50)/$1 [P,L]
5 RewriteRule ^/thumb_imagick/(.*.jpg)$ /small_light(dw=70,dh=70,cw=70,ch=70,e=imagemagick,info=1,of=jpeg,q=50)/$1 [P,L]
6 RewriteRule ^/small_light[^/]*/(.+)$ http://192.168.1.199/$1 [P,L]
7 RewriteRule /(.+) http://192.168.1.199/$1 [P,L]

そして以下が実際にアクセスしてみた結果です

上手くサムネイルが出来ることが確認できました。

パラメータの詳しい指定についてはこちらを参照してください。

結構簡単に出来ていいんじゃないかと思います。
次の記事では、もうちょっと実際のケースに近い使い方について解説しようと思います。 
->[記事書きました]いろいろsmalllightを使って動的に画像をリサイズしてみる


素晴らしいモジュールを公開してくださってるライブドア様ありがとうございます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中