컴퓨터에 두 개의 스크린이 연결되어 있습니다. 각 화면에서 화면 캡처를 시도합니다. 다음 코드를 사용하고 있습니다 : 이미지 0과 image1에이 다른 : JRE7에 java.awt.Robot.createScreenCapture가 다중 화면에서 작동하지 않습니다. 마지막 JRE (8)로 구성하십시오.
GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); //same screens[] with JRE7 and JRE8
Robot rbt0 = new Robot(screens[0]);
BufferedImage image0 = rbt0.createScreenCapture(new Rectangle(0,0,1024,1024));
Robot rbt1 = new Robot(screens[1]);
BufferedImage image1 = rbt1.createScreenCapture(new Rectangle(0,0,1024,1024));
- 은 각 캡처 화면 오른쪽에서 수행됩니다.
- JRE8에서 캡쳐는 두 화면에서 동일합니다. image0과 image1은 동일한 시각적 이미지입니다 (둘 다 화면 0의 이미지 임).
javadoc에는 JRE8의 Robot 클래스에 대한 새로운 기능이 있음을 언급하지 않았습니다. JRE8의 버그입니까? 같은 문제가있는 사람이 있습니까? 이 버그가 확인되면이 문제점을 어떻게 Oracle에 알릴 수 있습니까?
모두에게 감사,
감사합니다,
대단히 감사합니다. 화면 번호는 더 이상 올바른 화면에서 캡처하는 것과 관련이 없습니다. 이제 좌표를 다루어야합니다. 문제는 두 번째 화면이 주 화면의 왼쪽에 있으면 x 좌표가 음수라는 것입니다. 두 번째 화면이 주 화면의 오른쪽에 있으면 x 좌표는 양수입니다. 작업하려는 화면이 기본 화면의 왼쪽 또는 오른쪽에 있는지 어떻게 알 수 있습니까? – burgerLove
@burgerLove 각 GraphicsDevice 객체의 구성에서 각 화면의 좌표를 가져올 수 있어야합니다. 예를 들어 GrahpicsDevice javadoc의 시작 부분을 살펴보십시오. http://docs.oracle.com/javase/8/docs/api/java/awt/GraphicsDevice.html – Aaron
변경 사항이 고의로 변경되었음을 어떻게 알 수 있습니까? 그래서 이것은 여전히 그렇다, 그렇지 않은가? 고칠 것인가? – ZetCoby