livedoor labs EDGE

Livin' on the Edge

画像サムネイル作成モジュール「SMALL LIGHT」 公開のお知らせ

こんにちは、EDGE担当の櫛井です。

社外勉強会などで発表しておりました
「画像のサムネイルを動的生成できるApacheモジュール」
をGoogleCode上で公開いたしました。名前は SMALL LIGHT といいます。
small


一般的にwebサービス側で画像の処理を行う際は、画像がアップロードされたときに
非同期に裏側で何種類かのサムネイル処理をしておくなど「事前に」生成しておくことが
多いのですが、SMALL LIGHTを導入すれば事前に「どのようなサイズのサムネイルを生成するか」
をURL内に記述しておくことで、そのURLにアクセスされた時点で指定のサイズに変換された
画像を表示することが出来るようになります。画像容量でお悩みの方は是非ご利用ください。


また、あまり必要じゃないかも知れませんが画像にエフェクトをかける機能もつけておきました。
・枠をつける
・ぼかす
・くっきりさせる
・切り抜く
といったことが出来ますので、思い出したらたまに使ってみてください。


SMALL LIGHTの説明はこれ以上いらないと思いますが、よかれと思って
告知用ページも作ってみたのでご覧ください。無料です。
SMALL LIGHT 〜かんたん画像サムネイル作成モジュール〜


SMALL LIGHTのソースコードはこちらから入手できます。
Small Light - Project Hosting on Google Code



