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

标签 imagemagick jpeg exif exiftool mogrify

我正在将大约 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/

相关文章:

image - 在不改变图像尺寸的情况下减小非常大图像的文件大小

php - 如何用imagemagick显示图像?

html - 错误的 jpg 在 ie 上呈现

C:如何从文件中读取一个jpg并保存?

iphone - 如何将自定义元数据标签添加到 iPhone 上的图像?

python - ImageMagick 魔杖无法识别 pdf 图像?

python - 使用 Python 对 jpeg 图像进行排序和合并?

.net - 如何将这些图像 EXIF GPS 坐标转换为十进制经纬度?

python - 在Python中删除EXIF数据?

ruby-on-rails - 使用 Rails 和 Paperclip 裁剪时如何获得图像的顶部区域?