Я хочу указать каталог и заставить программное обеспечение находить все фотографии в каталоге и его подкаталогах, и если они содержат дату / время EXIF, оно устанавливает метку времени их файловой системы в соответствии с EXIF.
Я хочу указать каталог и заставить программное обеспечение находить все фотографии в каталоге и его подкаталогах, и если они содержат дату / время EXIF, оно устанавливает метку времени их файловой системы в соответствии с EXIF.
Ответы:
Это обратная сторона: существует ли какое-либо программное обеспечение, которое будет устанавливать даты EXIF на основе даты изменения файла? , и я уверен, что все перечисленные там программы будут применяться.
Из них, для этой очень простой задачи, Jhead - мое предложение. Например, команда
jhead -ft *.jpg
устанавливает кучу файлов так, чтобы временная метка файла соответствовала EXIF.
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 -r '-DateTimeOriginal>FileModifyDate' directoryname
(Удалите, -r
если вы не хотите рекурсию, и если вы это сделаете, вы также можете указать список файлов или шаблон вместо directoryname
.) И будьте осторожны с этими кавычками - если вы используете это в Windows, вы хотите "
вместо '
.
С Exiv2 :
exiv2 -T rename *.jpg
Помните, что в нижнем регистре -t
(или без -T
такового) Exiv2 также переименует файл на новое имя, основанное на отметке времени, что может привести к путанице. Exiv2 также не делает рекурсию.
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
сохранить оригинальное имя файла.
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 может изменить в файле exif jpeg
_________________________
Примечание: август 2016: «Анонимный пользователь» правильно предположил, что одно из предложенных преобразований не работает, как я сказал. Я экстенсивно добавил к соответствующей области.
Просто еще один инструмент командной строки EXIF, который может изменить дату последнего изменения файлов в соответствии со временем съемки, основываясь на метаде EXIF в файле изображения JPEG:
exiv2 -T rename somedir/foo*.jpg
Не беспокойтесь, аргумент команды rename
в порядке и не причиняет вреда.
Просто действие переименования файла используется не по назначению, чтобы создать только побочный эффект изменения метки времени.
Хотя я действительно не рекомендую полагаться на дату / время файла, когда дело доходит до ваших изображений, вы можете использовать бесплатный инструмент под названием EXIF Date Changer для пакетной установки даты файлов всех ваших изображений JPG. Установка по умолчанию установит дату создания и дату изменения файла для сделанной фотографии.
Причина, по которой я не рекомендую это, заключается в том, что дата файла легко обновляется. Если вы редактируете изображение, измененная дата обновляется. Если вы скопируете изображение, оно получит новую дату.
Гораздо лучшим решением является переименование файлов, чтобы включить дату / время в самом имени файла. Это по-прежнему позволяет легко сортировать и хорошо работает с изображениями, хранящимися на iPhone / Dropbox.
Проверьте мое новое бесплатное программное обеспечение "Photo Date Organizer": http://photodateorganizer.sourceforge.net/
FastStone Image Viewer может сделать это (используется версия 4.9) - просто выберите файлы на панели миниатюр, щелкните их правой кнопкой мыши, выберите «Инструменты»> «Изменить метку времени» - тогда вы можете либо использовать данные EXIF (с изменениями или без них), либо использовать все пользовательская фиксированная ручная дата / время.
Advance Renamer - лучшая простая в использовании программа, которая очень проста.
Перетащите все фотографии в AR (Advance Renamer)
Нажмите (вверху слева) Добавить метод -> Новое имя
Нажмите на одно из нижнего среднего изображения, вы увидите кнопку ExifTool, которая показывает все метаданные, просто нажмите на атрибут, и вы получите тег. В этом случае это<ExifTool:DateTimeOriginal>
Скопируйте это и вставьте в текстовое поле Новое имя. Вы можете добавить что-либо до или после, как IMG_<ExifTool:DateTimeOriginal>
и DSC_<ExifTool:DateTimeOriginal>
т. Д.
Нажмите кнопку « Запустить пакет» ( вверху справа). Это позволит переименовать все ваши файлы с указанием даты, например, 2017_12_01 19_10_12 . Всегда полезно иметь оригинальную дату в имени файла, поскольку атрибуты могут быть потеряны, а имена файлов - нет.
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
Я предложил это автору PhotoRenamer, который ответил ...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
Я добавляю кнопку на вкладке «Параметры» ленты. Оттуда вы можете выбрать опцию для обновления статуса файла времени файла.
Кстати, чтобы избежать использования маски, я также добавляю новый атрибут маски:% F. Если вы используете эту простую маску, файл переименовывается ... со своим собственным именем ... Таким образом, вы не обязаны переименовывать файл, для которого вы хотите обновить атрибуты времени файла ...
Это старый вопрос, и похоже, что есть несколько предложений, которые должны хорошо работать, но я пришел к тому, чтобы решить проблему с порядком файлов после обновления телефона Android.
Может быть, это будет кому-то полезно.
Другая бесплатная программа - Google Picasa - вы можете легко изменить дату и время для всех фотографий:
Хорошая статья об этом: Как изменить дату фотографии в Picasa на «Когда была сделана фотография»