我在使用简单的绘画程序保存 BufferedImage 时遇到问题。当我保存绘画中的图像(例如我之前画的蛇的图片)时,它可以很好地保存图像,但它不会以您想象的方式保存它。它将图像保存到 Eclipse 工作区,而不是将图像保存到 C:\驱动器(或用户可能使用的任何驱动器)。这当然是 Not Acceptable ,因为这需要直接提供给用户的主要访问地点。这是用于保存缓冲图像的方法。
static void saveImage() {
try {
ImageIO.write(background, "png",
new File(fileName + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
所以在这里,background 显然是要保存的图像,png 是扩展名,fileName 是之前使用先前方法保存的字符串,这里并不重要。此方法将图像保存到 eclipse 工作区。这很糟糕。我们需要将其保存到默认驱动器。我该如何实现这个目标?如果您需要其他任何信息来帮助您回答问题,请告诉我。
编辑:因此,根据要求,这里是更改文件名的代码。它位于具有完全不同 UI 的不同类中,并且因为我不确定要发布多少内容,所以我将发布 actionListener 和 getName() 方法。这里发生的情况是,有一个 JTextField
,一旦按下 JButton
,就会从中提取字符串并将其用作 fileName
。代码如下:
`finishButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ProgramUI.fileName = getName();
ProgramUI.fileHasName = true;
ProgramUI.saveImage();
frame.dispose();
}
});
}
public String getName() {
return nameField.getText();
}
`
最佳答案
关于java - Saving BufferedImages 将图像保存到 Java Eclipse 工作区而不是保存到 C 盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005996/