有关如何在截取屏幕截图时执行某些操作的问题

时间:2013-10-29 03:34:49

标签: java input border screenshot

所以在我的java项目中,我为截图功能制作了一些代码

现在这是我制作的代码

public void takeScreenshot() {
        try {
            Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow();
            Point point = window.getLocationOnScreen();
            int x = (int)point.getX();
            int y = (int)point.getY();
            int w = window.getWidth();
            int h = window.getHeight();
            Robot robot = new Robot(window.getGraphicsConfiguration().getDevice());
            Rectangle captureSize = new Rectangle(x, y, w, h);
            java.awt.image.BufferedImage bufferedimage = robot.createScreenCapture(captureSize);
            int picNumber = random(100);
            String fileExtension = "The Iron Door";
            File file = new File((new StringBuilder()).append(SignLink.getCacheDirectory() + "Screenshots/" + fileExtension + " ").append(picNumber).append(".png").toString());
            ImageIO.write(bufferedimage, "png", file);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

现在代码工作正常我已将其设置为对热键执行操作现在我有两个问题

1)我如何在它周围添加一些由我预先制作的边框,当用户截取屏幕截图时,它会在图像上添加边框

2)我如何制作它以便用户可以输入他们想要的屏幕截图名称

1 个答案:

答案 0 :(得分:3)

  

如何制作,以便用户可以输入他们想要的屏幕截图名称

查看JFileChooser

  

我如何在它周围添加一些预先制作的边框   我和当用户截取屏幕截图时,它将边框放在屏幕上   图像

这涉及更多一点,取决于你想要达到的目标。

首先创建一个新的BufferedImage,其大小与添加了边框大小的屏幕截图相同......

 BufferedImage img = new BufferedImage(bufferedimage.getWidth() + borderSize, bufferedimage.getWidth() + borderSize, BufferedImage.TYPE_INT_RGB);

从新Graphics ...

获取BufferedImage个背景信息
Graphics2D g2d = img.createGraphics();

将屏幕截图绘制为...

g2d.drawImage(bufferedimage, borderSize / 2, borderSize / 2, null);

绘制边框并处理图形上下文

g2d.dispose();

根据您想要实现的目标,您可以先绘制边框并再次绘制图像,但这取决于您