powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вторничный фотографЪ
25 сообщений из 69, страница 1 из 3
Вторничный фотографЪ
    #39773098
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Шкурный вопрос.

Имеется директория с фотками. Снятая разными моделями цифровых мыльниц. Fuji, Canon, Olimpus и д.т. И мобилами.
Код: sql
1.
2.
DCS_0118.jpg
IMG_9234.jpg



И вобщем есть идея разложить их по каталогам по дате создания. Дату создания - брать из специальных
EXIF-тегов. Они хранятся в шапке файла. См.фрагмент под катом.

Код: plaintext
1.
2.
3.
4.
[ Exif IFD0 ] Date/Time = 306 (2013:08:29 21:09:06)
[ Exif IFD0 ] YCbCr Positioning = 531 (Datum point)
[ Exif IFD0 ] Related Image Width = 4097 (3264)
[ Exif IFD0 ] Related Image Height = 4098 (2176)



Хотелось-бы на выходе получить нечто вроде.

Код: sql
1.
2.
2013/01-20/2013-01-20_16.74_Canon_3264x2176.jpg
2010/03-30/2010-03-30_00.23_Fuji_2048x1536.jpg



В данной задаче я предполагаю что 99% всех фоток это именно jpg-формат. Другие как-то не представлены.
Да и соотв проблем с другими не будет в силу их ограниченного количества. Как-то так.

Подозреваю что кто-то уже находил готовый софт или что-то делал для себя. Но меня конечно будут интересовать
не готовые продукты а некие скрипты или код. В основном чтобы "подпилить под себя". Сделать требуемый
формат имени файла и разложить по годам или по месяцам. И добавить доп-инфо к имени. Каким снято
фотиком.


Вторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов.
А потом еще раз.

Реализация - на любом ЯП. С++/Python e.t.c. Конешно хотелось-бы чтоб на Windows и на Linux летало.

Go-go кодить! У меня пока еще своего решения нет. Так что... gogo!
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773115
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лень...

А задача вроде плёвая :) ставим какой-нить exiv2, например, и дальше дело техники: осталось распарсить строку и подставить полученные переменные по формату (то есть никакой фантазии, строго рутинная работа по парсингу строки и подгонке шаблонов). Да и у любого языка есть своя собственная либа для работы с exif тэгами :) Так что и тут всё просто.

Насчёт вторичной задачи, при такой ошибке копирования у каждой системы есть свои правила изменения имени (у меня вот добавляется "(копия)" к названию)... по указанному шаблону очень легко отслеживаются и удаляются все дубли, если названия исходных файлов однотипны, как у камеры, которая их генерирует автоматически. так что rm с нужным шаблоном решит проблему в 2 секунды :)
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато...

Gogo кодить!
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773164
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов.
А потом еще раз.Программ поиска (и удаления) дубликатов - аки грязи.
maytonХотелось-бы на выходе получить нечто вроде.
Поиск по словам "export exif data to text file". Потом сливаешь любой подходящей тулзой в текстовый файл полное имя файла, размер, дату-время, прочее что надо. Обрабатываешь полученный список и строишь батч-файл переименования (элементарно делается в Excel). Выполняешь. Профит.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773169
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если дата создания файла совпадает с датой съемки (обычно совпадает если позже фотка не корректировалась), то можно по дате создания распихать по подпапкам. Дату создания любым ЯП элементарно получить.

ИМХО имя файла нет смысла менять, оставь как есть, думаю ты не часто снимал разными девайсами в один день.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773175
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Exiftool адаптируй
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773181
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчёт дедупликации - каков критерий равенства каков?
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773202
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой критерий?

Поскипаем пока делупликацию.

Залача-прим - разложить фотки по датам. При этом количество на входе и на выходе должно совпалать.
Файлы без exif даты - сложить в отдельный folder (unsorted).
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773253
KpoxaPym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то тут и программу писать не надо. Совсем.

Поиск дубликатов - Auslogics Duplicate File Finder.

