JFileChooser保存图像不添加文件类型

时间:2013-03-24 05:22:48

标签: java swing file-io javax.imageio

我的程序允许您保存已制作的图像。我只需将它保存为png。

我目前有:

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

它会保存图像,我可以在程序中重新打开它,但它不会在其名称的末尾显示.png。样本图像(给我们,不是由程序制作)在我的JLabel上显示.png,所以我知道它与我如何保存它们有关。

我已经尝试了答案here,但这不起作用。

我该如何解决这个问题?

(和旁边的问题:如果写只是忽略它,甚至把“png”的意思是什么?)

谢谢!

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

使用支持给定格式的任意ImageWriter将图像写入文件。如果已存在文件,则其内容将被丢弃。

     

...

     

formatName - String包含 [sic] 格式的非正式名称。

所以"png"作为第二个参数告诉ImageIO如何编码文件,而不是文件扩展名。您可以进入MS Paint并将图像保存为.jpg,然后将文件重命名为.png,但内部仍然是.jpg; .png扩展名只是(实际上是用户)文件类型的信号。

您链接的答案看起来应该有效。你是什​​么意思“不工作”?你收到错误了吗?一个警告?它只是不添加名称吗?

另外,请尝试检查是否显示了文件扩展名(在Windows中:工具菜单→文件夹选项... 菜单项→查看选项卡→取消选中“隐藏已知文件类型的扩展名”复选框;在Mac上,我认为它位于 Finder 菜单→首选项... 菜单项。)