Przenieś informacje exif gps z jednego obrazu do drugiego

13

Mam aparat (nie telefon), który wstawia informacje GPS exif na zdjęcia.

Faktem jest: używanie „GPS włączony” cały czas powoduje rozładowanie baterii. Pomyślałem: co powiesz na zrobienie tylko jednego zdjęcia z włączonym GPS-em, a oni w domu dodadzą tę informację exif do innych?

Chciałbym wiedzieć, czy istnieją aplikacje, które znasz, które mogą mi pomóc w tym scenariuszu: mając zdjęcie z informacjami exif o GPS, skopiuj te same informacje GPS do partii innych zdjęć.

(Wolę rozwiązania Linux / Mac, ale akceptuję także Windows. Nie mam nic przeciwko, jeśli jest to aplikacja wiersza poleceń).

Ktoś nadal używa ciebie MS-DOS
źródło

Odpowiedzi:

13

Spójrz na ExifTool . Jest to szwajcarski scyzoryk służący do manipulacji informacjami w Exif, może robić to, czego potrzebujesz, między innymi. Jest to narzędzie wiersza polecenia kompatybilne z Windows / Linux / Mac oraz moduł Perla. Darmowe i otwarte źródło:

Opcja „-tagsFromFile”

Specjalna opcja ExifTool umożliwia kopiowanie znaczników z jednego pliku do drugiego. Składnia wiersza poleceń służąca do tego celu to „-tagsFromFile SRCFILE”. Wszelkie tagi określone po tej opcji w wierszu polecenia są wyodrębniane z pliku źródłowego i zapisywane w pliku docelowym. Jeśli nie określono żadnych znaczników, wszystkie zapisywalne znaczniki są kopiowane. Ta opcja jest bardzo prosta, ale bardzo wydajna. W zależności od formatów plików źródłowego i docelowego niektóre z odczytanych znaczników mogą być niepoprawne w pliku docelowym, w którym to przypadku nie są zapisywane.

Następujące polecenie zmieni wszystkie pliki w bieżącym katalogu i jego dzieci (rekurencyjnie), kopiując wszystkie tagi związane z GPS SOURCE.JPG:

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

Innym sposobem na to jest umieszczenie w skrypcie następujących elementów. Pierwszym przekazanym parametrem powinien być plik, z którego należy skopiować współrzędne GPS, a wszystkie pozostałe parametry to pliki docelowe, które należy zaktualizować:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"
haimg
źródło
2
jhead to kolejne bardzo przydatne narzędzie, które może uzupełniać ExifTool.
MikeyB
1
@ SomebodystillusesyouMS-DOS: Wszystkie argumenty (elementy w $@tablicy) zaczynające się na 2.. Ponadto, teraz są cztery linijki, kiedy zdałem sobie sprawę, że umieszczam tam wiele niepotrzebnych (i niepoprawnych) rzeczy. (Również „rozwiązany”.)
1686
1
Kiedy używasz skryptu, wciąż zastanawiam się nad tym, że całkowicie przegapiłem tagsFromFileopcję, która mogłaby zrobić to samo w jednym wierszu ...
user1686 11.01.12
1
@grawity: Byłem trochę zaskoczony twoją edycją :-)
haimg
2
@grawity i @haimg: exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .- -ropcja powraca do katalogu ( .), a -gps:all... no cóż ... właśnie tego szukałem. Pokonałem cię, grawitacja! :) Myślę, że możesz edytować ten post i dodać ten fragment, ale pamiętaj, aby ostrzec ludzi, aby czytali, exiftool --helpaby zrozumieć inne opcje, które dałem ... dziękuję wszystkim!
Ktoś nadal cię używa MS-DOS
0

Możesz także użyć exiv2 - jest znacznie szybszy i, na przykład, może zapisywać dane exif na obrazach webp (i innych).

exiv2 -PkV --grep GPSL source.jpg | exiv2 -m- destination.webp

To jest przykład z płyty exiv2 .

Adrian Siemieniak
źródło