Существует ли бесплатная программа (пакетная) для изменения даты файла фотографии в соответствии с EXIF?

40

Я хочу указать каталог и заставить программное обеспечение находить все фотографии в каталоге и его подкаталогах, и если они содержат дату / время EXIF, оно устанавливает метку времени их файловой системы в соответствии с EXIF.

Mawg
источник
Конечно, в настоящее время я бы задал этот вопрос о рекомендациях по программному обеспечению - хотя он получил здесь несколько
хороших

Ответы:

47

Это обратная сторона: существует ли какое-либо программное обеспечение, которое будет устанавливать даты EXIF ​​на основе даты изменения файла? , и я уверен, что все перечисленные там программы будут применяться.

jhead

Из них, для этой очень простой задачи, Jhead - мое предложение. Например, команда

jhead -ft *.jpg

устанавливает кучу файлов так, чтобы временная метка файла соответствовала EXIF.

Jhead с find, для прохождения подкаталогов

Чтобы выполнить рекурсию в подкаталоги, вы можете объединить ее с findкомандой, доступной в Linux / Unix / Mac (или Cygwin для Windows):

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

Или найти кого-то из *.JPG *.JPEG *.jpg *.jpeg ...вас также можно попробовать

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

Вы также можете использовать find, чтобы просто показать все файлы, которые будут ... найдены, без выполнения какой-либо другой команды (например, jhead):

find -iname '*.jp*g'

Другие инструменты

Другие утилиты, такие как ExifTool или Exiv2, гораздо более эффективны, но ценой сложности. Я никогда не могу вспомнить, какие правильные варианты сделать что-то с ними, и мне приходится каждый раз просматривать документацию, но jhead -ftэто легко запомнить с помощью мнемонического «исправления времени».

ExifTool

Просто для полноты картины , хотя, я сделал вид в документации, и с ExifTool , сделайте следующее:

exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname

(Удалите, -rесли вы не хотите рекурсию, и если вы это сделаете, вы также можете указать список файлов или шаблон вместо directoryname.) И будьте осторожны с этими кавычками - если вы используете это в Windows, вы хотите "вместо '.

Exiv2

С Exiv2 :

exiv2 -T rename *.jpg

Помните, что в нижнем регистре -t(или без -Tтакового) Exiv2 также переименует файл на новое имя, основанное на отметке времени, что может привести к путанице. Exiv2 также не делает рекурсию.

