• Добро пожаловать на WYLEK.ru. Пожалуйста, войдите или зарегистрируйтесь.
 
95 гостей, 0 пользователей

  • Сортировка фото по дате съемки 5 0 5 1

Сортировка фото по дате съемки

Автор NNK_RTR, 03 сентября 2019, 17:29:00

« предыдущая - следующая »

NNK_RTRАвтор темы

Тема создана 03 сентября 2019, 17:29:00 Последнее редактирование: 16 сентября 2019, 12:24:36 от NNK_RTR Причина: Обновление программы и попытка вставить картинку

Предыстория:
Лет 5 - 10 тому назад я решил разложить свою коллекцию фото по годам и месяцам съемки, однако обнаружил, что некоторые даты съемки абсолютно не соответствуют реальности. Например, на фотографии явное жаркое лето, а дата съемки указывает на холодную зиму. Вероятно перед съемкой не настроили камеру или забыли настроить после смены батареек.
Так или иначе, но нужно отказаться от сортировки по годам или изменить дату съемки. изменить дату съемки одной фотографии легко, но когда их несколько десятков или, даже, сотни, то проблематично  :o
Поискал соответствующую программу в интернете - не нашел, тех, что раскладывают по годам много, а вот изменить дату множества фотографий нет (или не нашел)
Тогда я "быстренько" написал несколько программ, которые совместными усилиями справились с этой работой. Программы практически не имели интерфейса, все необходимые данные я вводил непосредственно в код программы.
Сейчас, не то чтобы возникла острая необходимость, а скорее чтобы развеется от тоски и печали, я решил собрать все эти программы в кучку, под единым интерфейсом. (почти, как в песенке "Я его слепила из того, что было...")
Ну вот, теперь, "то что получила" и выкладываю.

Вам недоступны вложения в этом разделе.

Собственно из предыстории понятно назначение программы. Там добавлено еще несколько опций.
Понятно, что программа "сырая", но на основе вашей критики, замечаний, а главное на основе предложений и советов, возможно мне удастся программу "подсушить"
Это версия 1.1. По предложению пользователя добавлена возможность перемещения дубликатов и исправлено несколько обнаруженных ошибок
Скачать, как всегда, можно с моего яндекс-диска

WYLEK

Ответ #1 : 03 сентября 2019, 21:28:42 #1 Последнее редактирование: 03 сентября 2019, 21:41:48 от WYLEK
Цитата: NNK_RTR от 03 сентября 2019, 17:29:00Администраторам: здесь должен быть скриншот программы, но как его загрузить?. попробовал добавить в вложения - не принимает. Что за аббревиатуры "SEO", "BBC", как добавить сообщение на главную страницу? Что за параметр "Объявление темы"? Неплохо бы написать статью для тупых (или для тупого, если я один такой).

Все будет, пока вылавливаю ошибки конвертации - форумов то было много, это юкоз, логик и булет, а у каждого свой код HTML.
На форум загружать очень просто - открываете внизу Вложения и другие параметры и там Добавить файлы.
Дальше Загрузка,  мышом клацаете где хотите видеть картинку и жмете Вставить  ;)

Вам недоступны вложения в этом разделе.

Да, раздел есть такой - Практическая фотография и не только

Krig

Приветствую!

В окне настроек какое-то "подвешенное" положение кнопки "Выбор". Обычно кнопку выбора пути размещают напротив поля редактирования/ввода пути. У вас она живет отдельной жизнью, может быть вы так и задумали, но как-то это небрежно смотрится. И там же в этом окне досадная опечатка -- "фотогафии".

Скрин 1
Вам недоступны вложения в этом разделе.

Еще режет глаз строка "Не известный тип камеры". Правильно будет "Неизвестный тип камеры".

Пункт действий "Изменить дату съемки" получился очень мудрёный и сложный для понимания стороннего пользователя. Ситуацию не прояснила даже справка. Введено понятие "смещение"?! Зачем такой подробный выбор элементов даты?! Почему вы не использовали стандартные компоненты "TDateTimePicker" или "TMonthCalendar"?

Скрин 2
Вам недоступны вложения в этом разделе.

