Java 想将BuffereImage另存为jpg,但我的代码将其另存为文本文件
我想将BuffereImage导出为jpg,但在这段代码中,它将被保存为文本文件。我怎样才能解决这个问题Java 想将BuffereImage另存为jpg,但我的代码将其另存为文本文件,java,image,jpeg,Java,Image,Jpeg,我想将BuffereImage导出为jpg,但在这段代码中,它将被保存为文本文件。我怎样才能解决这个问题 public void saveImage(BufferedImage im) { JFileChooser fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("jpg", ".jpg"); fc.setAcceptAllFileFilte
public void saveImage(BufferedImage im) {
JFileChooser fc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("jpg", ".jpg");
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(filter);
int ret = fc.showSaveDialog(null);
File f = fc.getSelectedFile();
if (ret == JFileChooser.APPROVE_OPTION) {
try {
ImageIO.write(im, "jpg", f);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
JFileChooser上没有一个选项可以让它在未键入时自动填充扩展名。从对话框中检索文件后,必须对此进行检查
public static void saveImage(BufferedImage im) {
JFileChooser fc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("jpg", ".jpg");
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(filter);
int ret = fc.showSaveDialog(null);
File f = fc.getSelectedFile();
if (ret == JFileChooser.APPROVE_OPTION) {
try {
if(!f.getName().endsWith(".jpg"))
{
String name = f.getAbsolutePath() + ".jpg";
f = new File( name );
}
ImageIO.write(im, "jpg", f);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
“jpg”
可能不是有效的图像格式名称<代码>“jpeg”用于文档中。我会尝试:ImageIO.write(im,“jpeg”,f)代码>不起作用存在与以前相同的问题图片是什么?如何验证输出是否为文本文件?你是用记事本和图形程序打开的吗?你可以用记事本打开一个jpg文件,但这并不意味着它被保存为一个文本文件。如果点击一个按钮,这个功能就会启动。图片是一个BuffereImage,我不知道在哪里验证输出@ProgrammersBlock您是否键入文件名,如“ABC”,然后希望JFileChooser返回一个名为“ABC.jpg”的文件?