gpt4 book ai didi

Java:为机器人屏幕截图生成随机文件名

转载 作者:行者123 更新时间:2023-12-02 03:37:27 27 4
gpt4 key购买 nike

目前,我正在尝试使用机器人功能创建屏幕截图。现在我已经可以使用按钮进行屏幕截图并将其保存为图像形式。现在我想做同样的事情,但我想生成不同的文件名,例如截图1.png,截图2.png。我可以知道如何使用 for 循环随机生成数字吗?

这是我当前的 Java 工作代码:

private void jbtnCaptureActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
Robot ro = new Robot();
BufferedImage capture = ro.createScreenCapture(screenRect);
File f;
f = new File("myimage1.jpg");
ImageIO.write(capture, "jpg", f);
System.out.println("Success");



} catch (Exception e){
System.out.println("Unable to capture the screen" + e);
}

}

有人可以帮我解决这个问题吗?提前致谢。

最佳答案

我猜每个屏幕捕获都是通过某种按钮右键单击触发的(而不是循环中的多个捕获)?

最直接的方法是保留一个整数作为文件名的运行序列:

private void jbtnCaptureActionPerformed(java.awt.event.ActionEvent evt) {
.....
File f = new File("myimage" + (this.filenameSeq++) + .jpg");
......
}
<小时/>

而且,如果您的捕获不是非常频繁地生成(例如每秒数百个文件),您可以采取另一种方法来避免保持运行序列。您可以根据当前时间生成文件名,并检查文件是否存在。如果存在,则继续附加序列号,直到发现文件不存在。在伪代码中:

String filenameBase = "myImage";
String currentTimestamp = new SimpleDateFormat("yyyymmddHHMMss").format(now());
File f = new File(filenameBase + currentTimestamp + ".png");
for (int i = 0; f.exists(); i++) {
f = new File(filenameBase + currentTimestamp + "-" + i + ".png");
}
// so here, you will have a filename which is not yet exists in your filessystem

关于Java:为机器人屏幕截图生成随机文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266372/

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