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