使用 Java 将多个图像转换为灰度
Convert Multiple Images to Grayscale using Java
我的程序正在读取所有文件,但将最后一个文件转换为 b/w,并将文件夹中的所有现有图像更改为转换后的图像。我该怎么办?
//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);
}
我的程序正在读取所有文件,但将最后一个文件转换为 b/w,并将文件夹中的所有现有图像更改为转换后的图像。我该怎么办?
//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);
}