簡體   English   中英

Java - 將函數應用於給定目錄中的所有文件

[英]Java - Apply Function to All Files in Given Directory

我想知道是否可以使用Java將函數應用於目錄中的所有文件?

更具體地說,我希望讀取文件夾中的所有圖像,將它們轉換為二進制(兩種顏色/黑白),然后將二進制圖像保存為另一個目錄中的新圖像(例如, directory\\binary ) 。

像這樣的東西:

for(all images in folder)
    read in image
    make(binaryImg)
    saveNewImage
endFor

我有300張圖片所以希望有辦法做到這一點?

非常感謝。

這應該相對容易,並且這里有很多帖子涉及該程序的許多部分。 例如,查看以前的這些問題:

用Java獲取目錄中的所有文件的程序

將圖片作為輸入,進行灰度等級然后輸出

那里應該有足夠的信息讓你開始!

你可以這樣做:

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

是的,這是可能的。 查看java.io.File並嘗試搜索有關使用Java中的文件的主題,以獲取有關如何訪問目錄以及獲取其包含的文件列表的信息。

如果你正在尋找某人為你編寫代碼,那不太可能發生。

我能想到的唯一“更好的方法”是在這里使用多線程設計。 例如,所有100個圖像都應該在單獨的線程中處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM