簡體   English   中英

使用JFileChooser用Java保存png圖像

[英]Saving png image with Java using JFileChooser

我正在嘗試保存由BufferedImage形成的圖像。 我通過做得到BufferedImage

(BufferedImage) fg;

fg是我的jPanel圖形的圖像。 通過將路徑直接硬編碼如下,我成功地保存了圖像:

ImageIO.write((BufferedImage)fg,"png",new File("C:\\Users\\Geiger\\Documents\\test.png"));

但是,當我嘗試將JFileChooser添加到混合圖像時,保存的圖像變成空白,除了jPanel的背景色。

我嘗試利用JFileChooser的代碼如下:

JFileChooser jfc = new JFileChooser();
int retVal = jfc.showSaveDialog(null);
if(retVal==JFileChooser.APPROVE_OPTION){
    File f = jfc.getSelectedFile();
    String test = f.getAbsolutePath();
    ImageIO.write((BufferedImage)fg,"png",new File(test));
 }

編輯:要進一步澄清這個問題:問題不是文件沒有出現,使用JFileChooser對象時圖形沒有出現在圖像上。

當JFrame發生鼠標按下事件時,我會更新圖像:

fg = jPanel2.createImage(jPanel2.getWidth(), jPanel2.getHeight());

嘗試放入這一行代碼,我認為這是您需要的:

ImageIO.write(buffer, "png", fileDialog.getSelectedFile());

希望能有所幫助

Graphics2D graphics2D = image.createGraphics();
scribblePane.paint(graphics2D);

使用這兩行代碼添加圖形。

那對我有用

JFileChooser fileChooser = new JFileChooser();
    fileChooser.setFileFilter(new FileNameExtensionFilter("*.png", "png"));
    if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        try {
            ImageIO.write((BufferedImage) image, "png", new File(file.getAbsolutePath()));
        } catch (IOException ex) {
            System.out.println("Failed to save image!");
        }
    } else {
        System.out.println("No file choosen!");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM