というのがあるのだそうな。ImageMagickから派生したもので一部の処理はむっちゃ速くなってたりするとかしないとか。portsにもありましたので、とりあえずおうちサーバーに入れてみるの巻。
うちのサーバの画像処理は何も難しいことはしていなくて、ウィンドウサイズに合わせて大きい画像を縮小しているだけです。実コードではある程度小さくした画像からさらに縮小して表示サイズを作成しているわけですが、今回は試験のために大きいデータ(D90で撮影したJPEGそのまま)から800x600のJPEGデータに縮小する時間を測定してみました。
(1) GraphicsMagick% time gm convert -resize 800x600 hoge_fs.jpg hoge.jpg(2) ImageMagick
2.482u 0.082s 0:02.57 99.6% 10+1525k 0+0io 0pf+0w
% time convert -resize 800x600 hoge_fs.jpg hoge.jpg
2.319u 0.111s 0:02.78 87.0% 10+1529k 0+0io 486pf+0w
ん? あんまり変わりませんな。portsのオプションで `Use 8-bit pixels (speed) instead of 16 (quality)' というのがありましたので、これをyes にして再度測定。
(3) GraphicsMagick(8bit)% time gm convert -resize 800x600 hoge_fs.jpg hoge.jpg
2.323u 0.037s 0:02.37 99.1% 10+1529k 0+0io 337pf+0w
これもたいして変わらず。GraphicsMagickは渦巻きとか視覚効果の高い処理が出来るそうなのですが、縮小処理自体は ImageMagick と同じなのかもしれませんね。
ちなみに、 netpbm ではこんな感じ。
% time sh -c " jpegtopnm hoge_fs.jpg | pnmscale -xysize 800 600 | pnmtojpeg > hoge.jpg "
jpegtopnm: WRITING PPM FILE
1.540u 0.068s 0:00.85 188.2% 23+1504k 0+0io 0pf+0w
何も考えないのが一番速かったという・・・