最近、私が使用していた ImageIO ライブラリがイメージをバイト配列/ストリームに非常にゆっくりと書き込んでいたことを発見しました。
BufferedImage img;//initialized elsewhere
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img,"png",baos);
に
BufferedImage img;//initialized elsewhere
byte[] argb = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
この 2 番目の方法はほぼ 70 倍高速ですが、この argb バイト配列から BufferedImage を簡単に再作成する方法が見つかりません。