Было бы нагляднее и намного понятнее! Если очень нужно точное время, то и тут можно использовать соответствующий компонент.

Следующий момент. Не давайте именам папок и файлов (в том числе с настройками и вспомогательными данными) на русском (кириллице). На системах с отличным от русского системным языком, ваша программа превратится в "кирпич" или же будет работать некорректно. Также для файла настроек необязательно создавать отдельную папку, это лишнее.

Изображения в справке абсолютно не оптимизированы. Я обратил на это внимание еще по вашему документу "Начинающему борцу с крякозяюликами", размер которого составил аж 80Мб. Сперва подумал, что в документ встроены архивы с инструментами, которые описаны в статье, что было бы логично. Но оказалось, что там лежат изображения с размерами файлов под 800Кб каждое! Любая программа по оптимизации легко уменьшит размер таких изображений в 10-15 раз без ущерба качеству. Такая же ситуация обстоит с этим фалом справки. Вот смотрите, я провел оптимизацию изображений в программе RIOT (все изображения JPG заменил на PNG) и собрал справку заново. Размер вашего файла справки составляет 2046 Кб. Размер нового файла справки -- 364 Кб. Да, можно возразить, что сейчас размеры не актуальны в век широкополосного интернета.

Ещё по изображениям. Как-то сделаны они небрежно: то кромка окна обрезана, то просматриваются области за границей окна. Впечатление, что вы делали захват рабочего стола, а потом в графическом редакторе вырезали окно программы как получится. Ну и получилось неряшливо.

Текст справки представляет собой "простыню". Не сделаны абзацы, отступы, не расставлены акценты. Такой текст тяжело читать, тем более воспринимать и вычленять важную информацию. Глаза быстро устают от постоянного "спотыкания". К сожалению, так же оформлен документ "Начинающему борцу с крякозяюликами". Информация там намного сложнее, но из-за небрежного оформления становится вообще недоступной для понимания. Попробуйте при чтении прерваться, отвернуться от монитора, посмотреть в окно, а потом вернуться к чтению документа. Легко ли Вам будет в таком "сплошном" тексте отыскать взглядом место, где вы прервались, чтобы продолжить чтение? Просто сравните ниже два текста из вашей справки: слева ваш, а справа отформатированный.

Скрин 3
Вам недоступны вложения в этом разделе.

Какой текст легче для восприятия?

NNK_RTRАвтор темы

Спасибо за конструктивную критику!
Первые три пункта - это безоговорочный ляп!

По дизайну страницы "Изменить дату съемки".
На момент проектирования я не хотел изменять размер панели страниц.
Пробовал использовать компонент "TDateTimePicker", но мне показалось, что извлеченная и реальная даты съемки должны располагаться рядом, чтобы пользователь явно видел разницу. То есть, мне все равно нужно два компонента TEdit или TLabel или что-то подобное, тогда и было принято решение использовать 6 компонентов TLabel для извлеченной даты и 6 компонентов SpinEdit для реальной даты. Мне и сейчас думается, что так удобней.

По поводу понятия "Смещение", я просто не знаю, как обойтись без него. Программа изменяет дату съемки не одной фотографии, а некоторой группы. При этом к дате съемки каждой фотографии прибавляется одинаковое, рассчитанное на введенных данных смещение. Возможно не нужно отображать смещение и результат проверки, тогда станут лишними и две кнопки. Сначала я хотел даже проверять это дело автоматически и только в случае ошибки выводить эти значения в отдельном окне и в нем позволять пользователю корректировать смещение. Тем более, при тестировании ошибка появлялась только, если в промежуток входило несколько високосных лет. Но потом решил, что пусть будет так.

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

Я конечно постараюсь изменить дизайн приложения на основе Ваших, а может быть и не только Ваших, замечаний в новой версии программы, если она будет. Разумеется, учту Ваши советы при написании справки.
Хотелось бы услышать критику, замечания и пожелания от пользователей, реально использующих эту программу.

Еще раз спасибо. Вы не поленились и даже специально создали форму, чтобы наглядно предложить свой вариант.

С уважением, Николай

Krig

Здравствуйте.

Не поймите меня неправильно. Но все же...
Перечитал еще раз несколько раз раздел справки касательно "Изменить дату съемки" и... никак не могу понять ваш ход мыслей.  :bang:

 :idea:
