Java 화면 캡처 및 자르기
캡처의 관건적인 방법createScreenCapture(Rectangle rect). 이 방법은 Rectangle 대상이 필요합니다. Rectangle은 화면의 직사각형 구역을 정의하고 Rectangle을 구성하는 것도 상당히 쉽습니다.
new Rectangle(int x, int y, int width, int height), 네 가지 매개 변수는 각각 사각형 왼쪽 상각 x 좌표, 사각형 왼쪽 상각 y 좌표, 사각형 너비, 사각형 높이입니다.캡처 방법은 BufferedImage 객체를 반환합니다. 예제 코드:
/**
* , BufferedImage
* @param x
* @param y
* @param width
* @param height
* @return
*/
public BufferedImage getScreenShot(int x, int y, int width, int height) {
BufferedImage bfImage = null;
try {
Robot robot = new Robot();
bfImage = robot.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 -
* @param format -
*/
public void screenShotAsFile(int x, int y, int width, int height, String savePath, String fileName, String format) {
try {
Robot robot = new Robot();
BufferedImage bfImage = robot.createScreenCapture(new Rectangle(x, y, width, height));
File path = new File(savePath);
File file = new File(path, fileName+ "." + format);
ImageIO.write(bfImage, format, file);
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
화면을 캡처한 후, 아마도 우리는 그것을 잘라야 할 것이다.주로 두 종류의 CropImageFilter와 FilteredImageSource와 관련된다. 이 두 종류의 소개는 자바 문서를 보십시오.
/**
* BufferedImage
* @param srcBfImg - BufferedImage
* @param x - X
* @param y - Y
* @param width -
* @param height -
* @return 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);
Graphics g = cutedImage.getGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
return cutedImage;
}
잘라낸 파일을 저장하려면 ImageIO를 사용합니다.write, 위에서 캡처를 파일로 유지하는 코드를 참고하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.