为图像添加时间

Adding Time to an Image

我正在尝试使用以下代码截取屏幕截图

public void TakeScreenShot() {
    String ScreenPrefix = "Screenshot-";
    String Time = getTime();
        try {
            File ScreenName = new File(ScreenPrefix+Time+".png");
                BufferedImage image = new Robot().createScreenCapture(new Rectangle(getGameScreen()));
                ImageIO.write(image, "PNG", new File(System.getProperty("user.home") + "\Desktop\ScreenShots\"+ScreenName));
                JOptionPane.showMessageDialog(null, ScreenName+".png has been saved to your desktop", "Console", JOptionPane.PLAIN_MESSAGE);
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
}

如果我使用 getTime();方法我得到以下错误:

java.io.FileNotFoundException: C:\Users\Evan\Desktop\ScreenShots\Screenshot-19:30:14 (The filename, directory name, or volume label syntax is incorrect)

但如果我改变

File ScreenName = new File(ScreenPrefix+Time);

File ScreenName = new File(ScreenPrefix);

它工作得很好,只是不包括截图的时间。

如果有人知道如何使代码创建文件"Screenshot-Hour:Minute:Seconds" 并愿意分享,将不胜感激

(如果你能告诉我为什么会出现这个错误,那也会很有帮助)

如果您需要,这是我的 getTime() 方法:

public static String GetTime() {
    Calendar cal = Calendar.getInstance();
    cal.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    return sdf.format(cal.getTime());
}

我也有路径 "C:\Users\Evan\Desktop\Screenshots",所以我不知道为什么当我尝试包括时间时它告诉我我没有,因为没有它它也能正常工作

您需要编辑正在保存的文件的名称,使其不包含特殊字符。

该错误表明您尝试创建的文件无效。