【问题标题】:EXIFTool JSON to EXIF batch processingEXIFTool JSON转EXIF批处理
【发布时间】:2015-08-10 18:19:11
【问题描述】:

我有超过 400 个 JPG 文件和一个 JSON 文件,每个文件都包含图像标签、描述和标题。我找到了这个命令

exiftool -json=picture.json picture.jpg

但我不想为每个文件都运行这个。
如何为包含 JPG 和 JSON 的文件夹运行此命令,或者是否有其他方法可以批量处理这些文件?
每个 JSON 文件与其对应的 JPG 文件具有相同的名称,因此很容易识别哪些文件相互匹配。

【问题讨论】:

    标签: java json batch-file exif exiftool


    【解决方案1】:

    假设您的 JPG 和 JSON 具有相同的文件名,但扩展名不同(例如,picture001.jpg 具有关联的 picture001.json 等),批处理 for 循环可能会起作用。 假设您已经 cd-ed 到文件夹中并且文件没有嵌套在文件夹中,这样的事情应该可以工作

    ( for jpg in *.jpg; do exiftool -json=${jpg/\.jpg/.json} $jpg; done )
    

    请注意,这未经测试。我建议您复制您的文件夹并事先在那里进行测试,以确保您不会对它们造成不可逆转的损坏。

    我还注意到您正在使用 java 标记。不久前我不得不在 Java 中处理 EXIF 数据(当时是on Android),我使用了JHeader library。如果你想滚动你自己的小java命令行工具,你应该可以使用Java的IO类来遍历你的目录和文件以及JHeader库来修改EXIF数据。

    【讨论】:

    • 谢谢!我试过这个但遇到了一个错误,这个文本框中没有足够的空间让我复制粘贴它但是here's a screenshot of what I did and what happened.
    • 你没有提到窗户。我的解决方案是 bash,你可以在 unix 系统上运行。在 Windows 上,您需要 cygwinmingw 之类的东西。请注意,您按原样运行脚本,前面没有 exiftool.exe。目前我无法制作 DOS/batch 版本,但同样的原则也适用。语法会有所不同
    • 啊,好吧,对不起,我忘了说我在 Windows 上!谢谢,我去下载cygwin,我相信我以前用过。
    • cygwin 不适合我,所以我启动了一个 Ubuntu VM,安装了 exiftool 并运行了你的命令,但它为每个文件返回了这三行第 1 行:“'imagename 中没有 SourceFile 条目.json'” 第 2 行:“导入的 JSON 数据库中没有 SourceFile 'imagename.jpg'” 第 3 行:“(绝对路径:'/media/FlickrPics/imagename.jpg')”
    • 听起来路径不是很快。我做了一个快速的虚拟测试:添加了一堆 json 和 jpg 文件ls -l total 0 -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:58 pic001.jpg -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:58 pic001.json -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:59 pic002.jpg -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:58 pic002.json -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:59 pic003.jpg -rw-r--r-- 1 georgeprofenza staff 0 10 Aug 14:59 pic003.json 然后运行了一个稍微修改过的脚本版本,它只将数据打印到提示符...
    猜你喜欢
    • 2013-06-21
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2010-12-17
    • 2019-08-22
    相关资源
    最近更新 更多