Pull to refresh

Comments 16

офф Было бы еще полезнее извлекать из EXIF координаты места съемки и раскидывать "по адресам" или генерировать kmz для Google Earth c превьюшками.

Дорогой тезка, преогромнейшее тебе спасибо! Именно то, что я давно искал среди монструозных комбайнов, но ленился сделать сам.
Единственно что могу предложить, это заменить cp на ln, чтобы места лишнего не занимать.

Замена cp на ln будет работать только если фотографии находятся на несъемном носителе и их нужно только отсортировать. Но если подключается, к примеру, фотоаппарат или телефон и будут созданы только ссылки на снимки, то при отключении внешнего носителя самих фотографий мы уже не увидим. Да и сцениарий задумывался для переноса фотографий с внешних носителей и сортировки по времени съемки. А для уменьшения размера можно использовать тот же convert, который позволит изменить размер снимка и степень сжатия jpg.

Вот спасибо за спасение моего времени. Крутой скрипт. И хранить я думаю можно уже в webp.

О, я тоже поделюсь bash-скриптом, который нашел много лет назад на каком-то форуме. Суть его работы несколько иная: он сканирует директорию, находит файлы с EXIF и переносит их в директории вида 2022.05.25. Он требует предварительной установки exiftool

#!/bin/bash
echo "Запуск сортировки фотографий из директории /Photo/Unsorted" 
cd "/Photo/Assorted" && exiftool "-Directory<DateTimeOriginal" -r -d "%Y.%m.%d" "/Photo/Unsorted"

Я сам не программист, понимаю как эта магия работает в общих чертах, вначале во второй строке есть напоминалка с путём откуда скрипт будет забирать фотографии. Этот путь нужно прописать в конце скрипта (заменить /Photo/Unsorted на путь к директории на вашей машине, которая будет служить "свалкой" фотографий), а директория из которой запускается скрипт (/Photo/Assorted) это место куда будут складываться фотографии в папки.

Я проверял его работу с *.NEF, *.CR2, *.ORF, *.jpg файлами, работает корректно. Так же он выведет ошибку в консоль, если обнаружит файлы с одинаковыми именами или некорректными полями EXIF.

Для меня такой пайплайн более предпочтителен, т.к. мой стиль работы это отснять несколько флешек, потом свалить всю эту кучу на комп в одну директорию, удалить лишнее и потом отсортировать скриптом.

У каждого задачи отличаются. По поводу exiftool согласен, он требует установки. Но в своем сценарии использовал exiv2, который идет уже предустановленный. Да и обрабатываю я меньше снимков. Относительно много бывает после командировок, но с таким объемом сценарий справляется.

А вот интересно, возможно ли сделать такую тулзу, чтобы она брала данные их GPX трека (который записал старенький GPS трекер garmin) и вшивала данные геолокации в фотографии.

Иногда я выбираюсь поснимать в отдалённые деревеньки и беру с собою трекер, чтобы видеть как ходил.


При условии, что у нас часы на фотоаппарате настроены точно. Насколько сложно будет такое сделать?

Зашить данные геолокации в фотографию можно через exiftool командой.

exiftool -geotag ~/Documents/Travel/.../some_track.gpx *.tif

Если выполнять синхронизацию по времени снимка и времени из трека gpx думаю что такое получится.

Круто, уже сделали умные люди, спасибо!

Да хоть бы и неточно — если знать разницу между временем фотоаппарата и GPS-трекера, то можно указать смещение в уже упомянутом exiftool — оно там задаётся в секундах.
Когда я снимал обычными фотоаппаратами (а не телефоном, как сейчас), заметил, что часы там спешат и через какое-то время уже знал, как быстро в каждом фотоаппарате они убегают — потом просто перед каждым запуском привязки фотографий выставлял нужное смещение. Если считать лень, можно время от времени (ну не каждый день, чё уж) фотографировать навигатор (если там есть экран, где отображаются часы с секундами) и потом уже по этой фотке смотреть разницу между временем фотоаппарата и навигатора.

В скрипте опечатка в имени переменной: SourcekDir (одно объявление и одно использование). В тексте статьи упоминается верно: SourceDir.

Спасибо. Уже исправил.

Такой метод хорошо сочетается с тэг-ориентированноой файловой системой, чтобы искать фотки по тегу, а затем если привинтить распознавание самих фоток и добавлять теги объектов на фото, можно будет искать собаку например=). А если обработать GPS метки, то добавить тег "страна". Идея потенциально бесконечной глубины

Подобные задачи лучше решать уже не в сценарии и не на shell-е. Логичнее написать все сначала, хотя бы на Python. Данный сценарий задумывался как легкая альтернатива тому же digicam, для импорта снимков с внешних носителей и сортировки в фотоальбоме. А поиск, можно конечно прикрутить, лучше выполнять отдельным скриптом.

Sign up to leave a comment.

Articles