【问题标题】:Adding frame to picture in Javafx在Javafx中为图片添加框架
【发布时间】:2014-06-21 10:13:11
【问题描述】:

我想使用 Java 和 Javafx 为图片添加框架,然后保存带框架的图片。最好的方法是什么?

例如,假设我有一张风景照片并想为其添加相框。相框照片应如下所示:

【问题讨论】:

    标签: java javafx photo-gallery


    【解决方案1】:

    您可以像这样在同一个画布上添加两个图像,首先是框架,然后是图像:

    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());
    

    然后使用 canvas.snapshot 函数将它们保存为 png(或您喜欢的任何格式):

    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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-01
      • 2013-02-02
      • 2013-01-22
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多