Я вижу это все проще. Выбрал папку с фотками, выбрал дату - готово. Нажал выполнить и в выбранной папке для всех фотографий, без всяких смещений и условий, дата была изменена на выбранную. Время и все остальное лишнее. Если отметка времени обязательна, то по умолчанию использовать, например, время 12:00:00. Главное дата. Обычно, просматривая фотографии, люди вспоминают, что то или иное события происходило в определенный период, без точной даты и тем более точного времени.

Вы пишите, что "Если в Вашей коллекции есть несколько групп фотографий, дату съемки которых нужно изменить на разное время, то разные группы нужно переместить в разные папки.". Хорошо. Предварительно рассортировали фотки по папкам. Потом в настройках добавили эти папки в список исходных папок. Тогда в разделе "Изменить дату съемки" просто предложить пользователю из выпадающего списка выбрать папку обработки, указать для неё дату и сохранить (в том же файле настроек, например). После запустить процесс обработки, нажав "Выполнить". Примерно так:

Вариант 1 (макет)
Вам недоступны вложения в этом разделе.

Выбор папок из списка (компонент должен их считывать из списка исходных папок):
Вам недоступны вложения в этом разделе.

Если параметр времени важен, как я уже говорил, то используйте простой и понятный пользователю компонент выбора времени.

Вариант 2 (макет)
Вам недоступны вложения в этом разделе.

Но ещё раз повторю, на мой взгляд, опция времени лишняя.

С наилучшими пожеланиями.

NNK_RTRАвтор темы

Совсем я не могу писать справки, если даже не смог передать основную "фишку" программы.
Попробую здесь:

Когда-то я подарил дочке фотокамеру и поставил задачу фотографировать внучку как можно чаще и во всех ракурсах. Со временем у меня собралась куча фотографий, которые я решил разложить по годам и месяцам съемки. В то время (2005) готовых программ было не очень много, а про Интернет я только слышал. Была написана программа (еще на Паскале), которая справилась с этой работой. Просматривая результат я увидел, что дата съемки явно не соответствует реальной. Передо мной стала задача изменить дату съемки, но так, чтобы сама последовательность съемки осталась. Камера имела свойство сбрасывать настройки при каждой смене батареек. Последовательность в новой сессии (после смены батареек) начиналась с некоторой, почему-то случайной даты.

Теперь ГЛАВНОЕ:
Мне нужно сохранить последовательность в сессии, но сдвинуть начало сессии (сдвинуть точку отсчета во всех фотографиях сессии - изменить дату всех фотографий в группе на одинаковое смещение).
Допустим, что 7 июня у нее день рождения, ее поздравляют и дарят велосипед, 12 июля она с него упала, чтобы не получилось, что сначала она упала, а потом этот велосипед дарят.
Кроме того, случалось, что в течении минуты делалось несколько снимков, например, как она надувает щечки и гасит свечи в торте. Здесь важно учитывать и секунды.

Видите, что получилось. Длинно. Для объяснения использовался реальный пример. Может такой способ пояснения неправильный, но по моему суть задачи я передал. Или опять туманно?
Предложенный Вами вариант конечно проще, в нем не надо даже изменять exif-теги, достаточно просто переименовать фотографии, но в нем совершенно теряется последовательность съемки и с поставленной задачей не справляется.
Здесь тоже, можно было бы не изменять саму дату съемки, а только задать соответствующее имя файлу, но функция "Сортировать по дате съемки" работает не с именами файлов, а с датой съемки. То есть, извлекает дату съемки, задает имя файла, соответствующее дате съемки и помещает файл в соответствующую папку.

По скриншотам:
Я пользуюсь программой Bandicam. Она мне очень нравиться именно тем, что не нужно настраивать область экрана, выделять нужное мышкой, достаточно один раз настроить рамку вокруг нужного окна и нажимать F11. Но Bandicam почему-то считает нужным включать в скриншот и саму рамку. Какой программой пользуетесь Вы?
Спасибо, подсказали программу "Riot".

С уважением, Николай

NNK_RTRАвтор темы

Дополнение.

