Czy istnieje darmowy program (wsadowy) do zmiany daty pliku zdjęcia, aby pasował do EXIF?


39

Chcę określić katalog i pozwolić oprogramowaniu znaleźć wszystkie zdjęcia w tym katalogu i jego podkatalogach, a jeśli zawierają datę / godzinę EXIF, ustawia znacznik czasu ich systemu plików zgodnie z EXIF.


Oczywiście w dzisiejszych czasach
zadałbym

Odpowiedzi:


46

Jest to odwrotność Czy istnieje oprogramowanie, które ustawia daty EXIF ​​na podstawie daty modyfikacji pliku? i jestem pewien, że wszystkie wymienione tam programy będą miały zastosowanie.

ćpun

Spośród nich, dla tego bardzo prostego zadania, główka jest moją sugestią. Na przykład polecenie

jhead -ft *.jpg

ustawia wiązkę plików, tak aby znacznik czasu pliku pasował do EXIF.

jhead with find, do przechodzenia przez podkatalogi

Aby wykonać rekursję do podkatalogów, możesz połączyć ją z findpoleceniem dostępnym w Linux / Unix / Mac (lub Cygwin dla Windows):

find -name '*.jpg' -exec jhead -ft {} +

Lub znaleźć każdego z *.JPG *.JPEG *.jpg *.jpeg ...was, można również spróbować

find -iname '*.jp*g' -exec jhead -ft {} +

Możesz także użyć polecenia find, aby wyświetlić wszystkie pliki, które zostaną ... znalezione, bez wykonywania innych poleceń (takich jak jhead):

find -iname '*.jp*g'

Inne narzędzia

Inne narzędzia, takie jak ExifTool lub Exiv2, są znacznie bardziej wydajne, ale za cenę złożoności. Nigdy nie pamiętam od razu odpowiednich opcji, aby cokolwiek z nimi zrobić i za każdym razem muszę przeglądać dokumentację, ale jhead -ftłatwo jest zapamiętać mnemoniczny „czas naprawy”.

ExifTool

Tylko dla kompletności, choć ja sam zapoznać się z dokumentacją oraz z ExifTool , wykonaj następujące czynności:

exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname

(Usuń, -rjeśli nie chcesz rekurencji, a jeśli to zrobisz, możesz również podać listę plików lub znak zastępczy zamiast directoryname.) I bądź ostrożny z tymi cytatami - jeśli używasz tego w systemie Windows, chcesz "zamiast '.

Exiv2

Z Exiv2 :

exiv2 -T rename *.jpg

Uwaga: z małymi literami -t(lub bez -T) Exiv2 zmieni także nazwę pliku na nową nazwę na podstawie znacznika czasu, co może być bardzo mylące. Exiv2 również nie wykonuje rekurencji.


2
Masz rację, jest odwrotnie, ale nieskończenie bardziej przydatna :)
Itai

jhead jest bardzo przydatny do tego - I do wielu innych operacji na plikach jpg. Zachowaj ostrożność podczas jego używania - jest to niezwykle potężne narzędzie, które może siać spustoszenie w przypadku niewłaściwego użycia. Zalecam użycie go w pliku wsadowym, abyś zawsze robił to, co zamierzałeś, i najpierw przetestuj wynik na zestawie plików testowych.
Russell McMahon,

+1, ale przyznałem sobie odpowiedź ;-) Tak, aby inni w przyszłości mogli znaleźć sposób na zrobienie dokładnie tego, o co prosiłem ...
Mawg

@olibre Tak, to będzie działać na Linux / Unix lub Mac.
mattdm

Zauważyłem, że niektóre przeglądarki zdjęć wyświetlają obrazy (diaporama) tylko w kolejności nazw plików (nie w czasie modyfikacji plików). Wreszcie używam znacznika czasu EXIF, aby ustawić czas pliku ORAZ przedrostek nazwy pliku. Używam polecenia find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Objaśnienia: -name '[0-9][0-9]*'aby zapobiec ponownej zmianie nazwy plików, które mają już prefiks daty ( '[0-9][0-9]aby uwzględnić lata i miesiące). -iname '*.jp*g'można pominąć, ponieważ jheadprzetwarza tylko obsługiwane pliki (tylko pliki JPEG). %fzachować oryginalną nazwę pliku.
olibre

12

Irfanview i jhead zrobią, co chcesz.
Oba za darmo.
Linki do obu poniżej.
jhead jest sterowany z wiersza poleceń lub może być wywoływany przez inne procesy.
Wersja Irfanview może być wywoływana z wiersza poleceń lub wewnętrznie w pakiecie lub na zasadzie plik po pliku.

Przykład poniżej dla Irfanview pokazuje, jak kopiować w obu kierunkach:


Irfanview

Pozwala na zmiany GUI lub wiersza poleceń przesyłania wsadowego lub według daty / godziny pliku z EXIF ​​do specyfikacji pliku lub odwrotnie (bez innych zmian pliku, jeśli jest to pożądane).

Źródło: Bezpłatnie z www.irfanview.com

Jest to o wiele łatwiejsze i szybsze w praktyce po zaledwie kilku zastosowaniach, niż pokazują poniższe instrukcje. np.
Aby przekonwertować datę / czas pojedynczego pliku na wartości EXIF, należy
Shift-J, Alt-F, Enter.
Zrozumienie, dlaczego pierwsze kilka razy trwa dłużej.

Aby to zrobić, dla partii plików SOUNDS kompleks do nauki -
Wymaga: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Lub: T, Ctrl-A, Shift-J, Enter) (daje mniej opcji),
ALE po niewielkim użyciu jest prawie całkowicie intuicyjny - menu prowadzą początkowo do momentu utworzenia ścieżki mózgowej.

