0

私のプログラムでは、作成した画像を保存できます。pngとして保存するだけです。

私は現在持っています:

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

画像が保存され、プログラムで開くことができますが、名前の最後に.pngが表示されません。サンプル画像(プログラムによって作成されたものではなく、私たちに提供されたもの)は私のJLabelに.pngを示しているので、それらを保存する方法と関係があることを私は知っています。

私はここで答えを試しましたが、うまくいきませんでした。

これを修正するにはどうすればよいですか?

(そして副次的な質問:書き込みがそれを無視しようとしているのであれば、「png」を置くことの意味は何ですか?)

ありがとう!

4

1 に答える 1

2

ドキュメントから:

ImageWriter指定された形式をサポートする任意の形式を使用して画像をファイルに書き込みます。すでにファイルが存在する場合、その内容は破棄されます。

..。

formatName-フォーマットの非公式な名前をString含む[原文のまま] 。

したがって"png"、2番目の引数はImageIO、ファイル拡張子ではなく、ファイルのエンコード方法を示しています。MSペイントに移動して画像をとして保存し.jpg、ファイルの名前をに変更する.pngこともできますが、それでも.jpg内部にあります。拡張子は、.pngファイルの種類を示す(実際にはユーザーへの)単なるシグナルです。

リンクした答えはうまくいくようです。「動かない」とはどういう意味ですか?エラーが発生しますか?警告?名前を付けないだけですか?

また、ファイル名拡張子が表示されているかどうかを確認してみてください(Windowsの場合:[ツール]メニュー→ [フォルダオプション... ]メニュー項目→ [表示]タブ→[既知のファイルタイプの拡張子を非表示にする]チェックボックスの選択を解除します。Macでは、 Finderメニューにあると思います→環境設定...メニュー項目)。

于 2013-03-24T05:26:57.197 に答える