Существует несколько фотографий, снятых:
2010.07.24.17.58.33, 2011.02.07.06.59.16,... 2011.02.19.10.10.12
(дата в порядке год.месяц.число.час.минута.секунда)
Выясняется, что дата съемки не соответствует реальной.
Выбираем одну из этих фотографий в качестве образца.
Собираем семейный совет и устанавливаем близкую к реальной дату съемки.
Допустим в качестве образца была выбрана вторая фотография и выяснено,
Что фото на самом деле было снято 2012.08.03.16.59.16
(минуты и секунды не помним, но дату точно, а час съемки - приблизительно)
Вводим эту дату в соответствующие поля и щелкаем по кнопке "Подсчитать"
Программа вычисляет разницу между реальной (установленной нами) и извлеченной из фотографии даты.
Разница вычисляется в секундах и называется смещением. Получилось 46951200 секунд
Щелкаем по кнопке "Проверить". Результат проверки должен соответствовать введенной нами дате, если это не так, то можно вручную изменить смещение и снова щелкнуть по кнопке "Проверить"
У нас все совпало. Щелкаем по кнопке "Выполнить"
В следующем окне оставляем поля пустыми и щелкаем по кнопке "ОК"
В окне "Выбор исходных и целевой папок" щелкаем по кнопке "Готово" и дожидаемся выполнения операции.
Открываем целевую папку и смотрим:
Первый файл 2012.01.18.03.58.33_1 - перескочил на целых 2 года, но мы и добавляли полтора года. Все правильно. Открываем фото в средстве просмотра. Да, действительно, так и есть. Видно попались хорошие батарейки...
Вторая - 2012.08.02.16.59.16_2 - то, что мы заказывали
Последняя - 2012.08.14.20.10.12_7 - соответствует

