2014-06-21 5 views
1

Java 및 Javafx를 사용하여 그림에 프레임을 추가하고 프레임 된 그림을 저장하려고합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?Javafx의 그림에 프레임 추가

예를 들어 풍경 사진이 있고 프레임을 추가하고 싶다고 가정 해 봅니다. 프레임 된 사진은 다음과 같아야합니다 saved image

답변

2

당신은 이런 식으로 같은 캔버스에 두 이미지, 먼저 프레임, 다음 이미지를 추가 할 수

GraphicsContext gc1 = canvas.getGraphicsContext2D(); 
gc1.drawImage(frameimage,0,0,image.getFitWidth()+20,image.getFitHeight()+20); 
GraphicsContext gc = canvas.getGraphicsContext2D(); 
gc.drawImage(i,10,10,image.getFitWidth(),image.getFitHeight()); 

을 다음 PNG로 저장 (또는 무엇이든 당신이 좋아하는 형식) canvas.snapshot 기능을 사용하여 :

FileChooser fileChooser = new FileChooser(); 
FileChooser.ExtensionFilter extFilter =new FileChooser.ExtensionFilter("png files (*.png)", "*.png"); 

fileChooser.getExtensionFilters().add(extFilter); 
Stage primaryStage = (Stage) canvas.getScene().getWindow(); 

File file = fileChooser.showSaveDialog(primaryStage); 
if(file != null){ 
     try { 
      WritableImage writableImage = new WritableImage((int)canvas.getWidth(), (int)canvas.getHeight()); 
      canvas.snapshot(null, writableImage); 
      RenderedImage renderedImage = SwingFXUtils.fromFXImage(writableImage, null); 
      File file1 = new File(file.getAbsolutePath()+".png"); 

      file.renameTo(file1); 

      ImageIO.write(renderedImage, "png", file1); 


     } catch (IOException ex) { 
      ex.printStackTrace(); 
}