Jak mogę wsadowo zmienić datę wykonania informacji w danych EXIF?

30

Używam F-Spot do zarządzania moimi zdjęciami. W przypadku jednego zestawu zdjęć daty zostały w jakiś sposób pomieszane i wszystkie są oznaczone jako 1 września 2007 r. Chciałbym zmienić informacje o datach na inną datę. W jaki sposób mogę to zrobić?

Eugene M.
źródło

Odpowiedzi:

25

jhead jest w stanie to zrobić.

Powiedzmy, że wiesz, że pewne zdjęcie zostało zrobione, 2017-04-19 16:20ale wyświetlana jest bieżąca data, ponieważ 2007-09-01 00:15możesz dostosować wszystkie jpgzdjęcia w folderze do właściwej godziny, wykonując:

jhead -da2017:04:19/16:20-2007:09:01/00:15 *.jpg

Oto fragment instrukcji:

DATE / TIME MANIPULATION:
   -ft        Set file modification time to Exif time
   -dsft      Set Exif time to file modification time
   -n[format-string]
             Rename files according to date.  Uses exif date if present, file
             date otherwise.  If the optional format-string is not supplied,
             the format is mmdd-hhmmss.  If a format-string is given, it is
             is passed to the 'strftime' function for formatting
             In addition to strftime format codes:
             '%f' as part of the string will include the original file name
             '%i' will include a sequence number, starting from 1. You can
             You can specify '%03i' for example to get leading zeros.
             This feature is useful for ordering files from multiple digicams to
             sequence of taking.  Only renames files whose names are mostly
             numerical (as assigned by digicam)
             The '.jpg' is automatically added to the end of the name.  If the
             destination name already exists, a letter or digit is added to
             the end of the name to make it unique.
  -nf[format-string]
             Same as -n, but rename regardless of original name
  -a         (Windows only) Rename files with same name but different extension
             Use together with -n to rename .AVI files from exif in .THM files
             for example
  -ta<+|->h[:mm[:ss]]
             Adjust time by h:mm backwards or forwards.  Useful when having
             taken pictures with the wrong time set on the camera, such as when
             traveling across time zones or DST changes. Dates can be adjusted
             by offsetting by 24 hours or more.  For large date adjustments,
             use the -da option
  -da<date>-<date>
             Adjust date by large amounts.  This is used to fix photos from
             cameras where the date got set back to the default camera date
             by accident or battery removal.
             To deal with different months and years having different numbers of
             days, a simple date-month-year offset would result in unexpected
             results.  Instead, the difference is specified as desired date
             minus original date.  Date is specified as yyyy:mm:dd or as date
             and time in the format yyyy:mm:dd/hh:mm:ss
  -ts<time>  Set the Exif internal time to <time>.  <time> is in the format
             yyyy:mm:dd-hh:mm:ss
  -ds<date>  Set the Exif internal date.  <date> is in the format YYYY:MM:DD
             or YYYY:MM or YYYY

Jeszcze potężniejszą opcją jest ExifTool .

stamtąd
źródło
Niedawno użyłem głowicy do poprawienia i zsynchronizowania znaczników daty / godziny na setkach zdjęć z rodzinnych wakacji, gdzie wszystkie trzy aparaty nieprawidłowo ustawiły dane i czas. Łatwy w użyciu i bardzo przydatny.
Czy M
Wydaje się, że Jhead nie obsługuje typów plików RAW, ale ExifTool tak (np. Canon CR2, Nikon NEF, Sony ARW). Warto to wiedzieć, dla tych z nas, którzy fotografują tylko w formacie RAW lub zarówno w formacie RAW, jak i JPEG.
Samir
Czy jest kompatybilny z Windows 10?
XPMai
@XPMai Nadal działa z systemem Windows 10 - skończyłem z użyciem -ds do moich celów.
alexander7567
3

exiv2 to narzędzie wiersza polecenia do manipulowania danymi exif. Obsługiwane formaty zdjęć to JPEG, Canon CRW i Canon THM. PNG jest tylko do odczytu.

Jeśli chcesz ustawić datę pliku na datę exif, możesz użyć exiv2 z następującą opcją.

-t Ustaw znacznik czasu pliku zgodnie ze znacznikiem czasu utworzenia Exif oprócz zmiany nazwy pliku (przesłania -k). Ta opcja jest używana tylko w przypadku akcji „Zmień nazwę”.

Ludwig Weinzierl
źródło
dzięki! exiv2 jest łatwy w użyciu i szybki. -Tpozwala ustawić znacznik czasu pliku bez zmiany nazwy pliku :)
orzechow
2

Oto czego potrzebowałem

Aby dodać stałe przesunięcie do starej daty

exiv2 ad -a -3:17 *.JPG

Aby zmienić nazwę na %Y%m%d_%H%M%S

exiv2 mv *.JPG

Inne formaty i opcje są określone na stronach podręcznika .

Johu
źródło
1

Możesz wypróbować to bezpłatne narzędzie: Exifer .

