为图像添加时间

时间:2015-04-07 23:39:23

标签: java image time screenshot

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

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);

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

如果有人知道如何让代码创建文件"截图 - 小时:分钟:秒" 并且愿意分享,这将是非常受欢迎的

(如果你能告诉我为什么我会收到这个错误,那么它也会非常有帮助)

如果您需要,请使用我的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"所以,我不知道为什么它告诉我当我试图把时间包括在内时,因为没有它就可以正常工作

1 个答案:

答案 0 :(得分:0)

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

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