Как захватить изображение на экране с курсором мыши на нем в Java

Как захватить изображение экрана с указателем мыши на нем в Java? В знаю, что я могу захватить экран с роботом класса, но он захватывает экран без указателя мыши на нем, так что это не решение для меня.

2 ответов


это не напрямую, но вы можете использовать MouseInfo#getPointerInfo() получить информацию, где курсор в настоящее время находится.

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

после получения скриншота как BufferedImage, вы можете разместить свое собственное изображение курсора именно в этом месте на скриншоте с помощью 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"));

вы можете использовать собственный доступ Java для динамического доступа к курсорам/указателям мыши операционной системы.