ある画像から別の画像にexif gps情報を転送する


13

写真にgps exif情報を挿入するカメラ(携帯電話ではありません)があります。

事実は次のとおりです。「gps on」を使用すると、常にバッテリーが消耗します。GPSをオンにして写真を1枚だけ撮って、自宅でこのexif情報を他の写真に追加するのはどうだろうと思いました。

あなたが知っているアプリケーションがこのシナリオで私を助けることができるかどうか知りたいです:gpsに関するexif情報を持つ写真を持っている、この同じgps情報を別の写真のバッチにコピーします。

(Linux / Macソリューションが好きですが、ウィンドウも受け入れます。コマンドラインアプリケーションかどうかは気にしません。)


回答:


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

1
@ SomebodystillusesyouMS-DOS:$@2番目から始まるすべての引数(配列内の項目)。また、不必要な(そして不正確な)ものをたくさん置いていることに気付いたのは4行です。(また、「解決」。)
user1686

1
スクリプトを使用している間tagsFromFile、1行で同じことを行うことができなかったオプションを完全に見逃したという事実について、フェイスデスクを続けます...-user1686
1

1
@grawity:あなたの編集に少し驚きました:
haimg

2
@grawityと@haimg:exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .- -rオプションはディレクトリ(.)に再帰します。そして-gps:all、まあ...それはまさに私が探していたものです。私はあなたを打ち負かしました!:)この投稿を編集してこのスニペットを追加できると思いますがexiftool --help、他のオプションを理解するために読むように人々に警告することを忘れないでください...ありがとうございます!
誰かがまだあなたを使用してMS-DOS

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.