0
JPanel의 배경 화면을 캡처하려하지만 이미지를 저장 한 후 검정색 이미지가 나타납니다.JPanel 위치 및 크기를 기준으로 스크린 샷
여기에 코드입니다 :
private void takeScreenshot(String print){
JFileChooser c = new JFileChooser(getRealDesktop());
FileFilter jpg = new FileNameExtensionFilter(".jpg", ImageIO.getReaderFileSuffixes());
FileFilter jpeg = new FileNameExtensionFilter(".jpeg", ImageIO.getReaderFileSuffixes());
FileFilter png = new FileNameExtensionFilter(".png", ImageIO.getReaderFileSuffixes());
c.setFileFilter(png);
c.setFileFilter(jpeg);
c.setFileFilter(jpg);
c.showSaveDialog(this);
if(c.getSelectedFile() != null){
String ssLoc = c.getSelectedFile().getAbsolutePath()+c.getFileFilter().getDescription();
System.out.println(ssLoc);
BufferedImage bufImg = new BufferedImage(ssWindow.getSize().width, ssWindow.getSize().height,BufferedImage.TYPE_INT_RGB);
ssWindow.paint(bufImg.createGraphics());
File imageFile = new File(ssLoc);
try{
imageFile.createNewFile();
ImageIO.write(bufImg, "JPG", imageFile);
}catch(Exception ex){
System.err.println(ex);
}
}
}
그리고 언론의 동작 버튼은 다음과 같습니다
this.setVisible(false);
takeScreenshot("ssTake");
this.setVisible(true);
어떻게이 일을 할 수 있습니까?
귀하의 코드가 JPanel의 내부에서 이미지를 만드는 것입니다. JPanel에서 화면 좌표를 가져와 화면의 내용을 찍어야합니다. 내 이클립스에 복사 할 수있는 코드와 ** execute **를 게시하지 않았으므로 코멘트 만 남겨두면됩니다. –
내 JCropFrame 기사 (http://java-articles.info/articles/?p=76)를 확인하십시오. –