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ń).


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}"

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 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.