Линукс, Vim, LaTeX, полезные скрипты, визуализация данных, численные расчёты, немного ФП

20090701

Сортировка фото по дате EXIF

На днях и я, и virens почти синхронно написали две заметки об EXIF: как исправить дату EXIF в фото и как добавлять пользовательские теги в raw-файлы. Раз уж тема начата, то поделюсь ещё одним приёмом.

Фотографии я храню, группируя каталоги по годам и по датам съёмки (указывая дату в формате ISO), то есть в архиве путь к альбому у меня примерно такой: photos/2009/20090628 - название альбома/. Очень удобно, потому что обычно один день — одна тема, и даже при алфавитной сортировке каталога альбомы упорядочены хронологически. И такая организация не зависит ни от операционной системы, ни от конкретной программы-каталогизатора.

Однако если на карточке фотографии разных дней — раскидывать их по альбомам вручную утомительно. Поэтому у меня есть ещё и скрипт-сортировщик для внесения фото в архив. Он смотрит на дату в EXIF, создаёт нужные каталоги и помещает в них фото:
#!/bin/sh

ARCHIVE=$HOME/photos

for f in "$@"; do
DT=$(exiftool -s -DateTimeOriginal "$f")
YEAR=$(echo $DT|awk '{print $3;}'|awk -F: '{print $1;}')
ISODAY=$(echo $DT|awk '{print $3;}'|sed 's/://g')
TARGET="$ARCHIVE/$YEAR/$ISODAY"
install -d "$TARGET" && \
install "$f" "$TARGET"
echo "$f -> $TARGET"
done


Запускаю из каталога с фотокарточки:
$ import-photos *

Так можно импортировать и JPEG-и, и RAW. И там, и там EXIF обычно есть.

7 коммент.:

  1. Есть отличный скрипт http://www.sno.phy.queensu.ca/~phil/exiftool/, который умеет это и еще много чего.
    Например так:

    form "yyyymmdd_HHMMSS.ext".
    exiftool "-FileName%lt;CreateDate" -d "%Y%m%d_%H%M%S.%%e" DIR

    можно сложить в один каталог фотографии с разных камер (задав им уникальные суффиксы) и хранить их в хронологическом порядке

    ОтветитьУдалить
  2. kem, так я exiftool и пользуюсь. За ключик -d спасибо, я его как-то проглядел, пригодится.

    ОтветитьУдалить
  3. Мне тут в комментариях, кстати, подбросили идею про EXIF-теги в TIFF файлах. Так как у меня много изображений, результаты обработки которых хранятся в TIF, думаю, будет интересно записывать некоторые данные об условиях обработки в TIF. Может кому ещё пригодится?

    ОтветитьУдалить
  4. Да, пожалуй, было бы интересно прочитать. Заодно и прояснить вопрос, что можно писать в EXIF, что в IPTC, что в XMP. Я так понял, что EXIF — для камеры, а два других для пользователя, но в тонкости не вникал...

    ОтветитьУдалить
  5. Sushkov198528/9/10 21:37

    в тотол командоре можно добавить колонку [=exif.DateOriginal] [=exif.TimeOriginal], затем провести сортировку по ней. Переименовать все фоты используя счетчик в груповом переименовании Ctrl+M.

    ОтветитьУдалить
  6. Sushkov198529/9/10 05:47

    ещё проще (для totol commander):
    кидаешь фоты с нескольких фотиков в одну папку
    выделяешь все файлы
    выбираешь пакетное переименование файлов Ctrl+M и в маске имени пишешь [=exif.DateOriginal] [=exif.TimeOriginal] [=exif.Model]
    названия фоткок принимают вид 12.09.2010 13.43.13 NIKON D5000.JPG. Теперь фотки с разных фотоаппаратов будут стоять в хронологическом порядке

    ОтветитьУдалить
  7. Это не в тему, блог про линукс. ТК тут нет. Но всё равно спасибо — может кому пригодится.

    ОтветитьУдалить