mattdm
источник
2
Вы правы, это наоборот, но бесконечно полезнее :)
Итай
jhead очень полезен для этого - И для многих других манипуляций с файлами jpg. Будьте осторожны при использовании - это чрезвычайно мощный инструмент, который может нанести определенный ущерб, если его неправильно использовать. Я рекомендую использовать его в командном файле, чтобы вы всегда делали то, что намеревались, и сначала тестировали результат на тестовом наборе файлов.
Рассел МакМэхон
+1, но я наградил себя ответом ;-) Просто так, чтобы другие в будущем могли найти способ сделать именно то, что я просил ...
Mawg
@olibre Да, это будет работать на Linux / Unix или Mac.
Mattdm
Я заметил, что некоторые браузеры картинок представляют (диапораму) картинки только по порядку имен файлов (но не по времени изменения файла). Наконец, я использую метку времени EXIF, чтобы установить время файла И для префикса имени файла. Я использую команду find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Пояснения: -name '[0-9][0-9]*'чтобы снова не переименовывать файлы, уже имеющие префикс даты ('[0-9][0-9] с учетом лет и месяцев). -iname '*.jp*g'может быть пропущен, поскольку jheadобрабатываются только поддерживаемые файлы (только файлы JPEG). %fсохранить оригинальное имя файла.
olibre
12

Irfanview и Jhead будут делать то, что вы хотите.
Оба бесплатные.
Ссылки на оба ниже.
jhead управляется командной строкой или может вызываться другими процессами.
Версия Irfanview может быть вызвана из командной строки или внутри пакета или из файла в файл.

Пример ниже для Irfanview показывает, как копировать в любом направлении:


Irfanview

Позволяет изменять в графическом интерфейсе или командной строке пакетную или файловую передачу даты / времени из EXIF ​​в спецификацию файла или наоборот (без других изменений файла, если это необходимо).

Источник: бесплатно с www.irfanview.com

Это НАМНОГО проще и быстрее на практике после нескольких использований, чем приведенные ниже инструкции. Например,
для преобразования даты / времени отдельного файла в значения EXIF ​​требуются
Shift-J, Alt-F, Enter.
Видя, почему первый раз занимает больше времени.

Чтобы сделать это для пакета файлов SOUNDS, сложных для изучения -
требуется: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(или: T, Ctrl-A, Shift-J, Enter) (дает меньше вариантов)
НО на самом деле это почти полностью интуитивно понятно после небольшого использования - меню ведет вас изначально, пока не сформируется мозговой путь.

GUI, для файла

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

введите описание изображения здесь

GUI, один или несколько файлов (через вид миниатюр)

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"

введите описание изображения здесь

Из командной строки - это «поворот» без действия, за исключением копирования даты / времени из EXIF ​​в файл даты и времени. Противоположность также может быть достигнута при желании. :

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

  • Копировать дату / время в обратном направлении ((спецификация файла в EXIF)
    используйте как указано выше с (0,0,1,0,0,0,0,0)


jhead

будет делать все, что вы можете себе представить с файлами JPEG

Источник: свободный от http://www.sentex.net/~mwandel/jhead/

Я использую командный файл, как показано ниже. Возможны и другие варианты:

  • jhead -ft % 1 .jpg

Они говорят: вещи, которые jhead может изменить в файле exif jpeg

  • Изображения вверх-вправо в соответствии с тегом поворота с помощью jpegtran
    Установить или отрегулировать внутренние временные метки exif.
    Исправить смещения даты / времени в больших пакетах изображений. Переименовать или пометить
    файлы даты в соответствии с временной меткой
    exif. Передать заголовки exif между изображениями.
    Заменить миниатюры внутри заголовков Exif.
    Редактировать jpeg. комментарии (но не комментарии Exif)
    Удаление разделов exif или комментариев из изображений JPEG
    Создайте новый минимальный заголовок exif, содержащий дату и миниатюру

_________________________

Примечание: август 2016: «Анонимный пользователь» правильно предположил, что одно из предложенных преобразований не работает, как я сказал. Я экстенсивно добавил к соответствующей области.

Рассел МакМахон
источник
Август 2016: «Анонимный пользователь» правильно предположил, что одно из предложенных преобразований не работает, как я сказал. Я экстенсивно добавил к соответствующей области.
Рассел МакМэхон
Как насчет сырых файлов?
Майкл С
@MichaelClark Я рад, что вы задали этот вопрос :-). Я отмечаю, что мы все, кажется, обращались к файлам JPG, а не к RAW. Я полагаю, что вы будете одним из наиболее вероятных людей, которые спросят вас, как это сделать с файлами RAW :-).
Рассел МакМахон
4

Просто еще один инструмент командной строки EXIF, который может изменить дату последнего изменения файлов в соответствии со временем съемки, основываясь на метаде EXIF ​​в файле изображения JPEG:

 exiv2 -T rename somedir/foo*.jpg

Не беспокойтесь, аргумент команды renameв порядке и не причиняет вреда.
Просто действие переименования файла используется не по назначению, чтобы создать только побочный эффект изменения метки времени.

Volker Siegel
источник
2

Хотя я действительно не рекомендую полагаться на дату / время файла, когда дело доходит до ваших изображений, вы можете использовать бесплатный инструмент под названием EXIF Date Changer для пакетной установки даты файлов всех ваших изображений JPG. Установка по умолчанию установит дату создания и дату изменения файла для сделанной фотографии.

Причина, по которой я не рекомендую это, заключается в том, что дата файла легко обновляется. Если вы редактируете изображение, измененная дата обновляется. Если вы скопируете изображение, оно получит новую дату.

Гораздо лучшим решением является переименование файлов, чтобы включить дату / время в самом имени файла. Это по-прежнему позволяет легко сортировать и хорошо работает с изображениями, хранящимися на iPhone / Dropbox.

EXIF Date Changer - Установить даты файла для даты взятия

Greg
источник
2

