如何使用 mogrify (ImageMagick) 从 NEF 转换为 *.jpg 并保留 EXIF 数据?

How to use mogrify (ImageMagick) to convert from NEF to *.jpg and retain EXIF data?

我正在将大约 9000 张照片从 .NEF 格式转换为 .jpg。

我刚刚开始从命令行使用 ImageMagick。我还安装了 Exiftool。我正在使用 mogrify 命令,因为它可以很好地处理批次。

当我运行

mogrify -format jpg *.NEF

我所有的 .NEF 文件都已成功转换为 JPG,但是所有 EXIF 数据都丢失了

我搜索了很多,试图找到解决这个问题的方法,看来我可能必须安装 ufraw,但如果可能的话,我想要一个使用我已有软件的解决方案 - ImageMagickExiftool

在此先感谢您提供有关如何执行此操作的任何建议。

更新:

在这样做之前三思而后行 - 您确实丢弃了很多信息 - 如果您不想要它,为什么不首先拍摄 JPEG 而不是 RAW?

FWIW,您可以使用 ImageMagick 获取 JPEG:

convert somefile.NEF somefile.jpg

然后就可以将原来的tags复制到ImageMagick新建的文件中:

exiftool -tagsfromfile somefile.NEF -all:all somefile.jpg 

如果你有几千张图片,并且在 macOS 或像样的 Linux/Unix-based OS 上,我会推荐 GNU Parallel像这样,它会让所有那些你为英特尔付出如此高昂代价的可爱内核忙碌起来:

parallel --dry-run 'convert {} {.}.jpg; exiftool -tagsfromfile {} -all:all {.}.jpg' ::: *nef

示例输出

convert a.nef a.jpg; exiftool -tagsfromfile a.nef -all:all a.jpg
convert b.nef b.jpg; exiftool -tagsfromfile b.nef -all:all b.jpg

如果看起来不错,请删除 --dry-run,以便它实际运行命令。


如果你在 Windows,你将不得不做一些临时的 jiggery-pokery 以在任何合理的时间范围内完成它。您可以使用 mogrify 命令完成对 JPEG 的所有转换,然后稍后再对 EXIF 数据进行所有 exiftool 重新嵌入。如果你的文件是用某种带有递增数字的系统命名的,你可以同时启动两个或三个 mogrify 的副本 - 比如说一个处理名称以 [0-4] 结尾的文件,另一个处理名称以 [0-4] 结尾的文件结束于 [5-9]。我不会说 Windows,但这可能看起来像这两个命令 运行 在其自己的命令提示符中:

mogrify -format jpg *0.NEF *1.NEF *2.NEF *3.NEF *4.NEF

mogrify -format jpg *5.NEF *6.NEF *7.NEF *8.NEF *9.NEF

然后你会做 exiftool 的事情,当他们都完成了,但你必须使用像 this:

这样的 FOR 循环
FOR %%G IN (*.NEF) DO (
   exiftool -tagsfromfile %%G -all:all %%~dpnG.jpg
)

%%~dpnG部分是基于this answer的猜测。