|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Привет всем. Шкурный вопрос. Имеется директория с фотками. Снятая разными моделями цифровых мыльниц. Fuji, Canon, Olimpus и д.т. И мобилами. Код: sql 1. 2.
И вобщем есть идея разложить их по каталогам по дате создания. Дату создания - брать из специальных EXIF-тегов. Они хранятся в шапке файла. См.фрагмент под катом. Код: plaintext 1. 2. 3. 4.
Хотелось-бы на выходе получить нечто вроде. Код: sql 1. 2.
В данной задаче я предполагаю что 99% всех фоток это именно jpg-формат. Другие как-то не представлены. Да и соотв проблем с другими не будет в силу их ограниченного количества. Как-то так. Подозреваю что кто-то уже находил готовый софт или что-то делал для себя. Но меня конечно будут интересовать не готовые продукты а некие скрипты или код. В основном чтобы "подпилить под себя". Сделать требуемый формат имени файла и разложить по годам или по месяцам. И добавить доп-инфо к имени. Каким снято фотиком. Вторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов. А потом еще раз. Реализация - на любом ЯП. С++/Python e.t.c. Конешно хотелось-бы чтоб на Windows и на Linux летало. Go-go кодить! У меня пока еще своего решения нет. Так что... gogo! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 00:29 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Лень... А задача вроде плёвая :) ставим какой-нить exiv2, например, и дальше дело техники: осталось распарсить строку и подставить полученные переменные по формату (то есть никакой фантазии, строго рутинная работа по парсингу строки и подгонке шаблонов). Да и у любого языка есть своя собственная либа для работы с exif тэгами :) Так что и тут всё просто. Насчёт вторичной задачи, при такой ошибке копирования у каждой системы есть свои правила изменения имени (у меня вот добавляется "(копия)" к названию)... по указанному шаблону очень легко отслеживаются и удаляются все дубли, если названия исходных файлов однотипны, как у камеры, которая их генерирует автоматически. так что rm с нужным шаблоном решит проблему в 2 секунды :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 04:12 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Посмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато... Gogo кодить! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 09:29 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonВторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов. А потом еще раз.Программ поиска (и удаления) дубликатов - аки грязи. maytonХотелось-бы на выходе получить нечто вроде. Поиск по словам "export exif data to text file". Потом сливаешь любой подходящей тулзой в текстовый файл полное имя файла, размер, дату-время, прочее что надо. Обрабатываешь полученный список и строишь батч-файл переименования (элементарно делается в Excel). Выполняешь. Профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 09:35 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Если дата создания файла совпадает с датой съемки (обычно совпадает если позже фотка не корректировалась), то можно по дате создания распихать по подпапкам. Дату создания любым ЯП элементарно получить. ИМХО имя файла нет смысла менять, оставь как есть, думаю ты не часто снимал разными девайсами в один день. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 09:48 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
mayton, Exiftool адаптируй ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 09:53 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Насчёт дедупликации - каков критерий равенства каков? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 10:01 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Какой критерий? Поскипаем пока делупликацию. Залача-прим - разложить фотки по датам. При этом количество на входе и на выходе должно совпалать. Файлы без exif даты - сложить в отдельный folder (unsorted). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 10:48 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
В общем-то тут и программу писать не надо. Совсем. Поиск дубликатов - Auslogics Duplicate File Finder. Переименование файлов кучей, Excel + Total Commander. Для отображения EXIF-информации в Total Commander есть плагин, что ещё больше упрощает задачу. P.S. Конкретно EXIF-плагин сам не использовал, всё остальное работает - быстро и удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 11:47 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonПосмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато... Gogo кодить! ну это не мешает путем перенаправления ввода\вывода организовать конвеер в цикле ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 12:21 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
KpoxaPymКонкретно EXIF-плагин сам не использовал Отлично работает. Нужен только TC+плагин, ничего другого не требуется. Только нужно иметь ввиду ряд нюансов. Например в EXIF дата/время могут быть в разных полях и на разных фотоаппаратах эта логика отличается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 12:45 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonВторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов. Если это бинарные копии файлов, то это легко решается тем же TC. Способов много. Например прямо в диалоге поиска файлов можно включить поиск дубликатов по полю плагина [=wdhash.CRC32], но это будет очень медленно. Намного быстрее будет переименовать файлы с помощью плагина (в CRC32, например) и делать поиск дубликатов по совпадению части имени файла и размера. Если же нужен поиск идентичного содержимого, то тут надежного решения нет. Из бесплатных лучшие результаты я получил в VisiPics, но все равно нужно просматривать найденные дубли самому, часто ошибается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 12:52 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Вообще я для сортировки фотографий использую следующий шаблон: /photos/{category}/{year} {album}/{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model}) Здесь: {category} - категория фотографий (личные, путешествия, технические), задается вручную {year} - год съемки {album} - в зависимости от категории место съемки или наименование события {ymd} - дата в формате ГГГГММДД {hm} - время в формате ЧЧММ (без секунд) {####} - порядковый номер фотографии в альбоме {crc32} - контрольная сумма в нижнем регистре {tag} - пометка для случаев специальной съемки (hdr, burst и т.п.) {device} - производитель фотоаппарата {model} - модель фотоаппарата Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался. Дата/время в начале файла позволяет сортировать в порядке съемки. Порядковый номер исключает появление разных файлов с одним именем. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 13:03 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonПосмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато... Gogo кодить! Не вижу проблемы :) Разумеется вместо того, чтобы показывать exif данные, их можно обработать и пересохранить файлик bashfor file in ./*.jpg; do exiv2 $file; done ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 13:18 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
KpoxaPym, нету у меня тотал коммандер. У меня - Linux. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:13 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Вообще я для сортировки фотографий использую следующий шаблон: /photos/{category}/{year} {album}/{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model}) Здесь: {category} - категория фотографий (личные, путешествия, технические), задается вручную {year} - год съемки {album} - в зависимости от категории место съемки или наименование события {ymd} - дата в формате ГГГГММДД {hm} - время в формате ЧЧММ (без секунд) {####} - порядковый номер фотографии в альбоме {crc32} - контрольная сумма в нижнем регистре {tag} - пометка для случаев специальной съемки (hdr, burst и т.п.) {device} - производитель фотоаппарата {model} - модель фотоаппарата Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался. Дата/время в начале файла позволяет сортировать в порядке съемки. Порядковый номер исключает появление разных файлов с одним именем. Спасибо. Хороший шаблон. Но у меня будет попроще. Например категория мне не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:21 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Dima TЕсли дата создания файла совпадает с датой съемки (обычно совпадает если позже фотка не корректировалась), то можно по дате создания распихать по подпапкам. Дату создания любым ЯП элементарно получить. ИМХО имя файла нет смысла менять, оставь как есть, думаю ты не часто снимал разными девайсами в один день. Я-бы файл тоже сделал уникальным. Бывает тот-же регистратор фоткает файлы с ограниченным циклом. И в серии разных фоток будет две с одним номером например. И потом эти два одинаковые файла уже почтой не переслать. В один фолдер - не скопировать. Вобщем.. имя файла тоже должно быть уникальным. Вариант - сквозная нумерация для одной даты. Или контрольная сумма как товарищ фотограф делает там у себя. Но мне контрольная сумма кажется слишком уж большим балластом для глаз. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:29 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonБывает тот-же регистратор фоткает файлы с ограниченным циклом. И в серии разных фоток будет две с одним номером например. И потом эти два одинаковые файла уже почтой не переслать.Вот как раз при отправке - никаких проблем с одноимёнными вложениями. При получении - да, возникают сложности. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:32 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался. По поводу уникальности. Есть персептивный хеш. Но это лучше отдельным топиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:34 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
crc32 вполне достаточен. У меня на 20 ГБ фотографий коллизий не было, при этом он быстро считается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 14:54 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.crc32 вполне достаточен. У меня на 20 ГБ фотографий коллизий не было, при этом он быстро считается. У меня часто было такое. Хотел кода-то зааплодить фотку. Или приаттачить. Не влезла по размеру. Сделал scale. Сохранил. Лежат две фотки. Один контент. Разный размер и контрольная сумма. Но ладно... я это подниму отдельным топиком. Типа умная дедупликация. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 15:13 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonРазный размер и контрольная сумма. Так в том и смысл сохранять crc32 в имени файла, чтобы при изменении файла он все равно сохранялся оригинальный. Иначе нужно использовать инструменты сравнения по содержимому, а они медленные и неточные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 17:21 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.maytonРазный размер и контрольная сумма. Так в том и смысл сохранять crc32 в имени файла, чтобы при изменении файла он все равно сохранялся оригинальный. Иначе нужно использовать инструменты сравнения по содержимому, а они медленные и неточные. Инструменты сравнения могут работать единоразово. После скидывания содержимого фотика. Или слияния архивов и прочее. Да мне вообще-то пофиг сколько они будут работать. Есть коробочная утилита fdupes для Linux. Она работает на уровне скорости дискового чтения файлов. Временная сложность - линейна от объема файлов. Но мой интерес даже не в том быстро она работает или медленно. А просто в том чтобы убедится что каталог фоток имеет относительный порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 17:27 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Я не про fdupes и прочие бинарные утилиты. Если на картинке изменить exif, то такие утилиты посчитают этот файл уникальным. Для поиска дубликатов фотографий нужно использовать специальные утилиты, которые сравнивают содержимое (контент), например VisiPics. А они медленные и неточные, и как следствие интерактивные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 17:35 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Я не про fdupes и прочие бинарные утилиты. Если на картинке изменить exif, то такие утилиты посчитают этот файл уникальным. Для поиска дубликатов фотографий нужно использовать специальные утилиты, которые сравнивают содержимое (контент), например VisiPics. А они медленные и неточные, и как следствие интерактивные. Давайте разделим 2 направления. 1) Дедупликация контрольной суммой (crc32/md5). Полностью автоматически позволяет убрать дубликаты. Здесь - вопросов вообще нет. Решенная уже задача. 2) Дедубликация на основе персептивного хеша - работает в режиме диалога. Или в режиме рекомендаций, всего-лишь предлагая пользователю ознакомится с кандидатами на удаление. Я так думаю. По поводу изменения 1 exif-тега. Такой кейс мне представляется сомнительным. Я никогда в жизни этого не делал и не понимаю ценности этого действия. Предполагаю что 99.9% мои файлы что я фоткал мыльницами никогда не меняли своих тегов кроме тех случаев когда я редактировал размер-яркость-контраснтность но это вообще выходит за рамки пункта (1) и соотв нет вопросов. С точки зрения контрольной суммы - это вообще другой файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 17:51 |
|
|
start [/forum/topic.php?fid=16&msg=39773202&tid=1339639]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 382ms |
0 / 0 |