How to capture screen image with mouse pointer on it in Java

后端 未结 2 560
独厮守ぢ
独厮守ぢ 2020-12-11 03:51

How to capture screen image with mouse pointer on it in Java? In know that i can capture screen with Robot class, but it captures screen without mouse pointer on it, so this

相关标签:
2条回答
  • 2020-12-11 04:14

    That's not directly possible, but you can use MouseInfo#getPointerInfo() to get information where the pointer is currently located.

    int x = MouseInfo.getPointerInfo().getLocation().x;
    int y = MouseInfo.getPointerInfo().getLocation().y;
    

    After getting the screenshot as BufferedImage, you can place your own cursor image at exactly that location on the screenshot with help of Java 2D API.

    Rectangle screen = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
    BufferedImage screenCapture = new Robot().createScreenCapture(screen);
    
    Image cursor = ImageIO.read(new File("c:/cursor.gif"));
    int x = MouseInfo.getPointerInfo().getLocation().x;
    int y = MouseInfo.getPointerInfo().getLocation().y;
    
    Graphics2D graphics2D = screenCapture.createGraphics();
    graphics2D.drawImage(cursor, x, y, 16, 16, null); // cursor.gif is 16x16 size.
    ImageIO.write(screenCapture, "GIF", new File("c:/capture.gif"));
    
    0 讨论(0)
  • 2020-12-11 04:30

    You can use Java Native Access in order to access operating system specific mouse cursors/pointers dynamically.

    0 讨论(0)
提交回复
热议问题