Skip to content

Latest commit

 

History

History
45 lines (39 loc) · 5.72 KB

description.md

File metadata and controls

45 lines (39 loc) · 5.72 KB

#Description

Описание пунктов задания, по которым сделано приложение

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

Процесс использования приложения:

  1. При нажатии на изображение в верхней части экрана (или на кнопку, если сразу после запуска) приложение предлагает выбрать изображение из библиотеки пользователя или сфотографировать на камеру (если есть возможность протестировать на реальном устройстве).
  2. Выбранное изображение отображается в верхней части экрана.
  3. Пользователю предлагается несколько функций на выбор: поворот изображения на 90 градусов, перевод в черно-белую гамму, зеркальное отражение. Пользователь выбирает функцию нажатием на соответствующую кнопку. После этого в таблице результатов добавляется новая ячейка, в которую помещается результат обработки.
  4. При нажатии на ячейку с полученным изображением пользователю предлагается на выбор – либо сохранить обработанное изображение в библиотеку, либо удалить результат из таблицы, либо использовать результат как источник для следующего преобразования.

Дополнительные задания:

  1. При нажатии на изображение, появляется диалог, который, кроме вышеозначенных опций (библиотека, камера) имеет дополнительную опцию “Загрузить изображение из сети”. В случае выбора этой опции: -- приложение должно позволить пользователю ввести URL изображения -- загрузить изображение на устройство (симулятор) -- во время загрузки показать индикатор прогресса (простой крутилки будет достаточно, хотя индикация прогресса в процентах плюс). -- по окончанию загрузки отобразить изображение и позволить пользователю накладывать все те же фильтры, реализованные в базовом сценарии. -- скачка нескольких изображений одновременно не требуется.
  2. Вместо моментальной синхронной обработки изображения создается новый поток, в котором запускается искусственно замедленное преобразование (случайное число от 5 до 30 секунд на фотографию). В ячейку на это время помещается индикатор прогресса, который заполняется в реальном времени по мере преобразования изображения. После обработки индикатор исчезает, а на его место помещается результат. Интерфейс приложения в процессе обработки не блокируется. Возможна одновременная обработка нескольких фотографий.
  3. Реализовать два дополнительных фильтра: инверсия цветов, зеркальное отражение левой части изображения на правую часть (в итоге получается изображение из двух одинаковых половинок, одна из которых – зеркальное отражение второй).
  4. При выборе фотографии для обработки из файла извлекается EXIF-информация и отображается в отдельном окне при нажатии кнопки EXIF (кнопку необходимо расположить рядом с оригиналом фотографии). После сохранения в EXIF вносятся модификации (удаляются данные о камере и заменяются на название приложения), и такой EXIF и сохраняется вместе с файлом.
  5. Приложение должно запоминать историю обработанных изображений между запусками.