ТЗ:
Есть исходная папка, где появляются файлы с картинками, есть целевая папка, куда они должны попасть, обработанными некоторым образом,
первая буква имени файла (префикс) обозначает принадлежность к тому или иному источнику данных и по этим буквам
производятся следующий паттерн обработки:
1. Если префикс N производится автоматическая "смывка штампа" уже имеющимся алгоритмом (Delphi 7)
Суть алгоритма есть картинка "образец штампа" и она попиксельно применяется к целевой картинке. Исходники приложим.
2. Если префикс O производится полуручная "смывка штампа" уже имеющимся алгоритмом (другим, тоже Delphi 7).
Суть алгоритма существуют 2 варианта "образца штампа" каждый в двух вариациях (светлый/темный). По вернему уголку картинки
программа пытается опознать вариант штампа и предлагает пользователю диалог с 2-мя вариациями (светлый/темный) его применения к картинке.
Имеется возможность сменить вариант штампа, если он был из-за зашумленности определен неправильно.
Кликая на одну из предложенных вариаций применения штампа к картинке пользователь подтверждает наилучший выбор. Картинка сохраняется.
При повторных запусках программа определяет что файл уже обрабатывался (по наличию его в целевой папке) и пропускает его
(см. ниже про промежуточную папку).
3. В папку Целевая_Папка\Префикс_big\ записывается картинка с приставкой big_ , без изменений.
Т.е., если картинка была A001.jpg, то она записывается в папку Целевая_Папка\A_big\big_A001.jpg
Регистр букв в именах файлов важен и не должен изменяться!
4. В папку Целевая_Папка\Префикс_med\ записывается картинка с приставкой med_, с изменненным размером.
Т.е., если картинка была A001.jpg, то она записывается в папку Целевая_Папка\A_med\med_A001.jpg
Картинки приводятся к размеру MxN (настройки программы) без искажений пропорций, т.е. вставляются белые поля, если оригинальная картинка
не того же соотношения сторон. Сжатие или увеличение при этом должно быть без огрех пикселизации (smooth).
Важное замечание: хотя все картинки имеют расширение jpg и таковыми и являются, но фактический формат может быть gif или png!
Алгоритма нет, ранее это делалось через стороннюю программу (XnView).
В целях предотвращения сбоев и возможности промежуточной проверки результатов программа должна действовать в 2 этапа:
1. Сперва запись результатов в некую промежуточную папку, без изменения или удаления файлов в исходной папке.
Здесь человек может зайти в промежуточную папку, где получаются результаты текущей итерации и проверить всё ли в порядке и корректно ли выглядит.
2. Если всё в порядке, нажатие кнопки "Применить": переносит файлы из промежуточной папки в целевую, удаляя соответствующие файлы в
папке исходной и промежуточной. Заметим, что не должна трогать возможно новопоявившиеся файлы в исходной папке, а именно ориентироваться на то, что
файл присутствует в папке промежуточной, значит он подвергался обработке и может быть удален из исходной папки.
3. Тем не менее должна быть и кнопка "выполнить и применить", которая выполняет оба этапа последовательно, в простых ситуациях.
В идеальном случае программа должна быть написана на Delphi 7. Другие варианты обсуждаемы, но менее желательны.
Возможен синтез, когда основная часть программмы написанона Delphi 7, а алгоритм изменения размера написан на внешней DLL-ке на другом языке.
Все параметры программы должны быть настройками, сохраняемыми в реестре (если что это есть в тестовых программах).
Программа должна быть предоставлена в исходниках.
Опубликован 01.10.2014 в 08:29 Последнее изменение: 01.10.2014 в 09:31
Заказ находится в архиве