2013-03-24 34 views
0

我的程序允許您保存已製作的圖像。我只需要將它保存爲png。JFileChooser保存圖像不添加文件類型

我目前有:

... 
File file = fc.getSelectedFile(); 
try{ ImageIO.write(result.getImage(),"png",file);} 
... 

它保存圖像,我能夠在我的程序中打開它回來了,但它並沒有在其名稱的末尾顯示巴紐。示例圖像(給我們,不是由程序製作)在我的JLabel上顯示.png,所以我知道它與我如何保存它們有關。

我已經嘗試了答案here,但沒有奏效。

我該如何解決這個問題?

(和側面的問題:什麼是甚至把「PNG」如果寫只是要忽略它的點)

謝謝!

+0

什麼寫入磁盤?一個擴展名爲.png的文件或一個沒有擴展名的文件? – Robin 2013-03-24 08:57:07

+0

沒有它的文件。打印圖像的文件路徑只是以沒有擴展名的名字結束。 – MarvelFan 2013-03-24 16:40:43

回答

2

the documentation

寫入使用支持給定格式的一個文件的任意ImageWriter的圖像。如果已經存在文件,則丟棄其內容。

...

FORMATNAME - 一個String方含[原文]格式的非正式名稱。

因此"png"作爲第二個參數告訴ImageIO如何編碼文件,而不是文件擴展名。您可以進入MS Paint並將圖像保存爲.jpg,然後將該文件重命名爲.png,但在內部仍然是.jpg; .png擴展只是它的一種信號(對用戶而言)。

您鏈接到的答案看起來應該有效。你的意思是「不起作用」?你有錯誤嗎?一個警告?它只是不添加名稱?

另外,請檢查您的文件擴展名是否顯示(在Windows:工具菜單→ 文件夾選項...菜單項→ 查看標籤→取消「隱藏已知文件類型」複選框;在Mac上,我認爲它在Finder菜單→ 首選項...菜單項)。

+0

它只是不會將.png添加到我的程序中其他位置的JLabel中打印出的文件名。它運行沒有錯誤。我通過一個Linux終端來做這件事......但是當我在我的程序中打開一張圖片時,它仍然沒有顯示給我們的擴展名。 – MarvelFan 2013-03-24 05:42:25