Дальше, когда мы будем сортировать по дате съемки, эти фотографии будут помещены в правильные папки (при этом, сама последовательность съемки, не изменится.

Вот, как-то так.

Krig

Цитата: NNK_RTR от 20 сентября 2019, 11:22:33Теперь ГЛАВНОЕ
Ну все ясно!  :beer:
Вы просто корректируете дату съёмки. Тогда нужно опцию обозвать "Коррекция даты съёмки". Но и это ещё не всё. Если важно сохранить время (часы, минуты, сек.), то зачем эти параметры показывать пользователю? Меняйте только дату, а время не трогайте. Тогда очерёдность съемки фотографий в сессии не изменится. Или я снова не так понял?  :yes:

По скриншотам:
Я использую программу Greenshot. Правда программа давно не обновлялась, но работает замечательно. Благо исходники открыты, что позволило внести небольшие правки в код и скомпилировать программу под себя. Есть ещё задумки расширения функциональности инструментов, но то работа, то семья, и отдохнуть надо, в общем отложил в долгий ящик.

Небольшой совет по скринам (скриншотам). Для изображений, которые демонстрируют окна программы и элементы интерфейса, используйте формат PNG. Формат JPG для этого не подходит. Он замыливает мелкие делали и делает их плохо различимыми. Это хорошо видно по скринам с текстовым наполнением (надписи, метки и прочее). Также размер файлов изображений PNG получается намного меньше JPG, не теряя в четкости и резкости.

Цитата: NNK_RTR от 20 сентября 2019, 11:22:33Но Bandicam почему-то считает нужным включать в скриншот и саму рамку
Может быть с настройками не разобрались? Может быть там есть опция, отвечающая за эту функцию?

Цитата: NNK_RTR от 20 сентября 2019, 11:22:33Спасибо, подсказали программу "Riot".
Да не за что.  :agree:
Есть множество других подобных программ. Мне понравилась RIOT. Когда-то на этом форуме мне предложил один из пользователей. Посмотрел, взял в работу.

Krig

Нашёл программу "EXIF Date Changer", которая имеет похожий с вашей разработкой функционал.

Вам недоступны вложения в этом разделе.

Как видно на скриншоте, автор также использовал отдельные поля для ввода элементов даты. Поэтому вы оказались не первым, кто применил такое решение. Значит двигаетесь в правильном направлении.

Удачи вам!

NNK_RTRАвтор темы

Да, дизайн конечно, интересней...
Насчет первенства, прообраз моей программы написан больше 10 лет назад. Тогда она, правда, состояла из нескольких написанных на скорую руку программ, которые я и попытался объединить в одну. Но алгоритм вычисления смещения остался прежнем, немного только был адаптирован код к современному Delphi. Принцип ввода данных тоже не изменился, просто использовались компоненты TEdit. Настроек было больше и выбранная фотография отображалась в окне просмотра, да и само окно было больше.

Но я собственно не об этом.
На страницах форума (по моему "Вопросы начинающих и не только" была просьба помочь в переводе этой или почти этой программы.
Тогда мне было некогда, я собрался съездить в гости, сохранил ссылку на эту страничку в своих запоминалках. А по приезду меня ждал сюрприз. Старший внук, здоровый балбес - 17 лет уже, решил установить какую-то свою игрушку и ему не хватило места на выделенном ему логическом диске. Тогда он решил расширить диск. Ну и расширил... Причем так, что никакие программы восстановления данных не помогли. Остался я практически без инструментов и запоминалок. Теперь потихонечку восстанавливаю...
Попытался найти эту страничку на сайте но не нашел. Та программа была написана на Visual Basic. Я хотел подумать о способе перевода таких программ и в случае, если придумаю, добавить тему в книжку "Начинающему борцу с крякозябликами".
Может Вы, или кто-то другой, читающий этот комментарий, помнит расположение этого вопроса. Можно поискать и другую программу, но та точна не была никак защищена, полностью раскрылась в декомптляторе.


Krig

Цитата: NNK_RTR от 20 сентября 2019, 21:38:55Насчет первенства
Прошу прощения, если ошибся в оценке. Я хотел сказать, что не Вы один пришли к такому решению. Я полагал, что использование отдельных полей под каждый элемент даты/времени в корне неверно. И тут в программе другого автора вижу аналогичный приём, как у вас. Значит это я в корне на прав и такое решение имеет место быть.

Цитата: NNK_RTR от 20 сентября 2019, 21:38:55На страницах форума (по моему "Вопросы начинающих и не только" была просьба помочь в переводе этой или почти этой программы.
Я могу ошибаться, но был вопрос по программе с похожим названием "Exif Tag Remover" от пользователя IWTA. Правда был он задан в разделе 
► Форум  ► Жизнь сайта ► Помощь в русификации  ► TreeDBNotes Pro 4.5.0 RUS
Больше ничего подобного не попадалось. Возможно лучше знают администраторы ресурса.

Цитата: NNK_RTR от 20 сентября 2019, 21:38:55Та программа была написана на Visual Basic.
Если программа на Visual Basic, то у пользователя Leserg когда-то что-то было. Воспользуйтесь поиском по форуму и в форме поиска для поля поля "Искать:" введите ник "Leserg" (без кавычек). И просмотрите его сообщения.

Vitaly

 NNK_RTR, добрый день! Мне Ваша идея нравиться, поэтому решил написать. У Sony есть приложение PlayMemories Home - посмотрите, может Вам будет интересно. Вашу программу тоже посмотрю - спасибо. Виталий

1) Изменить даты всех файлов, чтобы у них было тоже время, что у выбранного файла.
2) Изменение даты путем указания временного интервала.
   а) Более позднее время
   б) Более раннее время.
- Чтобы изменить метку времени и даты, в меню [Правка] выберите пункт [Изменение даты выбранных медиафайлов]. Откроется окно [Изменение даты выбранных медиафайлов]. Измените метку времени и даты и нажмите кнопку [ОК].

NNK_RTRАвтор темы

Подобных программ стало много. Например, Krig нашел программу "EXIF Date Changer", или та, на которую указываете Вы.
Сначала программа была написана под конкретную задачу, в интересах единственного пользователя - меня. Потом я попытался расширить возможности программы, а вдруг она пригодится кому нибудь еще.
Конкурировать с профессиональными разработчиками я не могу, да и не ставлю перед собой такой цели.
Мне конечно интересно было бы услышать отзывы пользователей, которым реально пригодилась моя программа.
Вряд ли эта программа будет в дальнейшем развиваться, разве что, откликов будет много и я почувствую, что программа востребована.