我想知道是否可以使用Java将函数应用于目录中的所有文件?
更具体地说,我希望读取文件夹中的所有图像,将它们转换为二进制(两种颜色/黑白),然后将二进制图像作为新图像保存在另一个目录中(可能{{1} },例如)。
这样的事情:
directory\binary
我有300张图片,所以希望有办法吗?
非常感谢。
答案 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个图像都应该在单独的线程中处理。