gpt4 book ai didi

java - ImageIO不保存截图

转载 作者:行者123 更新时间:2023-12-02 12:23:34 31 4
gpt4 key购买 nike

我正在尝试获取桌面的屏幕截图并将其保存在特定文件夹中,为此,我编写了以下方法:

class Test(){
public static String screenshot(String outDir){
try {
Robot robot = new Robot();
String format = ".png";
String fileName = String.valueOf(System.currentTimeMillis()) + format;
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
ImageIO.write(screenFullImage, format, new File(outDir + fileName));
System.out.println("Success");
return outDir + fileName;
} catch (AWTException | IOException e) {
e.printStackTrace();
}

return null;
}
}

我计划使用这样的代码:

Test.screenshot("C:\\temp\\");

所以神奇的是它不会将屏幕截图文件写入特定文件夹中,但如果我删除文件扩展名并显式硬编码文件名,它就会写入结果。

但是,这段代码可以工作:

public static String screenshot(){
try {
Robot robot = new Robot();
String format = "jpg";
String fileName = "XXX." + format;
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
ImageIO.write(screenFullImage, format, new File("C:\\temp\\" + fileName));
System.out.println("Success");
return outDir + fileName;
} catch (AWTException | IOException e) {
e.printStackTrace();
}

return null;
}

我在这里做错了什么?

最佳答案

我看到了javadoc 。问题是关于 formatName 的,正如文档所说:formatName - 包含格式的非正式名称的字符串。 => 意味着您的格式应该只包含名称,而不包含名称点 (.)。这就是您的硬编码运行的原因,因为您的硬编码使用了正确的 formatName

关于java - ImageIO不保存截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601579/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com