splattne
źródło
1
@RandolphWest Proszę zostawić link do komentarza, tylko jeśli ma to sens. Chociaż ta odpowiedź nie jest idealna , wszystko inne można łatwo ustalić, klikając link. Wszystko inne, co może być tutaj zawarte, nie pomoże, jeśli połączona strona zmieni się w jakikolwiek znaczący sposób, ponieważ wtedy oprogramowanie nie będzie już dostępne do pobrania. W rzeczywistości podanie zbyt wielu szczegółów (takich jak pełna lista funkcji) oznacza po prostu, że odpowiedź szybko się utraci aktualność, jeśli zmieni się połączone oprogramowanie.
Daniel Beck
@DanielBeck Fakt, że link w odpowiedzi nie prowadzi już tam, gdzie powinien, jest idealnym przykładem tego, dlaczego odpowiedzi tylko w linkach są bzdurą.
Raphael
@Raphael Proszę ponownie przeczytać mój komentarz, zaczynając od trzeciego zdania. Nic, co można by tutaj wpisać, nie byłoby w stanie naprawić tej odpowiedzi.
Daniel Beck
1

Używam następującego skryptu, aby nadać obrazom kilka kolejnych dat. Mam nadzieję, że to pomoże. Oczekuje, że katalog z obrazami zostanie ponownie zapisany jako argument, tjscript directory_with_images

#!/bin/bash
HOUR=12
MINUTE=0
DATE=2004:06:20
for file in "$1"/*;
do 
    exiv2 -v -M"set  Exif.Image.DateTime $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeDigitized $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeOriginal $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    #sets file timestamp (i.e. filesystem metadata, not image metadata) as well
    exiv2 -v -T "$file"
    if [ $MINUTE = 59 ]; then
        HOUR=$((HOUR + 1))
        MINUTE=0
    else
        MINUTE=$((MINUTE + 1))
    fi
    # this would rename the file as well
    #new_path=`pwd`/new_filename$(printf %02d $HOUR)$(printf %02d $MINUTE).jpg
    #cp "$file" "$new_path"
done
łyk
źródło
0

Zarówno iPhoto, jak i Aperture mają opcję przesunięcia czasowego, ponieważ zazwyczaj znajdujesz się w nowej strefie czasowej lub zegar jest nieprawidłowy. Może pozostawić pliki bez edycji (tylko aktualizuje bazę danych aplikacji) lub edytować pliki. Najwyraźniej F-Spot musi to pożyczyć.

dlamblin
źródło
0

Exiftool: wolny w wierszu poleceń. (Jest napisany w Perlu, więc wyciągnij tam własne wnioski).

Exifer tworzy pusty znacznik lub dwa w plikach, a nie tylko w bloku EXIF. Usunie również niektóre tagi napisane przez inne narzędzia. Ponieważ nie używałem go od ponad roku, nie mogę sprecyzować, które z nich.

Produkty FastStone, imx, są zbyt wolne, aby można je było instalować przez ponad dzień lub dwa.

Mój głos jest na godz. Sugestia Weinzerla: Exiv2.

BZT

SilversleevesX
źródło
0

Picasa 3 , bezpłatne narzędzie do zarządzania zdjęciami od Google, zrobi to i jest przyjemne i szybkie.

W Picasie wybierz menu Widok> Właściwości, aby wyświetlić panel Właściwości.

Wybierz folder zawierający zdjęcia, a pojawią się one jako zbiór miniatur.

Wybierz miniatury, które chcesz zaktualizować. Aby zdecydować, którą aktualizować jako partia, możesz ustawić je wszystkie na tę samą nową datę lub godzinę lub zmienić pierwszą, a cała reszta zostanie przesunięta w czasie o tę samą wartość.

W panelu Właściwości kliknij prawym przyciskiem myszy pole Data kamery, a następnie wybierz Dostosuj datę i godzinę ... z menu kontekstowego. Otworzy się okno dialogowe Dostosuj datę zdjęcia z aktualną datą aparatu dla pierwszego zdjęcia.

Edytuj datę i godzinę kamery zgodnie z wymaganiami. Jeśli chcesz tylko zmienić godzinę rano na godzinę lub odwrotnie, po prostu wybierz część czasu „am” i wpisz odpowiednio „a” lub „p”. Nie trzeba wpisywać całej litery „jestem” lub „pm”.

Istnieją dwie opcje, jeśli wybrano więcej niż jedną miniaturę do aktualizacji: „Ustaw wszystkie daty zdjęć o tę samą wartość” lub „Ustaw wszystkie zdjęcia na tę samą datę i godzinę”. Wybierz, który z nich jest odpowiedni. Następnie kliknij OK.

Daty EXIF ​​wszystkich wybranych zdjęć zostaną zaktualizowane.

SimonTewsi
źródło
Zobacz wcześniejszą odpowiedź @ użytkownika28515, która również sugeruje program Picasa; niestety nie jest już dostępny.
JohnC
Chociaż Picasa nie jest już opracowywana przez Google i usunęła instalator ze swojej witryny, nadal można pobrać ostatnią wersję v3.9. Googling „pobierz picasa 3.9” przyniesie mnóstwo hitów. Jeśli nie chcesz pobierać z przypadkowej witryny, oficjalne pobieranie z Google jest nadal dostępne za pośrednictwem Internet Archive Wayback Machine. Aby uzyskać więcej informacji, zobacz tutaj: sites.google.com/site/picasaresources/Home/Picasa-FAQ/picasa/…
SimonTewsi