GUI na plik

  Options, JPG lossless rotation  (Shift-J)
    Select "Apply original EXIF date/time to new file"
        Consider also selecting other options

wprowadź opis zdjęcia tutaj

GUI, jeden lub wiele plików (w widoku miniatur)

Open Thumbnails view ('File, Thumbnails' or 'T' from Window view
Select images to change EXIF data of 
    usually all in folder -> Ctrl-A
Then: File, 'JPG lossless operations'
    (1) Change EXIF date/time
      "Change EXIF date/time"
        Options are offered to set Date/time to specific setting
        or to move all times back/forwards by selected DHMS amount 
              calculator provided to check result is as desired.                 
     (2) Transfer EXIF date / time to file saved date time
          "Lossless rotation with selected files"  [Shift-J]
          then, as for single file version above
              Select "Apply original EXIF date/time to new file"

wprowadź opis zdjęcia tutaj

Z wiersza poleceń - jest to „obracanie” bez akcji, z wyjątkiem kopiowania daty / godziny z EXIF ​​do daty i godziny pliku. W razie potrzeby można również osiągnąć odwrotność. :

  • i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0,0)

  • Aby skopiować datę / godzinę w przeciwnym kierunku ((specyfikacja pliku do EXIF),
    użyj jak wyżej z (0,0,1,0,0,0,0,0,0)


ćpun

zrobi wszystko, co możesz sobie wyobrazić przy pomocy plików JPEG

Źródło: Bezpłatnie z http://www.sentex.net/~mwandel/jhead/

Używam pliku wsadowego jak poniżej. Możliwe są inne opcje:

  • jhead -ft % 1 .jpg

Mówią: Rzeczy, które jhead może modyfikować w pliku JPEG exif

  • Obrazy w górę w prawo zgodnie ze znacznikiem obrotu za pomocą jpegtran
    Ustaw lub względnie dostosuj wewnętrzne znaczniki czasu exif
    Napraw przesunięcia daty / godziny w dużych partiach obrazów Zmień
    nazwę plików lub znaczników daty zgodnie ze znacznikiem czasu
    exif Przenieś nagłówki exif między obrazami
    Zastąp miniatury wewnątrz nagłówków Exif
    Edytuj jpeg komentarze (ale nie komentarze Exif)
    Usuń sekcje exif lub komentarze z obrazów JPEG
    Utwórz nowy minimalny nagłówek exif zawierający datę i miniaturę

_________________________

Uwaga: sierpień 2016 r .: „Użytkownik anonimowy” poprawnie zasugerował, że jedna sugerowana konwersja nie działała tak, jak powiedziałem. Znacznie dodałem do omawianego obszaru.


Sierpień 2016: „Użytkownik anonimowy” poprawnie zasugerował, że jedna sugerowana konwersja nie działała, jak powiedziałem. Znacznie dodałem do omawianego obszaru.
Russell McMahon

Co z surowymi plikami?
Michael C

@MichaelClark Cieszę się, że zadałeś to pytanie :-). Zauważam, że wydaje się, że wszyscy adresowaliśmy pliki JPG, a nie RAW. Wyobrażam sobie, że byłbyś jedną z bardziej prawdopodobnych osób, które zapytałyby, jak to zrobić z plikami RAW :-).
Russell McMahon,

4

Kolejne narzędzie EXIF ​​z wiersza poleceń, które może zmienić datę ostatniej modyfikacji plików w celu dopasowania do czasu zrobienia zdjęcia, na podstawie metady EXIF ​​w pliku obrazu JPEG:

 exiv2 -T rename somedir/foo*.jpg

Nie martw się, argument polecenia renamejest w porządku i nie szkodzi.
Tyle tylko, że akcja zmiany nazwy pliku jest niewłaściwie używana do tworzenia tylko efektu ubocznego zmiany znacznika czasu.