Проверьте мое новое бесплатное программное обеспечение "Photo Date Organizer": http://photodateorganizer.sourceforge.net/

введите описание изображения здесь

killdaclick
источник
1
Со страницы SourceForge: «Принесено вам: killdaclick». Реклама ваших собственных продуктов здесь не запрещена, но вы должны четко указать свою принадлежность.
Филипп Кендалл
@PhilipKendall готово :)
killdaclick
2

FastStone Image Viewer может сделать это (используется версия 4.9) - просто выберите файлы на панели миниатюр, щелкните их правой кнопкой мыши, выберите «Инструменты»> «Изменить метку времени» - тогда вы можете либо использовать данные EXIF ​​(с изменениями или без них), либо использовать все пользовательская фиксированная ручная дата / время.

Kozuch
источник
Вот Это Да! Я сделал, не знаю, что. Я использую их инструмент захвата экрана в течение многих лет и не нашел ничего лучшего. Вы не можете получить последнюю бесплатную версию здесь ; Мне не нужны какие-либо функции для оплаты. Я также использовал их зрителя в прошлом, но не знал, что это может сделать это.
Мауг
1

Advance Renamer - лучшая простая в использовании программа, которая очень проста.

  1. Перетащите все фотографии в AR (Advance Renamer)

  2. Нажмите (вверху слева) Добавить метод -> Новое имя

  3. Нажмите на одно из нижнего среднего изображения, вы увидите кнопку ExifTool, которая показывает все метаданные, просто нажмите на атрибут, и вы получите тег. В этом случае это<ExifTool:DateTimeOriginal>

  4. Скопируйте это и вставьте в текстовое поле Новое имя. Вы можете добавить что-либо до или после, как IMG_<ExifTool:DateTimeOriginal>и DSC_<ExifTool:DateTimeOriginal>т. Д.

  5. Нажмите кнопку « Запустить пакет» ( вверху справа). Это позволит переименовать все ваши файлы с указанием даты, например, 2017_12_01 19_10_12 . Всегда полезно иметь оригинальную дату в имени файла, поскольку атрибуты могут быть потеряны, а имена файлов - нет.

  6. Снова перетащите все переименованные файлы в AR
  7. Нажмите Новый метод -> Отметка времени
  8. Установите все 3 флажка «Создать, изменить, получить доступ» (доступ к ним иногда может не работать, просто снимите флажок, если это произойдет)
  9. Выберите FileName Pattern и вставьте<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Запустить пакет.
  11. Ты в порядке. Миссия выполнена
Шалем Радж
источник
0

Я предложил это автору PhotoRenamer, который ответил ...

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

Я добавляю кнопку на вкладке «Параметры» ленты. Оттуда вы можете выбрать опцию для обновления статуса файла времени файла.

Кстати, чтобы избежать использования маски, я также добавляю новый атрибут маски:% F. Если вы используете эту простую маску, файл переименовывается ... со своим собственным именем ... Таким образом, вы не обязаны переименовывать файл, для которого вы хотите обновить атрибуты времени файла ...

Mawg
источник
0

Это старый вопрос, и похоже, что есть несколько предложений, которые должны хорошо работать, но я пришел к тому, чтобы решить проблему с порядком файлов после обновления телефона Android.

  • Crank открыть Windows (впервые в возрасте)
  • Установите ExtFS или что-то, что может читать разделы ext4
  • Копировать фотографии на жесткий диск с Micro SD
  • Используйте Attribute Changer ( https://www.petges.lu/home/ ), чтобы установить даты создания / изменения в дату EXIF
  • Взломать карту обратно в телефон
  • Скопируйте фотографии обратно на телефон через MTP

Может быть, это будет кому-то полезно.

Triff
источник
-2

Другая бесплатная программа - Google Picasa - вы можете легко изменить дату и время для всех фотографий:

введите описание изображения здесь

введите описание изображения здесь

Хорошая статья об этом: Как изменить дату фотографии в Picasa на «Когда была сделана фотография»

Владислав
источник
2
Как работает это решение? ОП хочет изменить дату файла, чтобы она соответствовала дате EXIF . Это, вероятно, не то, что делает Picasa.
Оливье