Как мне пакетно изменить дату получения информации в данных EXIF?

Я использую F-Spot для управления своими изображениями. Для одного набора изображений даты каким-то образом перепутались, и все они помечены как 1 сентября 2007 года. Я хотел бы изменить дату получения информации на другую дату. Как я могу это сделать?

13 ответов

Решение

Jhead способен сделать это.

Допустим, вы знаете, что определенная фотография была сделана на 2017-04-19 16:20 но текущая дата отображается как 2007-09-01 00:15Вы можете настроить все jpg Картинки в папке к нужному времени, выполнив:

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

Вот выдержка из руководства:

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

Еще более мощный вариант - ExifTool.

В Picasa это встроено. Инструменты => Настроить дату и время....

exiv2 - инструмент командной строки для манипулирования данными exif. Поддерживаемые форматы изображений: JPEG, Canon CRW и Canon THM. PNG только для чтения.

Если вы хотите установить дату файла в exif date, вы можете использовать exiv2 со следующей опцией.

-t Установить временную метку файла в соответствии с временной меткой создания Exif в дополнение к переименованию файла (переопределяет -k). Эта опция используется только с действием "переименовать".

Вот что мне нужно

Добавить постоянное смещение к старой дате

exiv2 ad -a -3:17 *.JPG

Переименовать в %Y%m%d_%H%M%S

exiv2 mv *.JPG

Другие форматы и опции указаны на страницах руководства.

Установите самую старую дату из метаданных Exif или имени файла.

Шаг 0 — установите exiftool снизу

Установка ExifTool

Шаг 0.1

Сохраните самый старый_datetime_config в домашней папке.C:\Users\YOURUSERNAMEили в вашем домашнем каталоге~или в той же папке, куда вы установили exiftool. Этот шаг важен для успеха следующих шагов.

Вы можете найти их в скрипте здесь, но я обнаружил, что запуск команд в папке pic, которые я упомянул в приведенных ниже параметрах, намного быстрее, чем запуск их через скрипт Python exif-scripts/setToOldestDate.py. Для более быстрой обработки вы можете запустить эти команды непосредственно в PowerShell из папки pic, которую вы планируете.

Если вы используете WSL, запустите эти команды из poweshell, а не из WSL, поскольку чтение и запись файловой системы из виртуализации Windows взорвет вашу оперативную память и замедлит процесс до полной остановки.

Обратите внимание, что эти сценарии рекурсивны и хорошо влияют на все подпапки.

Ну… а теперь — выбирайте варианты:

Вариант 1. Если вам нужно выбрать дату из имени файла.

Это довольно гибкий и нечеткий анализатор из exiftool, но если вы хотите, чтобы он был абсолютно уверен, вы можете переименовать файл, включив в него yyyymmdd_hhmmss, и удалить все остальные числа перед ним (после - все в порядке).

      exiftool "-FileModifyDate<filename" −overwrite_original -S -m -progress -ee -q -q ./

Вариант 2 – установить для всех дат самую старую дату

      exiftool -overwrite_original "-FileModifyDate<OldestDateTime" "-ModifyDate<OldestDateTime" "-DateTimeOriginal<OldestDateTime" "-CreateDate<OldestDateTime" "-GPSDateTime<OldestDateTime" -S -m -progress -ee -q -q ./

Вариант 3 — задать имя файла в PXL_ггггммдд_ччммсс-[номер-если-конфликт].расширение

      exiftool "-filename<OldestDateTime" -d PXL_%Y%m%d_%H%M%S%%-c.%%e -S -m -ee -progress -q -q ./

чтобы отправить все файлы в текущий каталог, используйте

      adb push -a . /sdcard/DCIM/Camera/

-a — сохранить атрибуты.

⌛ Обновите Android Media Store.

В качестве последнего шага вам необходимо обновить базу данных медиа-хранилища Android, чтобы сообщить Google Photos, какие новые файлы нужно резервировать. В настоящее время он не всегда обнаруживается автоматически, так зачем этого ждать. Установите Refresh MediaStore и запустите его после завершения загрузки adb с телефона. Затем вы можете открыть Google Фото и увидеть, что резервное копирование начинается.

Вы можете попробовать этот бесплатный инструмент: Exifer.

Я использую следующий скрипт, чтобы дать изображениям несколько последовательных дат. Надеюсь, поможет. Ожидается, что каталог с изображениями будет обработан как аргумент, т.е. script 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

iPhoto и Aperture имеют опцию сдвига во времени, например, когда вы находитесь в новом часовом поясе, или часы работают неправильно. Он может либо оставить файлы неотредактированными (только обновляя базу данных приложения), либо редактировать файлы. Очевидно, что F-Spot необходимо позаимствовать это.

Кроме того, Shotwell Photo Manager в Ubuntu (текущий менеджер фотографий по умолчанию на версии 13.10) имеет меню настройки даты / времени для выбранных фотографий. В сочетании с последним фильтром импорта вы можете легко настроить импортированные фотографии с камеры с неправильной датой и временем.

Picasa 3, бесплатный инструмент для управления фотографиями от Google, сделает это быстро и красиво.

В Picasa выберите меню "Вид"> "Свойства" для отображения панели "Свойства".

Выберите папку с фотографиями, и они появятся в виде коллекции миниатюр.

Выберите эскизы, которые вы хотите обновить. Чтобы решить, какие из них обновлять как пакет, вы можете либо установить для них одинаковую новую дату-время, либо изменить первое, а все остальные будут смещены во времени на ту же сумму.

В панели "Свойства" щелкните правой кнопкой мыши поле "Дата камеры", затем выберите "Настроить дату и время" в контекстном меню. Откроется диалоговое окно "Настроить дату фото", показывающее текущую дату камеры для первой фотографии.

Отредактируйте дату и время камеры, как требуется. Если вы просто хотите изменить am на pm или наоборот, просто выберите часть времени am и введите "a" или "p" в зависимости от ситуации. Нет необходимости вводить целые слова "am" или "pm".

Существует два варианта, если вы выбрали более одного эскиза для обновления: "Отрегулировать все даты фотографий на одну и ту же сумму" или "Установить все фотографии на одну и ту же дату и время". Выберите тот, который подходит. Затем нажмите ОК.

Даты EXIF ​​всех выбранных фотографий будут обновлены.

Для всех, кто использует Windows 10: массовое изменение определенных метаданных встроено в Проводник.

  • Выберите фотографии, которые вы хотите обновить, в проводнике.
  • Щелкните правой кнопкой мыши выбранную фотографию и откройте «Свойства».
  • Предполагая, что вы выбрали только фотографии, вкладка «Подробности» позволит вам внести изменения.

Это работает только для присвоения одного и того же значения (например, даты съемки) каждой выбранной вами фотографии.

Exiftool: медленно в командной строке. (Это написано на Perl, поэтому сделайте свои собственные выводы там.)

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

Программа FastStone, imx, слишком медленная, чтобы ее можно было установить более одного или двух дней.

Мой голос за Hr. Предложение Вайнцерла: Exiv2.

BZT

Другие вопросы по тегам