2

Chociaż naprawdę nie polecam polegać na dacie / godzinie pliku, jeśli chodzi o twoje zdjęcia, możesz użyć bezpłatnego narzędzia o nazwie EXIF Date Changer, aby wsadowo ustawić daty plików wszystkich twoich obrazów JPG. Ustawienie domyślne ustawi zarówno datę utworzenia, jak i datę modyfikacji daty pliku na zrobione zdjęcie.

Powodem, dla którego nie zalecam tego, jest data pliku, którą można łatwo zaktualizować. W przypadku edycji obrazu data modyfikacji jest aktualizowana. Jeśli skopiujesz obraz, otrzyma on nową datę.

O wiele lepszym rozwiązaniem jest zmiana nazwy plików w celu uwzględnienia daty / godziny w samej nazwie pliku. To wciąż pozwala na łatwe sortowanie i działa dobrze z obrazami przechowywanymi na iPhone'ach / Dropbox.

EXIF Data Changer - Ustaw datę pliku według daty wykonania



1

FastStone Image Viewer może to zrobić (używana wersja 4.9) - wystarczy wybrać pliki w okienku miniatur, kliknąć je prawym przyciskiem myszy, wybrać „Narzędzia”> „Zmień znacznik czasu” - wtedy można użyć danych EXIF ​​(z modyfikacjami lub bez) lub użyć w całości niestandardowa stała ręczna data / godzina.


Łał! Nie wiedziałem tego. Używam ich narzędzia do przechwytywania ekranu od lat i nie znalazłem nic lepszego. Nie możesz pobrać ostatniej darmowej wersji tutaj ; Nie potrzebuję żadnych funkcji płatnych. Korzystałem także z ich przeglądarki w przeszłości, ale nie wiedziałem, że to może zrobić.
Mawg

1

Advance Renamer to najlepsze przyjazne dla użytkownika oprogramowanie, które jest bardzo proste.

  1. Przeciągnij i upuść wszystkie zdjęcia do AR (Advance Renamer)

  2. Kliknij (w lewym górnym rogu) Dodaj metodę -> Nowa nazwa

  3. Kliknij jeden z dolnych środkowych obrazów, a zobaczysz przycisk ExifTool, który pokazuje wszystkie metadane, po prostu kliknij atrybut, a otrzymasz tag W tym przypadku jest to<ExifTool:DateTimeOriginal>

  4. Skopiuj i wklej ten w New Name tekstowym można dodać coś przed lub po jak IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal>etc.

  5. Kliknij Start partii (w prawym górnym rogu ). To spowoduje zmianę nazwy wszystkich plików z datą. Np. 2017_12_01 19_10_12 Zawsze dobrze jest mieć oryginalną datę w nazwie pliku, ponieważ atrybuty mogą zostać utracone, ale nazwy plików nie.

  6. Ponownie przeciągnij wszystkie pliki o zmienionych nazwach do AR
  7. Kliknij Nowa metoda -> Znacznik czasu
  8. Zaznacz wszystkie 3 pola wyboru Utwórz, zmodyfikuj, uzyskaj dostęp (dostęp czasami może nie działać, po prostu usuń zaznaczenie, jeśli tak się stanie)
  9. Wybierz FileName Pattern i wklej<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Rozpocznij wsad.
  11. Jesteś dobry. Misja zakończona sukcesem

0

Zasugerowałem to autorowi PhotoRenamer, który odpowiedział ...

PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php

Dodaję przycisk w zakładce „Opcje” na Wstążce. Stamtąd możesz wybrać opcję aktualizacji statusu pliku w czasie.

Nawiasem mówiąc, aby uniknąć użycia maski, dodałem również nowy atrybut maski:% F. Jeśli użyjesz tej prostej maski, nazwa pliku zostanie zmieniona ... z własną nazwą ... Więc nie musisz zmieniać nazwy pliku, dla którego chcesz zaktualizować atrybuty czasu pliku ...


0

To stare pytanie i wygląda na to, że istnieje kilka sugestii, które powinny działać dobrze, ale ta, do której doszedłem, aby rozwiązać problem zamawiania plików po aktualizacji telefonu z Androidem, była taka.

  • Otworzyć okno (po raz pierwszy od wieków)
  • Zainstaluj ExtFS lub coś, co potrafi czytać partycje ext4
  • Skopiuj zdjęcia na dysk twardy z Micro SD
  • Użyj zmieniacza atrybutów ( https://www.petges.lu/home/ ), aby ustawić daty utworzenia / modyfikacji na datę EXIF
  • Uderz kartę z powrotem w telefonie
  • Skopiuj zdjęcia z powrotem do telefonu przez MTP

Może to komuś się przyda.


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.