いくつかのjava.awt.Imageオブジェクトをディスクに保存したいと思います。しかし、私が次のようにしようとすると:
for (Image image : images) {
image = new ImageIcon(image).getImage();
BufferedImage temp = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g = temp.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
File tempFile = null;
try {
tempFile = File.createTempFile("img", ".jpg");
ImageIO.write(temp, "jpg", tempFile);
} catch (IOException ex) {
ex.printStackTrace();
}
files.add(tempFile);
}
Javaヒープスペースエラーが発生します。
私は置く必要がありました
image = new ImageIcon(image).getImage();
image.getwidth(null)とimage.getHeight(null)が有効な結果を返すように、すべてのピクセルをロードします。
ヒープサイズを増やす以外に、これを行う他の方法はありますか?