我的程序正在读取所有文件,但将最后一个文件转换为黑白,并将文件夹中的所有当前图像更改为该转换后的图像。我该怎么办?
//read-image
try{
f=new File("path");
File[] files=f.listFiles();
for (File file:files){
ImageInputStream is = ImageIO.createImageInputStream(file);
img= ImageIO.read(is);
}
System.out.println("Reading Complete.");
}
catch(IOException e){
System.out.println("Error"+e);
}
//write-image
try{
f= new File("path");
File[] files=f.listFiles();
for (File file:files){
ImageOutputStream os = ImageIO.createImageOutputStream(file);
ImageIO.write(img,"jpeg",os);
System.out.println("Writing Complete");
os.flush();
os.close();
}
}
catch(IOException e){
System.out.println("Error"+e);
}
您的代码读取所有文件,但仅保留一个img
对象(最后一个)。您可以通过合并两个部分来解决此问题-读取,编辑和编写:
try {
f = new File("path");
File[] files = f.listFiles();
for (File file : files){
Image img;
try (ImageInputStream is = ImageIO.createImageInputStream(file)) {
img = ImageIO.read(is);
}
Image imgGrayscale = makeImageGrayscale(img);
try (ImageOutputStream os = ImageIO.createImageOutputStream(file)) {
ImageIO.write(img, "jpeg", os);
}
}
} catch(IOException e){
System.out.println("Error"+e);
}