我想将一些 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) 返回有效结果。
除了增加堆大小之外,还有其他方法可以做到这一点吗?