티스토리 뷰


화면 스크린샷을 생성할 수 있는 Java 코드를 소개해 드립니다.
AWT 를 통해 현재 화면을 스크릿샷 할 수 있는 방법이라고 합니다.

package com.negafix.screenshot;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ScreenShotApp {
	public static void main(String[] args) {
		try {
			Toolkit toolkit = Toolkit.getDefaultToolkit();
			Dimension screenSize = toolkit.getScreenSize();
			Rectangle rectangle = new Rectangle(0, 0, screenSize.width, screenSize.height);

			Robot robot = new Robot();
			BufferedImage bi = robot.createScreenCapture(rectangle);
			ImageIO.write(bi, "jpg", new File("d:/download/screenshot.jpg"));
		} catch(IOException ioe) {
			ioe.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
}

위 코드를 실행하면 현재 보이는 화면 그대로 썸네일과 같은 이미지가 생성됩니다.
웹 관리툴 같은 곳에서 사용하면 유용 할 것 같습니다.

하지만, 보완해야 할 사항도 존재합니다.
저의 경우 모니터 2대를 연결하여 듀얼 모니터로 사용하고 있는데 두 화면을 합친 형태의 스크린샷이 생성됩니다.
즉, 사용자가 2대 이상의 모니터를 사용하는경우 각 모니터에 출력되는 화면 모두를 캡쳐하여 이미지를 만드는 것입니다.
각 모니터 독립적으로 스크린샷을 찍을 수 있다면 좋겠지만 위 코드로는 부족한 것이 사실입니다.
이 부분은 추후 좀더 자료를 찾아서 보강해야 할 것 같습니다.



공지사항