Linux:如何使用ImageIO.write()保存图像?

时间:2013-05-19 22:25:48

标签: java linux javax.imageio

我正在使用Java在Linux上编写一个屏幕捕获程序。我如何使用ImageIO.write()就像我在Windows上使用它一样:

ImageIO.write(screenshot, "png", new File("c:/output.png"));

2 个答案:

答案 0 :(得分:2)

在Linux上没有“C:\”驱动器。相反,您的驱动器安装在安装点(通常为/)。您可以使用以下任一方法写入您的主目录(相当于Win7的C:\Users\yourusername\):

ImageIO.write(screenshot, "png", new File("/home/yourusername/output.png"));
ImageIO.write(screenshot, "png", new File("~/output.png"));

或临时文件夹(如果您有权限):

ImageIO.write(screenshot, "png", new File("/tmp/output.png"));

您也可以使用简单的方法写入当前目录:

ImageIO.write(screenshot, "png", new File("output.png"));

要查找驱动器的安装点,请在终端中运行df -h以查看所有已安装的驱动器。

答案 1 :(得分:1)

如果您正在编写屏幕截图程序,那么您可能希望使用FileChooser来允许用户选择输出文件的位置。

以下是一个如何实现一个的简单示例:

JFileChooser jfc = new JFileChooser();
int returnVal = jfc.showSaveDialog();

if(returnVal == JFileChooser.APPROVE_OPTION) {
    File outputFile = jfc.getSelectedFile();
    ImageIO.write(screenshot, "png", outputFile);
}

这也有助于使您的代码完全跨平台,而不是将特定于平台的路径硬编码到程序中。