|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Изменение тэга это например поворот на 90 градусов (смена ориентации). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 18:01 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Изменение тэга это например поворот на 90 градусов (смена ориентации). Интересный кейс. Давайте это я дам чуть позже отдельным топиком. А в этом я хотел-бы просто продолжить раскладывание фоток по датам? OK? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 18:18 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Вот любопытная библиотечка Metadata-extractor. Вроде в ней все есть. https://github.com/drewnoakes/metadata-extractor По поводу данного шаблона. Код: sql 1.
Я думал о реализации его так и эдак и у меня выходит какой-то скриптовый язык программирования внутри приложения. Вобщем цена вопроса. Что делать если нужного тега нет? А он входит в шаблон как элемент директории. Например: Код: sql 1.
В данном шаблоне некоторые алиасы такие как width, height являются mandatory для любого файла. Я 100% их найду значения. Но как быть если один из атрибутов (YYYYMMDD) будет незаполнен? Будет такой вот странный path, который скорее всего будет некорректен с точки зрения файловой системы. Код: sql 1.
Нужно какое-то генерализованное решение и красивое с точки зрения шаблона. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 02:28 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Дата и время у файла есть всегда. Не в EXIF, так в атрибутах. Правда может быть так, что они могут различаться, но тут общего решения не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 06:54 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
maytonБудет такой вот странный path, который скорее всего будет некорректен с точки зрения файловой системы. Код: sql 1.
Для линукса не знаю, а в виндовсе корректен и равнозначен такому Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 07:11 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
mayton/photos/{YYYY}/{MM}/{DD}/{model}_{YYYY}{MM}{DD}_{width}x{height}.jpeg Сомнительный шаблон. Зачем в имени файла размерность изображения? Почему модель вынесена в начало (сортировка будет по модели)? Почему нет времени или счетчика? Или в течение дня будет только одна фотография? Я бы советовал использовать мой шаблон, в нем ничего лишнего и он выверен практикой. Единственное, что я не указал — если одно и то же событие снималось разными фотографами, то в каталоге альбома я создаю подкаталоги на каждого фотографа и уже внутри них идет "{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model})". Для фотографий важно упорядочивание по хронологии, поэтому дата или счетчик должны быть в начале файла. Модель фотоаппарата является чисто информационным атрибутом, поэтому должна быть в конце или вообще не указываться. Я указываю, потому что по модели можно понять, что следует ожидать на фотографии (какое качество и особенности). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 09:52 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Что касается даты/времени, то нужно учитывать следующее. Во-первых, в EXIF есть несколько тэгов для этого: Date/Time, DateOriginal/TimeOriginal, DateDigitized/TimeDigitized, DateTimeStr (это не считая проприетарных и нестандартных полей). И разные вендоры по разному понимают, что и в какие поля нужно записывать. Во-вторых, кто-то пишет в эти поля локальное время, а кто-то UTC. Кто-то учитывает сдвиг часового пояса, кто-то нет (в зависимости от свежести ПО). В-третьих, возможны ситуации, когда дата/время в EXIF не совпадает с датой/временем в атрибутах файла (например на устройстве часы выставлены неточно, но имеется GPS, а в EXIF записывается время со спутника). И для этих моментов нет общего решения. Нужно или принять для себя какой-то общий принцип (например определить приоритеты полей), или для каждой модели обрабатывать данные индивидуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 10:14 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
И еще, метаданные есть не только в EXIF. Есть IPTC, есть расширения JPEG, есть форматы tiff/tga. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 10:17 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Почему нет времени или счетчика? Или в течение дня будет только одна фотография? Я бы советовал использовать мой шаблон, в нем ничего лишнего и он выверен практикой. Единственное, что я не указал — если одно и то же событие снималось разными фотографами, то в каталоге альбома я создаю подкаталоги на каждого фотографа и уже внутри них идет "{ymd}{hm}_{####}_{crc32} [{tag}] ({device} {model})". Для фотографий важно упорядочивание по хронологии, поэтому дата или счетчик должны быть в начале файла. Модель фотоаппарата является чисто информационным атрибутом, поэтому должна быть в конце или вообще не указываться. Я указываю, потому что по модели можно понять, что следует ожидать на фотографии (какое качество и особенности). Согласен насчет счетчика. Добавлю. С моделью у меня будет попроще. У меня их просто меньше. И сам знаю чего ожидать. Ваш шаблон выверен вашей практикой. Я не фотограф. И нет у меня таких глобальных задач с тегами. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:23 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Alibek B.Во-первых, в EXIF есть несколько тэгов для этого: Date/Time, DateOriginal/TimeOriginal, DateDigitized/TimeDigitized, DateTimeStr (это не считая проприетарных и нестандартных полей). И разные вендоры по разному понимают, что и в какие поля нужно записывать. Во-вторых, кто-то пишет в эти поля локальное время, а кто-то UTC. Кто-то учитывает сдвиг часового пояса, кто-то нет (в зависимости от свежести ПО). Я соберу статистику. Скорее всего будет просто система приоритетов. Если есть какой-то тег - я его беру. Если нет - смотрю другой. Если вообще не найдены никакие атрибуты времени - возьму за основу дату создания файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:26 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Я по поводу дублирования. Более десятка лет назад был самодельный ехе для винды. Название imageduplex.exe (или dupless). Выполняет поиск в файловой системе рисунков, "похожих" на предложенный эскиз или файл. Автор объяснял работу. Не помню, шла ли речь об ... как это?.. когда сжимают до маленького квадратика. Основное помню в том, что сходство определялось не в геометрическом пространстве (по крайней мере нетолько в геометрическом), а в цветовом, путём разновидности кластеризации. Именно так я бы тоже тогда и делал бы. Я только несколько раз посмотрел работу проги, ну и показывал ещё. Мы соглашались, что "похожесть" была достаточно обоснованной. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 12:37 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Да. Персептивный хеш. Впервые я прочитал про это на хабре. Кажется этот линк https://habr.com/ru/post/120562/ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 12:50 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Можно взять готовую программу ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 02:06 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Ну.. не знаю. Неспортивное это. В топике разработки обсуждать готовые продукты. Кроме того я вот планировал делать безопасное переименование. Оставлять старый каталог. И создавать новый в hardlinks. Опасная эта операция я вам доложу. Ошибёшься - половину фоток потеряешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 09:07 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
UP. Прошу прощения за безделие и праздность. От задачи я не отказываюсь. Буду делать. Фотки по прежнему лежат и ждут сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2019, 00:05 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Up. Приложение готово. Всякая ботва с распознаванием образов, html и thumnails отвлекли меня от задачи-прим. И сегодня эта задача сделана. Фотки я уже успешно раскладываю по фолдерам. Детектирует exif-tag и верный формат даты. Утилита имеет внешний вид консоли. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В утилите много хардкода и недостаточно гибкости но главную задачу я уже решил. Дальше дорабатывать буду по мелочам. Вот как выглядел фолдер с фотками до. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
И вот как после. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Формат и глубину можно менять. Можно сцепить год+месяц или сделать квартальные группы фоток. В отличие от html-индексатора данная утилита работает аккуратно и не трогает оригинал. Он в принципе может лежать на DVD диске или в сетевом диске в readonly а каталог получатель - будет просто копировать в себя фотки с новыми названиями. Я решил что это более безопасно даже для моего дев-тестинга. Мало-ли какая ошибка может быть с фолдерами.... Можно вытащить из тегов название и модель цифровика. И тогда каталог может иметь структуру разного качества снимков. Что-то снято мыльницей. И что-то зеркалкой. Это еще не реализовано но реализация будет элементарной на базе того что уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 00:37 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
2) Unrecognized - или trash. Это отдельный опциональный фолдер куда будут падать фотки снятые без соотв. тега с датой. В настоящий момент у меня таких мало. Меньше процента. Но все таки терять их не будем и они будут к сведению лежать в отдельной структуре сохраняя имена и папки как было. 3) TimeFormat - это набор шаблонов которые мы будем пытаться применить к дате. Некоторые цифровики делают не совсем корректную дату типа 2012:10:18 1:54:45 где час стоит без ведущего нуля. Она не парсится единым паттерном (в инструментарии Java8/time). Нужно делать 2 чтобы последовательно применяя найти нужную рабочую подстановку. 4) Я попробую релизнуть это в 3х форматах бинарников. - java (jar) - Linux x64 (Graal compiler) - Win x64 (Graal compiler) Эксперименты с Graal я провел успешно. По крайней мере под Linux все работает. Думаю что Graal компиллятор под Windows не будет капризным и я тоже его релизну. Но чуть позже чем остальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 00:46 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
А нужен ли в линуксах скомпилированный файл? Там по-моему java-машина есть всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:08 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
За все линуксы не скажу. Насчет всегда - не знаю. В моём варианте jdk доустанавливалась с помощью apt-get install ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:12 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
И еще, в выходном имени файла я бы советовал не разделять дефисом часы-минуты-секунды. Лучше их писать подряд, а разделитель приберечь для чего-то более полезного, хоть для модели аппарата. И как я вижу, CRC в имени файла отсутствует. Я все же советую его добавить. Файлы в течение долгого времени могут незначительно модифицироваться, причем изменяться может даже не содержимое, а метаинформация (например тэг ориентации). CRC позволит искать оригиналы/дубликаты, не проводя анализ и распознавание образов, это будет просто на порядки быстрее и проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:14 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Насчет модели аппарата - я подумаю. Идея хорошая. Как вариант - добавить ее к формату Код: sql 1.
К сожалению exif-теги не гарантируют наличия модели аппарата. Или они могли быть обработаны какой-то утилитой-анонимайзером. Или будучи скачаны с соц-сетей аналогично. Тоесть если мы хотим добавить модель цифровика то нужна опция замены на тот случай когда тега нет. Например Код: sql 1.
Насчет CRC я не очень понял полезность этого атрибута. Если вы слегка потрогали размеры или покрутили тон-яркость-насыщенность то CRC меняется кардинально а фотка субъективно - одна и таже. Но в принципе сделать не сложно. Так на 1 story-point :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:22 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Например у меня на жестком диске есть куча фотографий. В этой куче множество дубликатов разного рода. Где-то я создавал подкаталог по дате и копировал в него каталоги со смартфона — соответственно в разных подкаталогах часть фотографий будет дублироваться. Впрочем это самый простой сценарий, потому что тут файлы-дубликаты одинаковые, они легко находятся по имени и размеру. Какие-то фотографии передавались другим пользователям (на другие телефоны) по Bluetooth, соц.сети или мессенджеры, и бэкапились уже другие телефоны. Тут будут дубли будут в бэкапах разных устройств. К тому же при передаче фотографий могли меняться размеры, изменяться или удаляться тэги (EXIF) и т.п., то есть по со содержимому файлы уже будут различаться. Еще фотографии могут редактироваться, например обрезаться или корректироваться по освещению/тону/кривым. Тут уже и само изображение будет изменено, и имя файла как правило изменяется. Но обычно оригинальное имя файла все же сохраняется, просто к нему дописывается суффикс. Фотографии могут масштабироваться под разные разрешения (подготавливаются заранее, чтобы на разных платформах они не масштабировались автоматически с потерей качества) — аналогично предыдущему, изменяется все, но оригинальное имя файла обычно сохраняется. Если имя файла будет состоять только из счетчика или таймштампа, то оригинал по имени файла не найти, поскольку такое имя будет неуникально. А вот если в имени файла будет присутствовать CRC, то он конечно не гарантирует отсутствие коллизий, но на практике коллизии крайне редки и он почти гарантировано будет уникальным. А с именами файлов работать намного проще, чем с парсерами изображений — хоть в Total Commander (Multi-Rename Tool, поддерживает регулярные выражения), хоть в множестве готовых утилит по массовому переименованию файлов, хоть сохранив имена файлов в текстовый файл. Например в Total Commander есть два таких крайне полезных инструмента, как мультипереименование и поиск дубликатов. И оба поддерживают файловые плагины, в том числе такие полезные, как exif (тэги EXIF) и wdhash (разные хеши, в том числе CRC32). При поиске дубликатов я просто сравниваю CRC в имени файла с рассчитанным CRC — и все изменения/дубли/оригиналы как на ладони. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:45 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Уговорил. Добавлю CRC как опцию. Могу и MD5 добавить. Для себя проблему дедубликации решил утилитой fdupes https://ru.wikipedia.org/wiki/Fdupes Она находила не то что файлы а целые каталоги фоток которые я по ошибке скопировал не туда (рука на мышке дрогнула). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:52 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
У меня сценарий бэкапов следующий. Время от времени я скидываю фотографии с источников (смартфон, фотоаппарат) на диск. Затем делаю массовое переименование по шаблону "{album, location, event}/{ymd}{hm}_{crc32} [{tag}] ({device} {model})". Затем ищу дубли между обработанным каталогом (с новыми фотографиями) и основным каталогом (с бэкапом). Дубли в новом каталоге убираю, а оставшиеся фотографии перемещаю в основной каталог с бэкапами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:56 |
|
Вторничный фотографЪ
|
|||
---|---|---|---|
#18+
Я выбрал CRC, а не MD5, потому что он слишком длинный и сложно считается. Если помещать его в начало имени файла, то остаток (с датой, временем и прочим) не будет виден, да и сортировка слетит. Если помещать его в конец имени файла, то остаток не будет виден и визуально его будет не сравнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2021, 11:58 |
|
|
start [/forum/topic.php?fid=16&msg=39778354&tid=1339639]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 499ms |
0 / 0 |