将exif gps信息从一幅图像传输到另一幅图像


13

我有一台照相机(不是手机)将gps exif信息插入图片。

事实是:一直使用“ gps on”会耗尽电池电量。所以我想:仅在gps上拍照就可以了,而他们在家将这个exif信息添加到其他照片上呢?

我想知道是否有您知道的应用程序可以在这种情况下对我有所帮助:拥有一张包含有关gps的exif信息的照片,然后将相同的gps信息复制到另一张照片中。

(我更喜欢Linux / Mac解决方案,但我也接受Windows。我不在乎它是否是命令行应用程序。)


Answers:


13

看一下ExifTool。它是Exif信息处理的瑞士军刀,可以完成您需要的其他事项。它是Windows / Linux / Mac兼容的命令行工具以及Perl模块。免费和开源:

“ -tagsFromFile”选项

一个特殊的ExifTool选项允许将标签从一个文件复制到另一个文件。这样做的命令行语法是“ -tagsFromFile SRCFILE”。在命令行上此选项之后指定的所有标记都将从源文件中提取并写入目标文件。如果未指定标签,则将复制所有可写标签。此选项非常简单,但功能非常强大。根据源文件和目标文件的格式,某些读取的标签在目标文件中可能无效,在这种情况下,它们不会被写入。

以下命令将(递归)更改当前目录及其子目录中的所有文件,并从文件中复制所有与GPS相关的标签SOURCE.JPG

exiftool -overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all。

另一种方法是将以下内容放入脚本中。传递的第一个参数应该是用于复制GPS坐标的文件,所有其他参数都是要更新的目标文件:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"

2
jhead是另一个非常有用的实用程序,可以补充ExifTool。
MikeyB 2012年

1
@ SomebodystillusesyouMS-DOS:所有参数($@数组中的项目)从第二个开始。而且,现在我已经意识到我在其中放了很多不必要(和不正确)的东西到了四行。(也
称为

1
当您使用脚本时,我会继续面对面,因为我完全错过了tagsFromFile可以在一行中完成相同操作的选项……
user1686 2012年

1
@grawity:我对您的编辑感到有些惊讶:-)
haimg

2
@grawity和@haimg:exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .-该-r选项递归到目录(.),然后-gps:all...,这正是我想要的。我打败你,老兄!:)我想您可以编辑此帖子并添加此代码段,但是请记住警告人们阅读exiftool --help以了解我提供的其他选项...谢谢大家!
有人仍在使用您MS-DOS

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.