私は JPG 画像ファイルを持っています。これを BufferedImage にロードし、後で BufferedImage を JPG ファイルに書き戻します。これが私が現在行っていることです。
品質を落とさず、読み取り/書き込みを高速化するより良い方法はありますか?
読んだ:
BufferedImage image = ImageIO.read(new File(storagePath + fileName + extension));
書く:
BufferedImage image = // some jpg image
Iterator iter = ImageIO.getImageWritersByFormatName("JPG");
if (iter.hasNext()) {
ImageWriter writer = (ImageWriter) iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(quality);
File outFile = new File(storagePath + fileName + extension);
FileImageOutputStream output = new FileImageOutputStream(outFile);
writer.setOutput(output);
IIOImage iioImage = new IIOImage(image, null, null);
writer.write(null, iioImage, iwp);
}