Java - 将函数应用于给定目录中的所有文件

时间:2012-01-25 15:14:23

标签: java image-processing

我想知道是否可以使用Java将函数应用于目录中的所有文件?

更具体地说,我希望读取文件夹中的所有图像,将它们转换为二进制(两种颜色/黑白),然后将二进制图像作为新图像保存在另一个目录中(可能{{1} },例如)。

这样的事情:

directory\binary

我有300张图片,所以希望有办法吗?

非常感谢。

4 个答案:

答案 0 :(得分:1)

这应该相对容易,并且这里有很多帖子涉及该程序的许多部分。例如,查看以前的这些问题:

Program to get all files within a directory in Java

Taking a picture as input, Make grey scale and & then outputting

应该有足够的信息让你开始!

答案 1 :(得分:1)

你可以这样做:

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);
        }
    } 
}

答案 2 :(得分:0)

是的,这是可能的。查看java.io.File并尝试搜索有关使用Java中的文件的主题,以获取有关如何访问目录以及获取其包含的文件列表的信息。

如果您正在寻找某人为您编写代码,则不太可能发生。

答案 3 :(得分:0)

我能想到的唯一“更好的方法”是在这里使用多线程设计。例如,所有100个图像都应该在单独的线程中处理。