ngx_small_light
TRANSCRIPT
ngx_small_light
Tatsuhiko [email protected]
ngx_small_light
● Nginxで画像変換を行うための拡張モジュール● mod_small_lightのNginx版
○ mod_small_light自体はlivedoor(現NHN Japan)が開発
○ http://code.google.com/p/smalllight/○ mod_small_lightをNginxに移植した、と言った方が正しい
設定の書き方
設定の書き方
どこかで見たことがあるような書き方ですよね
本家(mod_small_light)の設定
mod_small_lightとの主な違い
● 今のところImageMagickのみをサポート○ mod_small_lightはImlib2もサポートしている
● pパラメータを指定した時の挙動が若干異なる○ pパラメータ以外のパラメータは無視する
● infoパラメータを無視する○ リリース直前になって対応するの忘れてたことに気付く。。。
● ofを指定しない限りフォーマットは変換されない○ mod_small_lightは何も指定しないとJPEGに変換する
● あとは同じ・・・のはず○ パラメータのパーサや画像変換部分のコードは
mod_small_lightのコードをほぼ再利用している
ところで、Nginxには既に
標準の画像変換モジュールがある
HttpImageFilterModule
ところで、Nginxには既に
標準の画像変換モジュールがある
HttpImageFilterModule
略してImageFilter
ImageFilterでさっきと同じようなことをする
http://img-origin:80/resize/hoge.jpgでImageFilter適用!
ngx_small_lightの場合
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
俺は設定ファイルを書いていたと思ったらプログラムを書いていた
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
俺は設定ファイルを書いていたと思ったらプログラムを書いていた
な...何を言っているか(ry
mod_small_lightやngx_small_light
の設定ファイルがシンプルな理由
● パラメータの解析をモジュール側でやってる● 特定のパスにマッチしたらモジュールにそれを渡すだけ● 特定の変換パターンを定義してpパラメータで指定できる
○ mod_small_light■ SmallLightPatternDefine
○ ngx_small_light■ small_light_pattern_define
ソースコードはgithubにあります
https://github.com/cubicdaiya/ngx_small_light
ngx_small_lightの現状と今後
● まだ作ったばかりであまり詳細に検証できてない○ 現状experimentalレベルのプロダクトという認識
● ImageMagick以外もサポートしたい○ Imlib2とかGDとか
● mod_small_lightをpixiv用に改造する際に作った新規パラメータとか取り込みたい
● ドキュメントを書こう!