簡體   English   中英

如何將多個子文件夾中的 RAW 圖像批量轉換為 DNG

[英]How to batch convert RAW images in several subfolders to DNG

所以我的主文件夾中有 20 個子文件夾,里面裝滿了文件,每個子文件夾中有大約 200 個文件。 我一直在嘗試編寫一個腳本來將每個子文件夾中的每張圖片轉換為 DNG。 我做了一些研究,並且能夠從當前文件夾批量轉換圖像。 我已經嘗試開發這個想法以使其適用於子文件夾,但沒有成功。 這是我寫的代碼:

for D in 'find . -type d'; do for i in *.RW2; do sips -s format jpeg $i --out "${i%.*}.jpg"; cd ..; done; done;

最簡單最快的方法是使用GNU Parallel,如下所示:

find . -iname \*rw2 -print0 | parallel -0 sips -s format jpeg --out {.}.jpg {}

因為這將並行使用所有 CPU 內核。 但是在你啟動任何你沒有測試過的命令之前,最好像這樣使用--dry-run選項,以便它顯示你將要做什么,但實際上不做任何事情:

find . -iname \*rw2 -print0 | parallel --dry-run -0 sips -s format jpeg --out {.}.jpg {}

樣本輸出

sips -s format jpeg --out ./sub1/b.jpg ./sub1/b.rw2
sips -s format jpeg --out ./sub1/a.jpg ./sub1/a.RW2
sips -s format jpeg --out ./sub2/b.jpg ./sub2/b.rw2

如果您喜歡它的外觀,請刪除--dry-run並再次運行它。 請注意, -iname參數意味着它對大小寫不敏感,因此它適用於“ .RW2”和“ .rw2”。


GNU Parallel可以通過自制軟件輕松安裝在 macOS 上:

brew install parallel

它也可以在沒有包管理器(如homebrew )的情況下安裝,因為它實際上是一個 Perl 腳本,Mac 帶有 Perl。 因此,您可以通過在終端中執行此操作來安裝:

(wget pi.dk/3 -qO - ||  curl pi.dk/3/) | bash

您的問題似乎很困惑,您是想要標題建議的DNG文件,還是代碼建議的JPEG文件。 我的代碼按原樣生成 JPEG。 如果你想要DNG輸出,你需要安裝Adobe DNG Converter ,然后運行:

find . -iname \*rw2 -print0 | parallel --dry-run -0 \"/Applications/Adobe DNG Converter.app/Contents/MacOS/Adobe DNG Converter\" 

您可以將其他一些選項附加到上述命令的末尾:

  • -e將原始RW2文件嵌入DNG
  • -u將創建未壓縮的DNG文件
  • -fl快速加載信息添加到DNG

DNG Converter似乎很高興並行運行多個實例,但我沒有測試數千個文件。 如果遇到問題,只需更改為parallel -j 1 ...一次運行一項作業


Adobe DNG Converter可以使用自制軟件輕松安裝在 macOS 下,如下所示:

brew install caskroom/cask/adobe-dng-converter

暫無
暫無

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

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