0
같은 프로그램으로 특정 구성 요소의 스크린 샷을 찍을 목적으로 작은 자바 프로그램이 있습니다.컨테이너의 스크린 샷에는 흰색 대신 검은 색 배경이 있습니다.
다음은 코드가이 파일을 만들어 실행 될 때
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
@SuppressWarnings("serial")
public class Screen {
public static void main(String[] args) {
Frame frame = new Frame("Screen Test!");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
frame.dispose();
}
});
Container container = new Container() {
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
g.fillRect(5, 5, 10, 10);
}
};
Dimension dimension = new Dimension(50, 50);
container.setPreferredSize(dimension);
frame.add(container);
frame.pack();
frame.setVisible(true);
BufferedImage bufImage = new BufferedImage(dimension.width, dimension.height, BufferedImage.TYPE_INT_RGB);
container.paint(bufImage.createGraphics());
File outputfile = new File("image.jpg");
try {
ImageIO.write(bufImage, "jpg", outputfile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
의 MCVE입니다.
그러나, 나는이 안쪽의 출력 파일을 예상했다.
내가 뭔가 잘못하거나 단계를 놓친 적이 있습니까?
컨테이너와 프레임 모두에 흰색의 배경을 설정해 보았습니다. 아무런 차이가 없었습니다. 또한'java.awt.Color'를 가져 왔습니다. – Dan
@ 편집 내용을 보려면 프레임이 아닌 이미지를 그리는 데 사용할 그래픽에 배경을 추가해야합니다. 희망이 도움이됩니다. –
도움 주셔서 감사합니다. – Dan