2013-08-02 38 views
0

我想在java中拍攝桌面屏幕的快照。 我該如何做到這一點。如何在java中捕獲桌面屏幕的圖像?

這與在ms-paint, 中按下打印屏幕和粘貼數據類似,然後以.png或.jpg格式保存文件。

+0

http://stackoverflow.com/questions/2912007/java-how-to-take-a-screenshot-fast – assylias

回答

4

像這樣:

Robot r = new Robot(); 
Toolkit t = Toolkit.getDefaultToolkit(); 
Dimension d = t.getScreenSize(); 
Image i = r.createScreenCapture(0, 0, d.width, d.height); 
+0

'r.createScreenCapture(新的Rectangle(0,0,爲d.width,d .height));' – Azad

+0

你是對的;) – fmgp

1

GraphicsEnvironment.getLocalGraphicsEnvironment();

GraphicsConfiguration cg // get your screen configuration from above 
Rectangle rect = cg.getBounds(); 
final BufferedImage image; 
image = new Robot().createScreenCapture(rect); 
file = new File(yourFilePath); 
String extension = "png" // or any other image extension. 
ImageIO.write(bufferedImage, extension, file); 
0

讓你的屏幕細節試試這個:

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
GraphicsDevice screen = env.getDefaultScreenDevice(); 
robot = new Robot(screen); 
Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
BufferedImage img = robot.createScreenCapture(new Rectangle(0,0,d.width,d.height)); 
0
Robot robot = new Robot(); 
String format = "jpg"; 
String fileName = "D://FullScreenshot." + format; 
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
BufferedImage screenFullImage = robot.createScreenCapture(screenRect); 
ImageIO.write(screenFullImage, format, new File(fileName));