2

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

  • 我想保留所有 EXIF 数据,最重要的是创建日期和时间、纬度和经度。
  • 我希望 JPG 具有尽可能高的质量。

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

当我跑

mogrify -format jpg *.NEF

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

我已经搜索了很多试图找到解决方案,似乎我可能必须安装 ufraw,但如果可能的话,我想要一个使用我已经拥有的软件的解决方案 - ImageMagickExiftool

提前感谢您对如何执行此操作的任何建议。

更新:

  • 我使用 mogrify 转换的图像比我的同事使用 picasa 将 NEF 转换为 JPG 输出的图像略小(~ 1-2 MB)。但是当我-quality 100在 ImageMagick 中指定时,图像大小会增加大约 45 MB!为什么?
  • 该代码exiftool -tagsfromfile %d%f.NEF -ext jpg -overwrite_original .将 exif 信息添加到 JPG 中。
4

1 回答 1

5

在这样做之前要三思而后行——你确实丢弃了很多信息——如果你不想要它,为什么不首先拍摄 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 上,您将不得不做一些临时的拼凑游戏以在任何合理的时间范围内完成它。您可以使用该mogrify命令完成所有到 JPEG 的转换,然后exiftool稍后再重新嵌入 EXIF 数据。如果您的文件以某种具有递增数字的系统命名,您可以mogrify并行启动两个或三个副本 - 例如一个执行名称以 [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在它们全部完成后做这些事情,但你必须使用这样的 FOR循环

FOR %%G IN (*.NEF) DO (
   exiftool -tagsfromfile %%G -all:all %%~dpnG.jpg
)

%%~dpnG部分是基于此答案的猜测。

于 2017-11-15T15:35:19.697 回答