我正在将大约 9000 张照片从 .NEF 转换为 .jpg。
- 我想保留所有 EXIF 数据,最重要的是创建日期和时间、纬度和经度。
- 我希望 JPG 具有尽可能高的质量。
我刚刚开始从命令行使用 ImageMagick。我还安装了 Exiftool。我使用 mogrify
命令,因为它可以很好地处理批处理。
当我运行时
mogrify -format jpg *.NEF
我的所有 .NEF 文件均已成功转换为 JPG,但所有 EXIF 数据均丢失。
我已经搜索了很多,试图找到一个解决方案,似乎我可能必须安装 ufraw,但如果可能的话,我想要一个使用我已有软件的解决方案 - ImageMagick 和Exiftool。
预先感谢您提供有关如何执行此操作的任何建议。
更新:
- 我使用 mogrify 转换的图像比我的同事使用 picasa 将 NEF 转换为 JPG 输出的图像稍小(约 1-2 MB)。但是当我在 ImageMagick 中指定
-quality 100
时,图像大小增加了大约 45 MB!为什么? - 代码
exiftool -tagsfromfile %d%f.NEF -ext jpg -overwrite_original .
将 exif 信息添加到 JPG 中。
最佳答案
在执行此操作之前请三思 - 您确实会丢弃很多信息 - 如果您不想要它,为什么不首先拍摄 JPEG 而不是 RAW?
FWIW,您可以使用 ImageMagick 获取 JPEG:
convert somefile.NEF somefile.jpg
然后您可以将原始标签复制到 ImageMagick 新创建的文件中:
exiftool -tagsfromfile somefile.NEF -all:all somefile.jpg
如果你有数千个图像,并且在 macOS 或基于 Linux/Unix 的操作系统上,我会推荐像这样的 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 的转换,然后再使用 exiftool
重新嵌入 EXIF 数据。如果您的文件是使用某种数字递增的系统命名的,则可以并行启动两到三个 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 的猜测.
关于imagemagick - 如何使用 mogrify (ImageMagick) 将 NEF 转换为 *.jpg 并保留 EXIF 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310326/