0

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

我目前有:

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

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

我在这里尝试了答案,但没有奏效。

我该如何解决?

(还有一个问题:如果 write 只是要忽略它,那么甚至放“png”有什么意义?)

谢谢!

4

1 回答 1

2

文档中

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

...

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

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

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

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

于 2013-03-24T05:26:57.197 回答