Java 표준 API에는 스크린샷을 구현하고 마우스 및 키보드 작업을 시뮬레이션할 수 있는 Robot 클래스가 있습니다. 여기에는 스크린샷만 표시되어 있습니다.
스크린샷을 찍는 주요 메소드는 createScreenCapture(Rectangle ect)입니다. 이 메소드에는 Rectangle 객체가 필요합니다. Rectangle은 화면을 정의하는 직사각형 영역입니다.
new Rectangle(int x, int y, int width, int height), 4개의 매개변수는 직사각형 왼쪽 위 모서리의 x 좌표, 직사각형 왼쪽 위 모서리의 y 좌표, 직사각형 너비입니다. 그리고 직사각형의 높이. 스크린샷 메소드는 BufferedImage 객체, 샘플 코드를 반환합니다.
/** * 화면 영역의 스크린샷을 지정하고 스크린샷의 BufferedImage 객체를 반환합니다. * @param x * @param y * @param width * @param height * @return */ public BufferedImage getScreenShot(int x, int y, int 너비, int 높이 ) { BufferedImage bfImage = null; try { 로봇 로봇 = new Robot(); robots.createScreenCapture(new Rectangle(x, y, width, height)) } catch (AWTException e) { e.printStackTrace() } return bfImage }
스크린샷을 파일로 저장해야 하는 경우 ImageIO.write(RenderedImage im, String formatName, File output), 샘플 코드를 사용하세요.
/** * 지정된 화면 영역의 스크린샷을 찍어 지정된 디렉터리에 저장 * @param x * @param y * @param width * @param height * @param savePath - 파일 저장 경로 * @param fileName - 파일 저장 name * @param format - 파일 형식*/ public void screenShotAsFile(int x, int y, int width, int height, String savePath, String fileName, String format) { try { 로봇 로봇 = new Robot(); BufferedImage bfImage = robots.createScreenCapture(new Rectangle(x, y, width, height)); 파일 경로 = new File(savePath); 파일 file = new File(path, fileName+ "." + format); , 형식, 파일) } catch(AWTException e) { e.printStackTrace() } catch(IOException e); e.printStackTrace() } }
스크린샷을 캡처한 후에는 잘라야 할 수도 있습니다. 여기에는 주로 CropImageFilter 및 FilteredImageSource라는 두 가지 클래스가 포함됩니다. 이 두 클래스에 대한 소개는 Java 설명서를 참조하세요.
/** *BufferedImage 그림 자르기* @param srcBfImg - 잘린 BufferedImage * @param x - 클리핑 지점 왼쪽 위 모서리의 X 좌표 * @param y - 클리핑 지점 왼쪽 위 모서리의 Y 좌표 * @param width - 잘린 이미지의 너비* @param height - 잘린 이미지의 높이* @잘린 BufferedImage 반환 */ public BufferedImage cutBufferedImage(BufferedImage srcBfImg, int x, int y, int width, int height) { BufferedImage cutedImage = null; CropImageFilter CropFilter = new CropImageFilter(x, y, width, height) Image img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(srcBfImg.getSource(), CropFilter)); cutedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 그래픽 g = cutedImage.getGraphics(); g. dispose(); 귀여운 이미지를 반환합니다.
트리밍 후 잘린 파일을 저장해야 하는 경우 ImageIO.write를 사용하고 위의 코드를 참고하여 스크린샷을 파일로 저장하면 됩니다.