今後ともライブドアサービスを宜しくお願いいたします。

 コメント一覧 (12)

    • 1. n/a
    • 2011年01月12日 11:17
    • ども、いつも便利に使わせてもらってます。

      効果にAmazonにあるような影を付ける機能があれば便利なんじゃないかと思ったりもします。
    • 2. 厳
    • 2011年01月30日 00:32
    • 一つ質問があります、
      imlib2, Wandがなければ、SmallLightがインストールできますが、正常に画像が処理できないようと思っていますか?
    • 4. ubuntu11.10 user
    • 2012年03月29日 06:54
    • 3 ubuntu11.10 で

      御社公式の
      http://code.google.com/p/smalllight/wiki/Install
      の説明とおり、インストールしました。
      configure、make、make installともに特にエラーはありませんでした。

      /etc/apache2/sites-available/mydomain.jp
      ファイル内の
      <VirtualHost xxx.xxx.xxx.xxx:80>ディレクティブ内に、
      RewriteEngine on
      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]
      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]
      RewriteRule ^/small_light[^/]*/(.+)$ http://www.mydomain.jp/$1 [P,L]
      RewriteRule /(.+) http://www.mydomain.jp/$1 [P,L]
      <LocationMatch ^/small_light[^/]*/>
      SetOutputFilter SMALL_LIGHT
      </LocationMatch>

      を追加して、apache2を再起動して、
      動作試験しましたが、動いてくれませんでした。

      ※上記mydomain.jpは便宜上の架空ドメインです。実際は実在ドメインで試しました。

      /var/log/apache2/access.log
      /var/log/apache2/error.log
      /var/log/syslog
      をみましたが、とくに関係ありそうなエラーは出力されていませんでした。

      何が原因かどうかお助けください。
      宜しくお願いいたします。
    • 5. ubuntu11.10 user
    • 2012年03月29日 07:01
    • 補足です。
      インストール時の
      apt-get install apache2-prefork-dev libimlib2-dev libmagickwand-dev

      a2enmod rewrite proxy proxy_http
      は行いました。

    • 6. ubuntu11.10 user
    • 2012年03月29日 07:06
    • 更に補足です。

      /usr/sbin/apxs
      /usr/bin/apxs
      もなく、
      /usr/bin/apxs2
      があったため、

      ./configure --with-apxs=/usr/bin/apxs2 \
      --with-imlib2-config=/usr/bin/imlib2-config \
      --with-Wand-config=/usr/bin/Wand-config
      このように実行していました。
      特にエラーなしでした。

      なお、
      apt-get install apxs
      をしてみましたが、
      E: パッケージ apxs が見つかりません
      となるばかりでしたので、上記のとおりでインストールを行いました。

      apxs でなく apxs2 にしたことが原因なのでしょうか?

      そもそも、ubuntu11.10は対応しておりますでしょうか?是非対応してほしいのですが。。
    • 7. ubuntu11.10 user
    • 2012年03月29日 07:09
    • 要するに、現在
      例えば、

      http://www.mydomain.jp/hoge.jpg
      を、
      http://www.mydomain.jp/small_light(dw=70,dh=70,cw=70,ch=70,e=imlib2,info=1,of=jpeg,q=50)/hoge.jpg
      として、404エラーとなります。

      "GET /small_light(dw=70,dh=70,cw=70,ch=70,e=imlib2,info=1,of=jpeg,q=50)/hoge.jpg HTTP/1.1" 404 563 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0"

      です。
    • 8. 櫛井
    • 2012年03月29日 12:33
    • ubuntu11.10 user さん

      担当の櫛井です。

      画像があるサーバーと画像変換サーバーが同じ場合は、
      SmallLightのインストールドキュメントの「通常利用の例」を参考に、
      下記の設定ではいかかでしょうか。

      通常利用の例: http://code.google.com/p/smalllight/wiki/Install#%E9%80%9A%E5%B8%B8%E4%BD%BF%E7%94%A8%E3%81%AE%E4%BE%8B

      Ubuntu 11.10 にて確認しました。

      ビルドの準備:
      # sudo apt-get install apache2-prefork-dev libimlib2-dev
      # sudo a2enmod rewrite proxy proxy_http
      # wget http://smalllight.googlecode.com/files/mod_small_light-1.1.1.tar.gz
      # tar xzvf mod_small_light-1.1.1.tar.gz
      # cd mod_small_light-1.1.1/
      # ./configure --with-apxs=/usr/bin/apxs2 --with-imlib2-config=/usr/bin/imlib2-config --without-Wand
      # sudo make install

      ・apxs2やimlib2のパスはUbuntu 11.10の環境に合わせてあります
      ・今回はImageMagickは省略しています

      Apache2のコンフィグ変更:
      /etc/apache2/sites-available/default 内の最下部の </VirtualHost> の上に下記を追加しただけです。

      RewriteEngine on
      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]
      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]
      RewriteRule ^/small_light[^/]*/(.+)$ /$1 [P,L]
      <LocationMatch ^/small_light[^/]*/>
      SetOutputFilter SMALL_LIGHT
      </LocationMatch>

      動作テスト:
      /var/www に test.jpg ファイルを配置して、ブラウザーにて。
      http://localhost/test.jpg
      http://localhost/thumb_imlib2/test.jpg

      以上をご確認ください。
    • 9. ubuntu11.10 user
    • 2012年03月29日 13:34
    • 櫛井 様
      早速ありがとうございました。
      動作しました。

      ちなみに 櫛井様ご説明の箇所で
      # sudo make
      # sudo make install
      が正しいかと思います。

      昨夜との違いは、
      --with-Wand-config=/usr/bin/Wand-config

      --without-Wandとした。

      で、どうも、ご説明の
      RewriteRule ^/small_light[^/]*/(.+)$ /$1 [P,L]
      とするところを、
      昨夜は
      RewriteRule ^/small_light[^/]*/(.+)$ http://www.mydomain.jp/$1 [P,L]
      RewriteRule /(.+) http://www.mydomain.jp/$1 [P,L]
      としていましたが、こうするとやはり動作しませんでしたので、これが直接の原因でしょうかね。

      ありがとうございました。
    • 10. ubuntu11.10 user
    • 2012年03月29日 13:38
    • 3 新たに、ご質問です。

      アクセスのたびに、リサイズ処理が行われるということですよね?
      初回リサイズして、2回目以降はキャッシュの画像(リサイズ済)から表示するような仕組みは、small_lightと何かで実現方法はありますでしょうか?
    • 11. ubuntu11.10 user
    • 2012年03月29日 13:44
    • リサイズの速度は、オリジナル画像表示と比べて、どの程度 オーバーヘッドがあるものでしょうか?
    • 12. ubuntu11.10 user
    • 2012年03月29日 14:09
    • # xxxxx_width_height.jpg指定
      RewriteRule ^/([a-zA-Z0-9_]*)_([0-9]{1,4})_([0-9]{1,4}).jpg$ /small_light(dw=$2,dh=$3,cw=$2,ch=$3,e=imlib2,info=1,of=jpeg,q=75)/$1.jpg [P,L]

      としました。
    • 13. 櫛井
    • 2012年03月29日 14:24
    • 櫛井です。

      このモジュールで可能なことはドキュメントに書いてあるかと
      思いますのでそちらをお読みください。また、利用環境により速度
      などは変化しますので、実際にお試しいただければと思います。

コメントする

名前
 
  絵文字
 
 
Archives