我的程序允许您保存已制作的图像。我只需将它保存为png。
我目前有:
...
File file = fc.getSelectedFile();
try{ ImageIO.write(result.getImage(),"png",file);}
...
它会保存图像,我可以在程序中重新打开它,但它不会在其名称的末尾显示.png。样本图像(给我们,不是由程序制作)在我的JLabel上显示.png,所以我知道它与我如何保存它们有关。
我已经尝试了答案here,但这不起作用。
我该如何解决这个问题?
(和旁边的问题:如果写只是忽略它,甚至把“png”的意思是什么?)
谢谢!
答案 0 :(得分:2)
使用支持给定格式的任意
ImageWriter
将图像写入文件。如果已存在文件,则其内容将被丢弃。...
formatName -
String
包含 [sic] 格式的非正式名称。
所以"png"
作为第二个参数告诉ImageIO
如何编码文件,而不是文件扩展名。您可以进入MS Paint并将图像保存为.jpg
,然后将文件重命名为.png
,但内部仍然是.jpg
; .png
扩展名只是(实际上是用户)文件类型的信号。
您链接的答案看起来应该有效。你是什么意思“不工作”?你收到错误了吗?一个警告?它只是不添加名称吗?
另外,请尝试检查是否显示了文件扩展名(在Windows中:工具菜单→文件夹选项... 菜单项→查看选项卡→取消选中“隐藏已知文件类型的扩展名”复选框;在Mac上,我认为它位于 Finder 菜单→首选项... 菜单项。)