高速なPNG出力ライブラリ: ObjectPlanet PngEncoder

TopHatenarHatenarMapsとEatSpotは、PNGエンコード処理がボトルネックという共通点があります(HatenarMapsの場合は、システム利用時のボトルネックではないですが)。

TopHatenarブログパーツユーザが増えてきたこともあって、この3つのサービスで使っているjavax.imageio.ImageIOを、以下のライブラリで置き換えようと思っています。

ObjectPlanet PngEncoder

OSSではないですが、無償で使えるPNG出力ライブラリです。サイトのベンチマーク結果にもあるように、javax.imageio.ImageIOに比べて数倍から10倍程度速いです。

使用法は以下。圧縮レベルもオプションで指定できます。

PngEncoder encoder = new PngEncoder();
encoder.encode(image, outputStream);

ちなみに、ImageIOを使った従来の出力方法は以下です。

ImageIO.write(image, "png", outputStream);