macos - 如何将多个子文件夹中的RAW图像批量转换为DNG

标签 macos image 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 可以通过 homebrew 轻松安装在 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 可以使用 homebrew 在 macOS 下轻松安装,如下所示:

brew install caskroom/cask/adobe-dng-converter

关于macos - 如何将多个子文件夹中的RAW图像批量转换为DNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815397/

相关文章:

android - 将图像从 imageView 保存在 android 中

c# - 在 C# 中使用 GDCM 库加载 DICOM 图像并转换为 System.Windows.Control.Image

java - 从可绘制文件夹获取图像并调整其大小时出现 NullPointerException

python - 导入为 16 位深但意外的 plt.show() 结果的 DNG 原始图片

python - Python中的RAW图像处理

objective-c - 如何使窗口处于事件状态或获得焦点?

ruby-on-rails - 在 Mac OS X 上安装新的 Rails 给我 "Rails requires RubyGems >= 1.3.2"

linux - Docker 无效标签值

macos - 如何测试鼠标是否在指定窗口内?

ios - 将其他相机拍摄的 DNG(原始照片)保存到 iOS 照片库