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

31359
Eugene M

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

28

11 ответов на вопрос

24
therefromhere

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 .

Недавно использовал jhead для исправления и синхронизации меток даты / времени на сотнях фотографий из семейного отпуска, где на всех трех камерах были неправильно установлены данные и время. Прост в использовании и довольно полезен. Will M 13 лет назад 0
Jhead, похоже, не поддерживает типы файлов RAW, но ExifTool поддерживает (например, Canon CR2, Nikon NEF, Sony ARW). Это полезно знать тем из нас, кто снимает только в формате RAW или в формате RAW и JPEG. Samir 9 лет назад 0
Совместимо ли это с Windows 10? XPMai 5 лет назад 0
4

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

К сожалению, это работает только для каждого файла. user46193 10 лет назад 0
@ user46193 обновление: теперь оно работает для любого количества выбранных изображений. urig 8 лет назад 0
3
Ludwig Weinzierl

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

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

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

Спасибо! exiv2 прост в использовании и быстр. `-T` позволяет установить временную метку файла без переименования файла :) orzechow 8 лет назад 0
2
Lazer
Это на самом деле * конвертирует * изображение, а не просто добавляет метаданные правильно? XPMai 5 лет назад 0
2
Johu

Here is what I needed

To add constant offset to old date

exiv2 ad -a -3:17 *.JPG 

To rename into %Y%m%d_%H%M%S

exiv2 mv *.JPG 

Other formats and options are specified in man pages.

1
splattne

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

@RandolphWest Пожалуйста, оставляйте комментарии, только если они действительно имеют смысл. Хотя этот ответ [не идеален] (http://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers), все остальное можно легко определить, нажав кнопку ссылка на сайт. Все остальное, что * может * быть включено сюда, не поможет *, если связанная страница изменится * n каким-либо существенным образом, потому что тогда программное обеспечение больше не будет доступно для загрузки. Фактически, включение слишком большого количества деталей (например, полного списка функций) просто означает, что ответ быстро устареет, если связанное программное обеспечение изменится. Daniel Beck 11 лет назад 1
@DanielBeck Тот факт, что ссылка в ответе больше не ведет туда, куда она должна, является идеальным примером того, почему ответы, содержащие только ссылки, являются дерьмом. Raphael 7 лет назад 0
@ Рафаэль Пожалуйста, перечитайте мой комментарий, начиная с третьего предложения. Ничто из того, что можно здесь указать, не сможет исправить этот ответ. Daniel Beck 7 лет назад 0
1
sup

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

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

0
SilversleevesX

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

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

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

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

BZT

0
SimonTewsi

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

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

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

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

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

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

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

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

Похожие вопросы