高速なPNG出力ライブラリ: ObjectPlanet PngEncoder
TopHatenarとHatenarMapsとEatSpotは、PNGエンコード処理がボトルネックという共通点があります(HatenarMapsの場合は、システム利用時のボトルネックではないですが)。
TopHatenarのブログパーツユーザが増えてきたこともあって、この3つのサービスで使っているjavax.imageio.ImageIOを、以下のライブラリで置き換えようと思っています。
OSSではないですが、無償で使えるPNG出力ライブラリです。サイトのベンチマーク結果にもあるように、javax.imageio.ImageIOに比べて数倍から10倍程度速いです。
使用法は以下。圧縮レベルもオプションで指定できます。
PngEncoder encoder = new PngEncoder();
encoder.encode(image, outputStream);
ちなみに、ImageIOを使った従来の出力方法は以下です。
ImageIO.write(image, "png", outputStream);