Переименование файлов кучей, Excel + Total Commander.

Для отображения EXIF-информации в Total Commander есть плагин, что ещё больше упрощает задачу.

P.S. Конкретно EXIF-плагин сам не использовал, всё остальное работает - быстро и удобно.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773273
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПосмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато...

Gogo кодить!
ну это не мешает путем перенаправления ввода\вывода организовать конвеер в цикле
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773285
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpoxaPymКонкретно EXIF-плагин сам не использовал
Отлично работает. Нужен только TC+плагин, ничего другого не требуется.
Только нужно иметь ввиду ряд нюансов. Например в EXIF дата/время могут быть в разных полях и на разных фотоаппаратах эта логика отличается.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773293
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВторичная задача - дедупликация. Хм... тоже немаловажно. Бывает - промахнешся и скопируешь тонну файлов.
Если это бинарные копии файлов, то это легко решается тем же TC.
Способов много. Например прямо в диалоге поиска файлов можно включить поиск дубликатов по полю плагина [=wdhash.CRC32], но это будет очень медленно. Намного быстрее будет переименовать файлы с помощью плагина (в CRC32, например) и делать поиск дубликатов по совпадению части имени файла и размера.
Если же нужен поиск идентичного содержимого, то тут надежного решения нет. Из бесплатных лучшие результаты я получил в VisiPics, но все равно нужно просматривать найденные дубли самому, часто ошибается.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773299
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я для сортировки фотографий использую следующий шаблон:

/photos/{category}/{year} {album}/{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model})

