How do I use java to capture selected screens from other applications?
We are trying to develop a screen capture utility
How do we use java to capture the selected screen of another application? How do we add annotations to the captured screen?
Solution
Based on prajakta's description of the project, I believe some explanations for manipulating screenshots are orderly (I think John made a good explanation how to capture the screen shot using the java.awt.robot class) Remember, as Steve McLeod said, Java may not automatically find the location of the window to be captured on the screen This is important because the robot class needs to know this location automatically or manually from you
When you call the CreateGraphics () method of bufferedimage in the screenshot, you can add labels, text, images, etc. to the screenshot through the graphics2d object you receive I strongly recommend that you check the graphics2d's API to better understand this feature I also suggest finding some tutorials, perhaps starting with the 2D graphics tutorial from sun The book "filthy rich clients" may also be useful
When you finally want to save this modified screenshot, you can use one of the "write" methods of the imageio class
This is a very simple example from beginning to end You can fill in the necessary details
I hope this helps!
Robot robot = new Robot(); // The hard part is kNowing WHERE to capture the screen shot from BufferedImage screenShot = robot.createScreenCapture(x,y,width,height); Graphics2D graphics = screenShot.createGraphics(); // Add a label to the screen shot Color textColor = Color.RED; graphics.setColor(textColor); graphics.drawString("Some text",textX,textY); // Save your screen shot with its label ImageIO.save(screenShot,"png",new File("myScreenShot.png"));