Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные. Дагаев / Проект_Кларк_Блинов_Яковлев.docx
Скачиваний:
1
Добавлен:
02.01.2026
Размер:
2.13 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"

Факультет инфокоммуникационных сетей и систем

Кафедра программной инженерии и вычислительной техники

Проектная работа

на тему

«Разработка Telegram-бота для сжатия изображений»

по дисциплине «Операционные системы и сети»

Выполнили:

студенты 3 курса

группы ИКПИ-32

Кларк А. Е.

Блинов И. С.

Яковлев М. А.

Преподаватель:

Кандидат технических наук, Доцент кафедры ПИиВТ Дагаев Александр Владимирович

Оглавление

Перечень терминов и сокращений 3

Введение 3

Глава 1. Технологии разработки Telegram бота. 4

1.1 Обзор литературы 4

1.2 История мессенджера Telegram 6

1.3 Сравнительный анализ языков программирования для Telegram-ботов 8

1.4 Характеристика языка программирования Python 11

1.5 Обзор фреймворков и библиотек для создания ботов 12

1.6 Обзор библиотек и методов обработки изображений 13

1.7 Описание алгоритмов и форматов данных 15

Глава 2. Разработка Telegram-бота 21

2.1 Планируемые возможности бота и подходы к их реализации 21

2.2 Разработка модуля обработки изображений 22

2.3 Разработка пользовательского интерфейса 27

2.4 Разработка функций для работы с изображениями и передачи данных 30

2.5 Описание разработки Telegram-бота 35

2.6 Инструкция пользователя 38

Выводы 41

Список литературы 43

Приложение 44

Перечень терминов и сокращений

API — Application Programming Interface (интерфейс прикладного программирования)

asyncio — Асинхронная библиотека Python

aiogram — Асинхронный фреймворк для создания Telegram-ботов на Python

Bot API — Интерфейс программирования ботов Telegram

EXIF — Exchangeable Image File Format (формат метаданных изображений)

HTTP — HyperText Transfer Protocol (протокол передачи гипертекста)

ICC — International Color Consortium (профиль цветового пространства)

ID — Identifier (идентификатор)

I/O — Input/Output (ввод/вывод)

img2pdf — Библиотека для конвертации изображений в PDF

JSON — JavaScript Object Notation (формат обмена данными)

JPEG — Joint Photographic Experts Group (формат сжатия изображений)

MTProto — Mobile Telegram Protocol (протокол Telegram)

MVP — Minimum Viable Product (минимально жизнеспособный продукт)

PIL — Python Imaging Library (библиотека обработки изображений)

Pillow — Современный форк PIL для работы с изображениями

PNG — Portable Network Graphics (формат сжатия изображений без потерь)

PNG-P — PNG Paletted (палитровый PNG)

UUID — Universally Unique Identifier (универсальный уникальный идентификатор)

WORKDIR — Working Directory (рабочий каталог)

Введение

В условиях стремительной цифровизации и роста объёма передаваемых медиаданных возникает насущная потребность в создании удобных, доступных и эффективных инструментов для оптимизации графического контента. Одной из ключевых задач современного информационного обмена является обработка изображений — их сжатие, конвертация и адаптация под различные платформы без потери визуального качества. Telegram, как популярная и доступная платформа, открывает широкие возможности для реализации подобных решений в формате бота — с минимальными затратами на разработку интерфейса, высокой степенью интерактивности и мгновенной доступностью для миллионов пользователей. Создание Telegram-бота для сжатия и обработки изображений представляет собой актуальную задачу, объединяющую современные подходы к работе с медиаконтентом, алгоритмами оптимизации данных и мобильными технологиями.

Основные задачи проекта включают: проведение анализа современных библиотек и методов обработки изображений на Python; определение функциональных требований к системе сжатия (поддержка форматов JPEG и PNG, адаптивный выбор алгоритма, настройка качества и размера, удаление метаданных); разработку архитектуры бота, включая пользовательский интерфейс (система команд, обработка файлов, отображение результатов), логику обработки изображений с использованием алгоритмов классификации и оптимизации, а также механизм хранения пользовательских настроек. Далее требуется реализовать бота на выбранном языке программирования (Python с библиотеками aiogram и Pillow), протестировать его функциональность на различных типах изображений, устранить возможные ошибки и оптимизировать производительность. Завершающим этапом является подготовка подробной инструкции по использованию бота для различных категорий пользователей.

Требования к боту включают: поддержку форматов JPEG и PNG, автоматическое определение типа изображения (фотография/графика) и выбор оптимального алгоритма сжатия, возможность настройки параметров (качество, целевой размер, ограничение разрешения), функцию удаления EXIF-метаданных для защиты конфиденциальности, а также режим сборки PDF из нескольких изображений.

Документация должна содержать техническое описание архитектуры бота, руководство по настройке и развертыванию, а также инструкцию для конечных пользователей по работе с основными функциями. Ожидаемым результатом является создание универсального инструмента для быстрой и эффективной оптимизации изображений, который позволит пользователям экономить трафик, место на устройствах и время при работе с визуальным контентом непосредственно в мессенджере Telegram.