Image IO 写不写
Image IO Write not writing
基本上我试图保存我在 JFrame 中编辑过的图像,所以我有一个带有保存项的菜单,我有一个为保存项设置的动作侦听器,一切正常,文件选择器出现了,我可以 select 我想保存它的地方,唯一的问题是当我点击保存时,它不在那里。这是我的代码,我是不是遗漏了什么?
if(e.getSource().equals(Save)){
JFileChooser keep = new JFileChooser();
keep.setSelectedFile(new File ("newImage.jpg"));
FileNameExtensionFilter filters = new FileNameExtensionFilter("jpeg", "jpg");
keep.setFileFilter(filters);
File output = keep.getSelectedFile();
int count = keep.showSaveDialog(keep);
BufferedImage out = filteredImage;
if (count == JFileChooser.CANCEL_OPTION){
}
else{
try{
ImageIO.write(out, "jpg", output);
//I put this here to see if I was even reaching the method
System.out.println("writing method");
}catch(Exception d){
}
}
}
因此,您获得了对 selectedFile
...
的引用
File output = keep.getSelectedFile();
您显示对话框...
int count = keep.showSaveDialog(keep);
BufferedImage out = filteredImage;
然后您尝试保存图像...
ImageIO.write(out, "jpg", output);
...等等,什么?!假设 getSelectedFile
不是 null
,您如何知道实际保存图像的位置?
这个过程应该稍微颠倒一下...
showSaveDialog
if (accepted) {
saveFile = getSelectedFile
ImageIO.write(img, "jpg", saveFile);
}
作为基本伪代码示例
基本上我试图保存我在 JFrame 中编辑过的图像,所以我有一个带有保存项的菜单,我有一个为保存项设置的动作侦听器,一切正常,文件选择器出现了,我可以 select 我想保存它的地方,唯一的问题是当我点击保存时,它不在那里。这是我的代码,我是不是遗漏了什么?
if(e.getSource().equals(Save)){
JFileChooser keep = new JFileChooser();
keep.setSelectedFile(new File ("newImage.jpg"));
FileNameExtensionFilter filters = new FileNameExtensionFilter("jpeg", "jpg");
keep.setFileFilter(filters);
File output = keep.getSelectedFile();
int count = keep.showSaveDialog(keep);
BufferedImage out = filteredImage;
if (count == JFileChooser.CANCEL_OPTION){
}
else{
try{
ImageIO.write(out, "jpg", output);
//I put this here to see if I was even reaching the method
System.out.println("writing method");
}catch(Exception d){
}
}
}
因此,您获得了对 selectedFile
...
File output = keep.getSelectedFile();
您显示对话框...
int count = keep.showSaveDialog(keep);
BufferedImage out = filteredImage;
然后您尝试保存图像...
ImageIO.write(out, "jpg", output);
...等等,什么?!假设 getSelectedFile
不是 null
,您如何知道实际保存图像的位置?
这个过程应该稍微颠倒一下...
showSaveDialog
if (accepted) {
saveFile = getSelectedFile
ImageIO.write(img, "jpg", saveFile);
}
作为基本伪代码示例