Jak uzyskać / edytować metadane EXIF ​​wielu zdjęć?

30

Wczoraj spotkałem duży problem.

Wyjąłem stary aparat cyfrowy i zacząłem go używać bez ustawiania bieżącej daty i godziny.

Wszystkie kliknięte zdjęcia mają teraz datę 01 stycznia 2009 r

Chcę zmienić datę i godzinę (i inne metadane obrazu EXIF) wielu obrazów.

Proszę polecić oprogramowanie, które może przetwarzać wiele obrazów jednym kliknięciem / przejściem.

IM-JM
źródło

Odpowiedzi:

31

Ponieważ masz już rozwiązanie GUI, pomyślałem, że wspomnę, że istnieje również kilka sposobów zmiany danych EXIF ​​w wierszu poleceń; dwa przydatne narzędzia to exiftooli jhead, które można zainstalować za pomocą tego polecenia:

sudo apt-get install libimage-exiftool-perl jhead

Oba te narzędzia umożliwiają obsługę wielu plików jednocześnie, ale możesz wykonać kopię zapasową plików, zanim zaczniesz manipulować danymi exif.

jhead

Aby zmienić datę i czas EXIF ​​danych w wielu plikach „jednym kliknięciem”, możesz otworzyć terminal i zrobić cdfolder ze zdjęciami i uruchomić:

jhead -ts2012:10:29-10:28:03 *.jpg

-tsPrzełącznik pozwala określić wymagane datę i czas i zapisać go do nagłówka exif wszystko za jednym zamachem: format określony tutaj jest YYYY:MM:DD-HH:MM:SS.

Jeśli chcesz tylko zmienić datę bez określania godziny, użyj zamiast tego:

jhead -ds2012:10:29 *.jpg

Możesz to zrobić tylko dla jednego zdjęcia zrobionego konkretnym aparatem, jeśli na przykład określono, -model "D70"ale ta opcja musi być najważniejsza w przetwarzaniu i musi być czymś w rodzaju „D70”, „S100”, a nie „Nikon D70” „. Spójrz na odczyt exif ze zdjęć, aby uzyskać prawidłowy numer modelu.

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

Aby uzyskać więcej informacji, zobacz man jhead.

exiftool

To narzędzie ma więcej opcji niż jhead i jest bardzo wszechstronne, jak zauważono na oficjalnej stronie . Opracowano graficzną nakładkę na exiftool , ale obecnie jest ona na wczesnym etapie, ale wygląda obiecująco.

Opcje przesunięcia daty i godziny oraz dostępne formaty są dość obszerne, jak wyszczególniono tutaj w tym przydatnym pliku pdf . Podobnie jak w przypadku jhead , możesz zdecydować o zmianie godziny i daty lub po prostu daty. Ten przykład zmienia zarówno datę, jak i godzinę:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

Powyższy przykład po prostu ustawia szczególną wartość daty i godziny zdjęć; jeśli chcesz po prostu przesunąć je wszystkie o określony indeks czasu, na przykład o trzy lata do przodu, możesz użyć:

exiftool -AllDates+="3:0:0 0" *.jpg

Funkcja zmiany biegów może być bardzo przydatna, jeśli, tak jak to się stało, wszystkie twoje zdjęcia są nagle oznaczone jako 2009, nawet jeśli zostały zrobione w 2012 roku. Upewnij się, że używasz znaku plus lub minus przed znakiem równości (jak w -AllDates-=lub -AllDates+=), w zależności na temat tego, co chcesz osiągnąć po przypisaniu wymaganego indeksu czasu, w przeciwnym razie wynikowe dane EXIF ​​nie będą zgodne z oczekiwaniami.

exiftoolbędzie utworzyć kopię zapasową przed edycją oryginału dane EXIF dodawanie oryginał na końcu nazwy pliku.

exiftoolobsługuje więcej typów obrazów niż te, jheadktóre działają tylko w przypadku plików JPEG.

Aby uzyskać więcej informacji, zobacz man exiftool.

Pablo A.
źródło
1
+1, Znakomita odpowiedź Mik. Jest to o wiele bardziej elastyczne niż używanie Shotwell.
Tom Brossman
Natknąłem się na tę odpowiedź, ponieważ zastanawiałem się, jak dodać dane EXIF ​​do obrazów jpg, które nie miały go w ogóle. W tym celu uznałem, że potrzebuję jhead -mkexif -ts<date>.
Ian
jhead był po prostu świetny w użyciu.
Harald
1. Pamiętaj, że niestety standard EXIF nie zawiera informacji o strefie czasowej . 2. Zamiast gwiazdką można użyć rozwijanie nawiasów: DSCN{120..345}.jpg. 3. Aby zmienić znacznik czasu pliku, używając innego jako odniesieniatouch -r ~/path/reference.jpg *.jpg
Pablo A
21

Zmiana daty i godziny jest łatwa w Shotwell. Wybierz zdjęcia, które chcesz dostosować, i przejdź do menu w następujący sposób:

menu shotwell

Wybierz Zdjęcia / Dostosuj datę i godzinę. To wywołuje takie menu:

dostosuj datę i godzinę

Jeśli wszystkie zdjęcia są wyłączone w tej samej wysokości, możesz zrobić je wszystkie za jednym razem. Jeśli użyłeś więcej niż jednego aparatu i były one wyłączone w różnych ilościach, musisz je podzielić i wykonać każdą partię osobno.

Wyjaśniająca to strona pomocy Shotwell jest tutaj .

Tom Brossman
źródło
To jest właściwy sposób, aby to zrobić z datą i godziną. Dziękuję bardzo za udostępnienie.
Geppettvs D'Constanzo
Opcje górnego menu Shotwell nie są tutaj wyświetlane. Czy to błąd Xenial Xerusa?
Leonardo Castro
3

To pytanie dotyczyło EXIF, ale metadane obrazu mają co najmniej trzy standardy, które można dołączyć do obrazów, EXIF, XMP i IPTC. Wiele programów fotograficznych będzie pisać we wszystkich tych formatach, ale nie we wszystkich, dlatego ważne jest, aby sprawdzić wszystkie.

Przekonałem się, że exifto dobre narzędzie, ale exiv2lepsze. Porównaj exif:

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

Do exiv2:

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

Duża różnica polega na tym, że słowa kluczowe w XMP i IPTC w ogóle nie są w EXIF, więc gdybym tylko tam spojrzał, pomyślałbym, że nie ma słów kluczowych.

Wydałem polecenie, exiv2 -p a my-image.jpgponieważ wyświetla wszystkie trzy formy metadanych. Wyjście -p aspowoduje wyświetlenie danych EXIF.

mlissner
źródło