Введение 4
Задачи выпускной квалификационной работы 6
Этапы создания ИПС 7
1. Проектирование ИПС 8
1.1. Описание инструментов разработки 8
1.2. Описание структуры базы данных 10
1.3. Подключение к базе данных 15
2. Разработка ИПС 16
2.1. Окна в WPF 16
2.2. Главное окно 17
2.2.1. Превью изображений 18
2.2.2. Фильтр поиска 19
2.3. Проводник 20
2.4. Компонента по отслеживанию файловой системы 22
2.5 Режим просмотра изображения 23
2.6. Слайд-шоу 25
2.7. Режим редактора информации 26
2.8. Просмотр информации 32
2.9. Метаданные изображений 34
2.9.1. Общие сведения 34
2.9.2. Работа с метаданными 35
2.10. Обработка изображений 38
2.10.1. Общие сведения
2.10.2 Библиотека ImageProcessor 39
2.10.3 Режим обработки изображений 40
2.11. Google Drive API 44
2.11.1. Общие сведения 44
2.11.2. Подключение Google Drive API 45
2.11.3 Протокол авторизации «OAuth 2.0» 48
2.11.4. Подключение google - аккаунтов к ИПС 49
2.11.5. Удаление google - аккаунта 52
2.12. Фон ИПС 53
Тестирование ИПС 54
Установка ИПС 56
Заключение 59
Список литературы
Фотография имеет особое значение в нашей жизни. Фотография - это некий «язык эмоций», способный вызвать огромную палитру чувств у человека, изменить его настроение, поделиться энергией.
Практически у каждого человека имеется семейный фотоархив, в котором представлено множество различных фотографий - как на различных традиционных носителях (снимки, отпечатанные на фотобумаге, негативы, слайды и пр.), так и на цифровых носителях. Эти фото хранят память об истории семьи (города, деревни, школы, коллектива и т.д.), о старшем её поколении, о детстве и юности наших родных и близких, о ярких моментах жизни. Количество фотографий может быть столь велико, что найти нужный снимок бывает непросто. К тому же, информацию о том, кто изображён на фотографии, место съемки, связана ли она с каким-то событием и многое другое, можно узнать только со слов владельца. Хочется сохранить эту информацию, передать ее следующим поколениям. Так родилась идея создания электронного фотоархива.
Цель выпускной квалификационной работы: создать информационно - поисковую систему (в дальнейшем ИПС) по работе с изображениями, хранящимися на компьютере и/или на «Google Drive», которая предоставит пользователю возможность просматривать и обрабатывать изображения, заносить и редактировать информацию по каждой фотографии, а также осуществлять их поиск по заданным критериям.
Актуальность информационно - поисковой системы: в настоящее время существует не так много программ для систематизированного хранения, обработки и поиска изображений. В основном, это онлайн-сервисы, которые нацелены либо на предоставление оптимального файлового хранилища, либо на обработку фотографий. Поэтому было принято решение разработать десктоп приложение, которое позволит применять различные инструменты по работе с изображениями в одном месте, не требуя сторонних ресурсов.
Кроме того, к системе может быть привязано неограниченное число google-аккаунтов с возможностью свободно переключаться между ними. При этом для работы с фотографиями, хранящимися в облачном хранилище «Google Drive», пользователь не обязан быть авторизованным в системе Google. Главное, чтобы аккаунт уже был «привязан» к фотоархиву и выбран для текущей работы.
Выпускная квалификационная работа (ВКР) имеет следующую структуру: введение, задачи ВКР (требования к разрабатываемой
информационно-поисковой системе (ИПС)), этапы создания ИПС, проектирование ИПС, реализация ИПС, тестирование ИПС, выгрузка ИПС, заключение. В конце работы представлен список использованной литературы и приложение.
Глава «Проектирование ИПС» содержит информацию о выбранных технологиях разработки; функциях, выполняемых системой для решения поставленных задач; проектировании базы данных и ее структуре.
В главе «Реализация ИПС» подробно описывается процесс создания системы, возникшие в процессе разработки проблемы и способы их решения.
Глава «Тестирование ИПС» описывает выбранную технологию тестирования; ошибки, выявленные в процессе тестирования, и методы их устранения.
В главе «Установка ИПС» описывается способ выгрузки системы и ее установка на компьютер пользователя.
В процессе разработки были изучены существующие на рынке программы по работе с изображениями, их достоинства и недостатки. Однако, ни одно из них не обладало полным функционалом инструментов для комфортной и всесторонней работы над изображениями. Поэтому, была поставлена задача по созданию мультифункциональной системы, которая позволит пользователю управлять хранением изображений, осуществлять их поиск и обработку, а также вносить всю необходимую информацию о них.
Таким образом, результатом выпускной квалификационной работы стала информационно - поисковая система «PhotoStory». Она выполняет роль электронного фотоархива, позволяющего рассказать историю владельца и его семьи, поделиться самыми яркими моментами жизни, переместиться из настоящего в мир прошлого и даже будущего.
При разработке системы использовались мощнейшие инструменты и технологии, предоставляемые интегрированной средой разработки Visual Studio 2017, компонентой SQL Server Express LocalDB, стеком технологий С# (в частности, WPF и ADO.NET) и API одной из самых популярных платформ - Google Drive.
«PhotoStory» предназначена для локальной установки. Вместе с ней будет поставляться компонент базы данных, необходимый для хранения информации о фотографиях. Таким образом, все данные располагаются непосредственно на компьютере пользователя, а не на сервере, что снижает риск несанкционированного доступа третьих лиц. Такая программа станет отличным решением для тех, кто не хочет использовать сторонние сервисы по работе с изображениями, заботясь о приватности личных данных.
Также с ИПС будет установлена компонента для отслеживания действий над объектами файловой системы. Она предназначена для обработки действий пользователя по созданию, удалению, перемещению и переименованию изображений или содержащих их папок, так как они требуют обновления информации в базе. Такое решение позволяет поддерживать актуальность данных без участия пользователя.
В ходе изучения существующих .NET библиотек для обработки изображений, было принято решение использовать библиотеку «ImageProcessor», которая наилучшим образом интегрируется с платформой WPF и заботиться об утечках памяти.
Чтобы обеспечить работу ИПС с фотографиями, расположенными на «Google Drive», были изучены и применены в разработке Google Drive API и протокол авторизации «OAuth 2.0». Сама система была реализована таким образом, что пользователь может подключить к ней неограниченное число google - аккаунтов и свободно переключаться между ними. Авторизация в сервисе Google, при этом, не требуется.
Разработанный фильтр поиска позволит, по введенным пользователем критериям, быстро найти фотографии, которые могут хранится локально и на «Google Drive». Также, пользователь может задать тип фильтра, чтобы управлять видом поиска изображений. Стоит отметить, что фильтр представляет собой сложную, многоэлементную структуру с непростой реализацией. Это связано с тем, что для обеспечения лучшей производительности, было принято решение, чтобы система отправляла только один сложный запрос, результатом которого станут изображения, отвечающие заданным критериям. Но, основную сложность представляет необходимость динамически формировать запрос на основе введенных параметров, которые представляют собой разные типы, относятся к разным информационным разделам и хранятся в разных таблицах базы данных.
При работе с электронным фотоархивом, пользователь может осуществлять быстрый переход между различными режимами просмотра и редактирования, которые позволяют работать с фотографиями и данными о них в интерактивном режиме.
Огромное количество различных устройств, приложений и сервисов осуществляют работу с метаданными: смартфоны, фото и видео техника, различные навигаторы, работающие с геоданными, профессиональные программы для обработки фотографий, социальные сети и многое другое. Поэтому, такая же возможность по работе с метаданными была включена в электронный фотоархив. Это позволит пользователю просмотреть сведения об изображении, которые уже записаны самим устройством камеры или специальной программой. Считываться такая информация будет автоматически при добавлении новых изображений.
Таким образом, разработанная система «PhotoStory» полностью реализует поставленные задачи в рамках выпускной квалификационной работы. Благодаря стильному дизайну и удобному интерфейсу, работа с электронным фотоархивом будет крайне легкой и приятной. Кроме того, система не требует от пользователя специальных технических знаний и навыков, а значит, свободно может использоваться людьми старшего поколения.
Однако, чтобы ИПС не потеряла свою актуальность, необходимо ее постоянное обновление. Можно выделить следующие направления ее развития: 1) включить в систему алгоритмы нейронной сети для усовершенствования фильтра поиска; 2) произвести интеграцию системы с API других популярных облачных сервисов хранения изображений; 3) предоставить пользователям свой собственный облачный сервис; 4) реализовать веб-версию данной программы; 5) реализовать работу с метаданными, отличных от exif.
I. Нормативно-правовые материалы:
1. Нормативные правовые акты в области персональных данных / Федеральный закон от 27.07.2006 г. № 152-ФЗ «О персональных данных».
2. Нормативные правовые акты в области персональных данных / Постановление Правительства Российской Федерации от 01.11.2012 г. № 1119 «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных».
3. Нормативные правовые акты в области персональных данных / Федеральный закон от 21.07.2014 г. № 242-ФЗ "О внесении изменений в отдельные законодательные акты Российской Федерации в части уточнения порядка обработки персональных данных в информационно-телекоммуникационных сетях".
II. Специальная литература:
4. Шилдт, Г. C# 4.0: полное руководство: научно - популярное издание: Пер. с англ. / Г. Шилдт. — М.: ООО "И.Д. Вильямс", 2011. — 1056 с.: ил.
5. Петцольд, Ч. Microsoft Windows Presentation Foundation / Ч. Петцольд. - М.: Издательство «Русская Редакция»; СПб.: Питер, 2008. - 944 с.: ил.
6. Мак - Дональд, М. Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов: научно - популярное издание: Пер. с англ. / М. Мак - Дональд. — М.: ООО "И.Д. Вильямс", 2013. — 1024 с.:ил.
7. Шамшев, А.Б. Основы проектирования интерфейсов с использованием технологии Windows Presentation: учеб. пособие / А.Б. Шамшев. - Ульяновск: УлГТУ, 2012. - 163 с.: ил.
8. Волосевич, А.А. Технология Windows Presentation Foundation: курс лекций/ А.А. Волосевич. - Минск: БГУИР, 2013. - 108 с.
9. Грофф, Д.Р. SQL: полное руководство / Д.Р. Грофф, П.Н. Вайнберг, Э.Д. Оппель - 3-е изд. Пер. с англ - М.: ООО "И.Д. Вильямс", 2015. - 960 с.:ил.
10. Осипов, Д.Л. Технологии проектирования баз данных / Д.Л. Осипов. - М.: "ДМК-Пресс", 2019. - 498 с.:ил.
11. Бондарь, А. Microsoft SQL Server 2014 / А.Бондарь. - СПб.: "BHV", 2015. - 592 с.:ил.
12. Кариев, Ч.А. Технология Microsoft ADO .NET: учеб. пособие / Ч.А. Кариев. - М.: "Бином. Лаборатория знаний", 2017. - 543а:ил.
13. Вагнер, Б. Наиболее эффективное программирование на C#. 50 способов улучшения кода: научно - популярное издание: Пер. с англ / Б.Вагнер. - М.: ООО "И.Д. Вильямс", 2018. — 240 с.:ил.
14. Тепляков, С. Паттерны проектирования на платформе .NET. — СПб.: Питер,
2015. — 320 с.: ил.
III. Интернет-ресурсы:
15. https://docs.microsoft.com/ru-ru/dotnet/framework/ - Руководство по .NET Framework.
16. https: //metanit. com/sharp/tutorial/ - Полное руководство по языку программирования С# 7.0 и платформе .NET 4.7.
17. http://professorweb.ru/my/csharp/charp theory/level1/infocsharp.php - C# 5.0 и платформа .NET 4.5.
18. https://metanit.com/sharp/wpf/ - Руководство по WPF.
19. http://professorweb.ru/my/WPF/base WPF/level1/info WPF.php - Windows Presentation Foundation.
20. https://metanit.com/sql/sqlserver/ - Руководство по MS SQL Server 2017.
21. https://metanit.com/sharp/adonet/ - Руководство по ADO.NET и работе с базами данных.
22. http://professorweb.ru/my/ADO NET/base/level1/ado net index.php - ADO.NET.
23. https://developers.google.com/drive/api/v3/reference/ - API Reference.
24. https://developers.google.com/identity/protocols/OAuth27hHru - Using OAuth 2.0 to Access Google APIs.
25. https://habr. com/ru/post/208792/ - Виртуализация данных в WPF.
26. https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80% D0%B5%D0%BD%D0%B8%D0%B5 SQL%D0%BA%D0%BE%D0%B4%D0%B 0 - Внедрение SQL-кода.
27. https://docs.microsoft.com/ru-ru/dotnet/framework/wpf/graphics- multimedia/imaging-overview - Общие сведения об обработке изображений.
28. https://imageprocessor.org/imageprocessor/ - ImageProcessor.
29. https://ru.wikipedia.org/wiki/RGB - RGB.
30. https://tech.yandex.ru/oauth/doc/dg/concepts/ya-oauth-intro-docpage/ - Реализация OAuth.
31. https://habr.com/ru/post/423753/ - Храним токены авторизации безопасно.
32. https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/advanced/how-to- read-image-metadata - Практическое руководство. Чтение метаданных изображения.
33. http://vitiy.info/%D 1 %87%D 1 %82%D0%B5%D0%BD%D0%B8%D0%B5- %D0%B8-%D0%B7%D0%B0%D0%BF%D0%B8%D 1 %81 %D 1 %8C- %D0%BC%D0%B5%D1%82%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD% D1 %8B%D 1 %85-exif-%D0%BF%D0%BE%D0%B4-wpf/ - Чтение и запись метаданных (Exif) под WPF.
34. https://www.rsdn.org/article/dotnet/CSThreading 1 .xml - Работа с потоками в C#.
35. https://professorweb.ru/my/csharp/optimization/level 1 / - Оптимизация приложений на .NET Framework.
36. http://www.bseu.by/it/tohod/lekcii4 3.htm - Лекции на тему: «Проектирование баз данных».
37. https://novainfo.ru/article/14504 - Методика построения ег — диаграммы для базы данных.
38. http://skillcoding.com/Default.aspx?id=215 - Автозапуск программы в C#.
39. https://habr.com/ru/post/226123/ - Обзор Windows-приложений для наведения порядка в фотоархивах.