1
Java 및 Javafx를 사용하여 그림에 프레임을 추가하고 프레임 된 그림을 저장하려고합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?Javafx의 그림에 프레임 추가
예를 들어 풍경 사진이 있고 프레임을 추가하고 싶다고 가정 해 봅니다. 프레임 된 사진은 다음과 같아야합니다
Java 및 Javafx를 사용하여 그림에 프레임을 추가하고 프레임 된 그림을 저장하려고합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?Javafx의 그림에 프레임 추가
예를 들어 풍경 사진이 있고 프레임을 추가하고 싶다고 가정 해 봅니다. 프레임 된 사진은 다음과 같아야합니다
당신은 이런 식으로 같은 캔버스에 두 이미지, 먼저 프레임, 다음 이미지를 추가 할 수
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();
}