Java-将函数应用于给定目录中的所有文件
我想知道是否可以使用Java将函数应用于目录中的所有文件 更具体地说,我希望读入文件夹中的所有图像,将它们转换为二进制(两种颜色/黑白),然后将二进制图像作为新图像保存在另一个目录中(例如,可能是Java-将函数应用于给定目录中的所有文件,java,image-processing,Java,Image Processing,我想知道是否可以使用Java将函数应用于目录中的所有文件 更具体地说,我希望读入文件夹中的所有图像,将它们转换为二进制(两种颜色/黑白),然后将二进制图像作为新图像保存在另一个目录中(例如,可能是目录\二进制) 大概是这样的: for(all images in folder) read in image make(binaryImg) saveNewImage endFor 我有300张照片,所以我希望有办法做到这一点 非常感谢。这应该相对容易做到,这里有很多帖子涉及
目录\二进制
)
大概是这样的:
for(all images in folder)
read in image
make(binaryImg)
saveNewImage
endFor
我有300张照片,所以我希望有办法做到这一点
非常感谢。这应该相对容易做到,这里有很多帖子涉及到这个程序的许多部分。例如,查看前面的这些问题:
应该有足够多的信息让你开始 是的,这是可能的。查看并尝试搜索有关在Java中使用文件的主题,以获取有关如何访问目录并获取其包含的文件列表的信息
如果你想找人为你写代码,那是不可能的。我能想到的唯一“更好的方法”是在这里使用多线程设计。例如,每100个图像都应该在单独的线程中处理 您可以这样做:
File dir = new File("/dir/");
for(File f : dir.listFiles())
processImage(f);
当然,由于您有许多文件,您可以为每个文件创建一个Runnable
,并将它们传递给ExecutorService
以在多个线程中处理:
public static void main(String... args){
ExecutorService pool = Executors.newFixedThreadPool(4); //nbr of active threads
File dir = new File("/dir/");
for(File f : dir.listFiles())
pool.submit(new Runnable() {
public void run(){
processImage(f);
}
}
}
为(文件f:folder.listFiles())性能操作(f)尝试代码>