有沒(méi)有辦法使用Java截圖并將其保存到某種圖像中?正如標(biāo)題中所說(shuō)的那樣,您可以只使用Java命令來(lái)獲取屏幕快照并保存它嗎?或者,我是否需要使用一個(gè)操作系統(tǒng)特定的程序來(lái)獲取屏幕截圖,然后從剪貼板上抓取它呢?
3 回答

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
java.awt.Robot
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());BufferedImage capture = new Robot().createScreenCapture(screenRect);ImageIO.write(capture, "bmp", new File(args[0]));

開(kāi)心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
public static final void makeScreenshot(JFrame argFrame) { Rectangle rec = argFrame.getBounds(); BufferedImage bufferedImage = new BufferedImage(rec.width, rec.height, BufferedImage.TYPE_INT_ARGB); argFrame.paint(bufferedImage.getGraphics()); try { // Create temp file File temp = File.createTempFile("screenshot", ".png"); // Use the ImageIO API to write the bufferedImage to a temporary file ImageIO.write(bufferedImage, "png", temp); // Delete temp file when program exits temp.deleteOnExit(); } catch (IOException ioe) { ioe.printStackTrace(); }}

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();GraphicsDevice[] screens = ge.getScreenDevices();Rectangle allScreenBounds = new Rectangle();for (GraphicsDevice screen : screens) { Rectangle screenBounds = screen.getDefaultConfiguration().getBounds(); allScreenBounds.width += screenBounds.width; allScreenBounds.height = Math.max(allScreenBounds.height, screenBounds.height);}Robot robot = new Robot();BufferedImage screenShot = robot.createScreenCapture(allScreenBounds);
添加回答
舉報(bào)
0/150
提交
取消