epeg はちょっとクオリティ低いな
いやなブログ: Epeg で JPEG ファイルのサムネイルを高速に生成する
は以前から気にはなっていたんだけど、今回実際に FreeBSD に入れて、自宅サーバに入れている Singapore がもっと早くならないか試してみた。
epeg は C のライブラリで、PHP のバインディングは存在しない。しかし epeg コマンドが存在するので もともと外部コマンドを呼び出してサムネイルを作っていた Singapore では利用しやすかった。1
やることは thumb.php の中で $imagetype が 2 のときに imagemagick の convert コマンドではなく epeg コマンドを呼び出すようにするだけ。
はえぇぇ。
超はえぇぇ。
正直、C3 1GHz のサーバの性能そのものに限界を感じていたんだけど、まだまだ十分いけんじゃんと思わせるに十分な速度だ。
……。
あれ?
なんか画像が汚いなぁ。
あー。
分かった。本当にサムネイル向けなんだ、これ。ここで自分の環境を整理してみる。
- 手元の Singapore では 40*40, 120*120, 160*160, 700*600 の各サイズの画像を生成している
- 700*600 は閲覧用。それ以外はナビゲーション用。
- 汚いと感じたのは 700*600
要するに、epeg の縮小画像の生成はすごい速いけど、よく見るとアラが目につくレベルなわけだ。仕方がないので、700*600 の縮小画像を生成するときは epeg ではなく、従来通り ImageMagick を使うように設定した。
ちなみにリンク先の記事では ImageMagick に size オプションをつけるとかなり性能が向上するように書かれているが、手元の環境では size オプションをつけても思ったようには速くならなかった2。少なくともその状態でも epeg とは圧倒的な差があった。
そうすっとあれだな。ユーザーのアクションに追随しなければいけないような速度を要求されるサムネイルの作成(例えばアップロード済み写真の確認とか)には epeg を、くり返して「観る」ための画像の作成には ImageMagick をバックグラウンドで、と使い分けると気持ちいいアプリになるのかもしんない。