Здесь:
{category} - категория фотографий (личные, путешествия, технические), задается вручную
{year} - год съемки
{album} - в зависимости от категории место съемки или наименование события
{ymd} - дата в формате ГГГГММДД
{hm} - время в формате ЧЧММ (без секунд)
{####} - порядковый номер фотографии в альбоме
{crc32} - контрольная сумма в нижнем регистре
{tag} - пометка для случаев специальной съемки (hdr, burst и т.п.)
{device} - производитель фотоаппарата
{model} - модель фотоаппарата

Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался.
Дата/время в начале файла позволяет сортировать в порядке съемки.
Порядковый номер исключает появление разных файлов с одним именем.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773311
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПосмотрел exiv2. Эта консольная тулза работает с 1 файлом. Маловато...

Gogo кодить!

Не вижу проблемы :) Разумеется вместо того, чтобы показывать exif данные, их можно обработать и пересохранить файлик
bashfor file in ./*.jpg; do exiv2 $file; done
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773366
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpoxaPym, нету у меня тотал коммандер. У меня - Linux.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773375
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Вообще я для сортировки фотографий использую следующий шаблон:

/photos/{category}/{year} {album}/{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model})

Здесь:
{category} - категория фотографий (личные, путешествия, технические), задается вручную
{year} - год съемки
{album} - в зависимости от категории место съемки или наименование события
{ymd} - дата в формате ГГГГММДД
{hm} - время в формате ЧЧММ (без секунд)
{####} - порядковый номер фотографии в альбоме
{crc32} - контрольная сумма в нижнем регистре
{tag} - пометка для случаев специальной съемки (hdr, burst и т.п.)
{device} - производитель фотоаппарата
{model} - модель фотоаппарата

Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался.
Дата/время в начале файла позволяет сортировать в порядке съемки.
Порядковый номер исключает появление разных файлов с одним именем.
Спасибо. Хороший шаблон. Но у меня будет попроще. Например категория мне не нужна.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773384
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли дата создания файла совпадает с датой съемки (обычно совпадает если позже фотка не корректировалась), то можно по дате создания распихать по подпапкам. Дату создания любым ЯП элементарно получить.

ИМХО имя файла нет смысла менять, оставь как есть, думаю ты не часто снимал разными девайсами в один день.
Я-бы файл тоже сделал уникальным. Бывает тот-же регистратор фоткает файлы с ограниченным циклом.
И в серии разных фоток будет две с одним номером например. И потом эти два одинаковые файла уже
почтой не переслать. В один фолдер - не скопировать. Вобщем.. имя файла тоже должно быть уникальным.
Вариант - сквозная нумерация для одной даты. Или контрольная сумма как товарищ фотограф делает там у себя.
Но мне контрольная сумма кажется слишком уж большим балластом для глаз.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773390
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБывает тот-же регистратор фоткает файлы с ограниченным циклом.
И в серии разных фоток будет две с одним номером например.
И потом эти два одинаковые файла уже почтой не переслать.Вот как раз при отправке - никаких проблем с одноимёнными вложениями.
При получении - да, возникают сложности.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773395
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Наличие CRC32 в имени файла позволяет находить оригиналы и дубли, даже если файл редактировался.

По поводу уникальности. Есть персептивный хеш. Но это лучше отдельным топиком.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773416
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crc32 вполне достаточен. У меня на 20 ГБ фотографий коллизий не было, при этом он быстро считается.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773431
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.crc32 вполне достаточен. У меня на 20 ГБ фотографий коллизий не было, при этом он быстро считается.
У меня часто было такое. Хотел кода-то зааплодить фотку. Или приаттачить. Не влезла по размеру. Сделал scale. Сохранил.
Лежат две фотки. Один контент. Разный размер и контрольная сумма. Но ладно... я это подниму отдельным топиком.
Типа умная дедупликация.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773501
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРазный размер и контрольная сумма.
Так в том и смысл сохранять crc32 в имени файла, чтобы при изменении файла он все равно сохранялся оригинальный.
Иначе нужно использовать инструменты сравнения по содержимому, а они медленные и неточные.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773502
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.maytonРазный размер и контрольная сумма.
Так в том и смысл сохранять crc32 в имени файла, чтобы при изменении файла он все равно сохранялся оригинальный.
Иначе нужно использовать инструменты сравнения по содержимому, а они медленные и неточные.
Инструменты сравнения могут работать единоразово. После скидывания содержимого фотика. Или слияния
архивов и прочее. Да мне вообще-то пофиг сколько они будут работать. Есть коробочная утилита fdupes для
Linux. Она работает на уровне скорости дискового чтения файлов. Временная сложность - линейна от объема
файлов. Но мой интерес даже не в том быстро она работает или медленно. А просто в том чтобы убедится что
каталог фоток имеет относительный порядок.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773505
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не про fdupes и прочие бинарные утилиты.
Если на картинке изменить exif, то такие утилиты посчитают этот файл уникальным.
Для поиска дубликатов фотографий нужно использовать специальные утилиты, которые сравнивают содержимое (контент), например VisiPics. А они медленные и неточные, и как следствие интерактивные.
...
Рейтинг: 0 / 0
Вторничный фотографЪ
    #39773515
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Я не про fdupes и прочие бинарные утилиты.
Если на картинке изменить exif, то такие утилиты посчитают этот файл уникальным.
Для поиска дубликатов фотографий нужно использовать специальные утилиты, которые сравнивают содержимое (контент), например VisiPics. А они медленные и неточные, и как следствие интерактивные.
Давайте разделим 2 направления.
1) Дедупликация контрольной суммой (crc32/md5). Полностью автоматически позволяет убрать дубликаты. Здесь - вопросов
вообще нет. Решенная уже задача.

2) Дедубликация на основе персептивного хеша - работает в режиме диалога. Или в режиме рекомендаций,
всего-лишь предлагая пользователю ознакомится с кандидатами на удаление. Я так думаю.

По поводу изменения 1 exif-тега. Такой кейс мне представляется сомнительным. Я никогда в жизни этого
не делал и не понимаю ценности этого действия. Предполагаю что 99.9% мои файлы что я фоткал мыльницами
никогда не меняли своих тегов кроме тех случаев когда я редактировал размер-яркость-контраснтность но
это вообще выходит за рамки пункта (1) и соотв нет вопросов. С точки зрения контрольной суммы - это вообще
другой файл.
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вторничный фотографЪ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]