Сортировка и переименование изображений по дате в информации EXIF
9
У меня беспорядок в папке с моими фотографиями; Я хочу отсортировать их по дате в информации EXIF и переименовать по дате (например, 001.jpg, 002.jpg и т. Д.).
Как я могу сделать это в Linux? Я использовал ImageMagick для некоторых основных задач массовой обработки (преобразование и изменение размера и т. Д.), Возможно ли использовать его для этой задачи?
В Linux вы можете использовать команду exiftool . По какой-то причине электронное руководство не содержит раздела «ПРИМЕРЫ ПЕРЕИМЕНОВАНИЯ», который дал мне существенную подсказку.
Для файлов только JPG следующий вызов команды должен выполнить эту работу:
'-FileName<CreateDate'говорит exiftool переименовать файл в соответствии с его тегом EXIF CreateDate(вы можете попробовать другие как ModifyDate)
-d '%Y-%m-%d/%H_%M_%S%%-c.%%le'рассказывает, как построить строку имени файла из источника даты " CreateDate" (" %-c" добавит счетчик в случае коллизии файлов, " %le" означает "расширение файла в нижнем регистре")
Примечание . Я использовал « -FileName<...» здесь для переименования файлов и перемещения их в другую папку за один шаг. В руководстве указано, что вы должны использовать -Directory<...синтаксис « » для операций с папками. Это сработало для меня таким образом.
Вы должны потратить некоторое время на чтение руководства по этому мощному инструменту. Может быть, есть еще более короткий путь: D
Самый простой способ - просто импортировать файлы в jbrout ... тогда (необязательно) имена всех файлов могут быть изменены на что-то ориентированное на время. Или вы можете обнаружить, что вам вообще не нужно менять имена (и достаточно jbrout).
В то время как мы находимся в этом, вот тот, который является более стилем "гонзо-программирования", в bashиспользовании exiftoolон может быть освобожден на нескольких каталогах и / или отдельных файлах за один раз. Он пропускает файлы, которые имеют нераспознанные типы пантомимы.
Он переименовывает фотографии с помощью DateTimeOriginalтега EXIF (поэтому результат не является, 001.jpgно 2015-12-22_14:43:15.jpg.
Если есть конфликт имен, применяются порядковые номера: 2015-12-22_14:50:57.1.jpg.
Попробуйте этот бесплатный продукт: AmoK Exif Sorter .
источник
Самый простой способ - просто импортировать файлы в jbrout ... тогда (необязательно) имена всех файлов могут быть изменены на что-то ориентированное на время. Или вы можете обнаружить, что вам вообще не нужно менять имена (и достаточно jbrout).
источник
Я сделал небольшой и не очень оптимизированный скрипт на python, который, по-моему, делает то, что вы намереваетесь:
источник
Чтобы заставить его работать в Debian Lenny, попробуйте это:
источник
В php я сделал что-то вроде этого:
источник
В то время как мы находимся в этом, вот тот, который является более стилем "гонзо-программирования", в
bash
использованииexiftool
он может быть освобожден на нескольких каталогах и / или отдельных файлах за один раз. Он пропускает файлы, которые имеют нераспознанные типы пантомимы.Он переименовывает фотографии с помощью
DateTimeOriginal
тега EXIF (поэтому результат не является,001.jpg
но2015-12-22_14:43:15.jpg
.Если есть конфликт имен, применяются порядковые номера:
2015-12-22_14:50:57.1.jpg
.Может быть полезно: relabel_photo_with_datetimeoriginal.sh
источник